Centos + Python3.5 + pip + uwsgi + django环境搭建
安装python1.查看是否已经安装Python,使用python -V命令查看当前Python版本。看一下Python可执行文件的位置:which python进入到可执行文件目录执行:mv python python.bak命令备份python文件。2.安装新版本的Python。下载Python新版本https://www.python.org/do
安装python
1.查看是否已经安装Python,使用python -V命令查看当前Python版本。
看一下Python可执行文件的位置:
which python
进入到可执行文件目录
执行:
mv python python.bak
命令备份python文件。
2.安装新版本的Python。
下载Python新版本https://www.python.org/downloads/source/
或者执行wget命令直接下载到服务器:
wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
解压缩:
tar -zxvf Python-3.5.1.tgz
加压缩之后该目录下出现Python-3.5.1文件夹,进入到文件夹下执行编译安装。执行 :
./configure --prefix=/usr/local/python/python3
make
make install
命令。
3.修改yum配置文件
因为yum使用python2,因此替换为python3后可能无法正常工作,继续使用这个python2.6
因此修改yum配置文件(vi /usr/bin/yum)。
把文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6
保存退出即可。
安装 pip
1、首先检查Linux有没有安装Python-pip包,直接执行:
yum install python-pip
注释:如果没有python-pip包就先执行命令:
yum -y install epel-release
2、对安装好的pip进行升级:
pip install --upgrade pip
pip 安装uwsgi
yum install python-devel mysql-devel zlib-devel openssl-devel
pip install uwsgi
完成之后
编辑python测试文件
/usr/local/nginx/html 建立 index.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html; charset=iso-8859-1')])
return 'Hello, world'
启动:
uwsgi --http :8001 --wsgi-file /usr/local/nginx/html/index.py
安装django
pip install Django==x.x
(==x.x)表示你要指定的版本号
测试结果:
启动:python
输入:import django
没有报错就成功了!
配置篇:
1、安装Python时已经自动安装了pip,因此可以直接使用pip安装virtualenv:
pip install virtualenv
2、安装Python时已经自动安装了pip,因此可以直接使用pip安装virtualenv(以/usr/local/nginx/html/xxx.com/为例)
cd /usr/local/nginx/html/xxx.com/
python -m venv pyenv
3、配置本地环境需求:
cd /usr/local/nginx/html/xxx.com/pyenv/
pip freeze #查看项目的配置环境
pip freeze > requirements.txt #将项目的配置环境导出至requirements.txt中
source bin/activate #激活虚拟目录
pip install -r requirements.txt # 安装项目的环境配
4、新建django项目(例如:blog):
cd /usr/local/nginx/html/xxx.com/pyenv/
django-admin.py startproject blog
5、修改blog项目
配置:
vim /usr/local/nginx/html/xxx.com/pyenv/blog/blog/settings.py
修改的配置项如下:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
ALLOWED_HOSTS = ['xxx.com'] #如无域名,可绑定IP地址
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
6、
为我们的博客系统生成数据库:
cd /usr/local/nginx/html/xxx.com/pyenv/blog
python manage.py migrate
执行成功后,当前目录
下生成了
db.sqlite3
数据库文件。
7、uwsgi配置:
cd /usr/local/nginx/html/xxx.com/pyenv
pip install uwsgi
uwsgi --http :8000 --module blog.wsgi
如果如出现下面的内容,则运行成功:
spawned uWSGI worker 1 (and the only) (pid: 18417, cores: 1)
如需退出,control + c 退出测试环境
注:虚拟环境到此结束,请使用deactivate 退出虚拟环境。
8、配置nginx vhost文件,给个例子:
upstream django{
server 127.0.0.1:8001; #叫啥忘记了,与uWSGI产生联系
}
server {
listen 80;
server_name xxx.com; # 绑定的域名
charset utf-8;
client_max_body_size 10M; #上传最大限制10M
location /static/ {
root /usr/local/nginx/html/xxx.com/pyenv/blog/static; # 静态文件的地址
}
location / {
include /usr/local/nginx/html/xxx.com/pyenv/uwsgi_params; # uwsgi_params别紧张,这个文件楼下等会编辑
uwsgi_pass django;
}
}
9、
配置uwsgi配置文件:
cd /usr/local/nginx/html/xxx.com/pyenv
vim blog.ini
配置文件内容如下(最后记得把此配置的注释删除在保存):
[uwsgi]
chdir = /usr/local/nginx/html/xxx.com/pyenv/blog/ #模块位置
module = blog.wsgi #模块名称
home = /usr/local/nginx/html/xxx.com/pyenv/ #项目位置
master = true
processes = 5
socket = :8001 #与楼上的那个内容挂钩
chmod-socket = 666
vacuum = true
10、配置uwsgi_params文件:
/usr/local/nginx/html/xxx.com/pyenv
vim uwsgi_params
配置文件内容如下:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
11、设置开机启动:
vim /etc/rc.local
/usr/local/bin/uwsgi --ini /usr/local/nginx/html/xxx.com/pyenv/blog.ini
启动服务篇:
1、激活虚拟目录
cd /usr/local/nginx/html/xxx.com/pyenv/
source bin/activate
2、启动uwsgi
uwsgi --ini blog.ini
至此,项目部署完成!
更多推荐
所有评论(0)