CentOS7 Linux下部署Django项目详细步骤
CentOS7下部署Django项目详细操作步骤
- 一、Linux 升级 Python 至 3.x
- 二、安装虚拟环境virtualenv
- 三、requirements.txt文件的生成与使用
- 四、安装uwsgi和配置mysite.xml文件
- 1、在虚拟环境中安装uwsgi
- 2、用XML格式的文件配置uwsgi
- 3、启动uwsgi配置的命令
- 4、查看uwsgi启动情况
- 5、关掉所有的uwsgi
- 6、Django里的settings.py设置修改:
- 五、安装nginx和配置nginx.conf文件
- 六、配置开机自动启动。
- 1、进入cd /etc/init.d目录
- 2、创建uwsgi启动脚本
- 3、添加开机执行uwsgi.sh脚本
- 4、创建nginx启动脚本
- 5、添加开机执行nginx.sh脚本
- 6、查看已加入的开机项
- 7、删除开机执行脚本
- 七、Django多站点部署
- 八、关于CentOS防火墙端口相关命令:
部署是基于:centos7+nginx+uwsgi+python3+django
下面步骤都是ROOT权限执行:
一、Linux 升级 Python 至 3.x
1、更新系统软件和可能使用的依赖
yum update -y
yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
2、下载Pyhton3到/usr/local 目录
cd /usr/local wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
解压
tar -zxvf Python-3.5.2.tgz
进入 Python-3.5.2路径
cd Python-3.5.2/
3、编译安装到指定路径
./configure --prefix=/usr/local/python3
执行上面语句如果报错:configure: error: no acceptable C compiler found in $PATH
说明没有安装合适的编译器。这时,需要安装/升级 gcc 及其它依赖包
yum install make gcc gcc-c++
注意:/usr/local/python3 路径可以自己指定,自己记着就行,后边要用到。
编译python3
make
安装
make install
安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
ln -s /usr/local/python3/bin/python3.5 /usr/bin/python3
Python3安装完成之后pip3也一块安装完成,不需要再单独安装
同样给pip3建立软链接
ln -s /usr/local/python3/bin/pip3.5 /usr/bin/pip3
4、查看Python3和pip3安装情况
输入命令显示版本即正常
python3
pip3-V
二、安装虚拟环境virtualenv
说明:主要是方便不同版本项目管理
1、安装命令
pip3 install virtualenv
2、建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
安装成功后在根目录下建立两个文件夹,主要用于存放env和网站文件
mkdir -p /data/env mkdir -p /data/wwwroot
3、创建虚拟环境
切换到指定的/data/env/目录下创建
pyweb为虚拟环境名称可以修改
virtualenv --python=/usr/bin/python3 pyweb
4、启动虚拟环境命令
然后进入/data/env/pyweb/bin,启动虚拟环境:
source activate
或者直接启动
source /data/env/pyweb/bin/activate
5、退出虚拟环境命令
deactivate
三、requirements.txt文件的生成与使用
1、生成requirements.txt文件
pip freeze > requirements.txt
2、进入虚拟环境安装依赖包
pip3 install -r requirements.txt
四、安装uwsgi和配置mysite.xml文件
把本地项目拷贝到 /data/wwwroot目录下
1、在虚拟环境中安装uwsgi
yum install libxml*
获取uwsgi
下载–解压–编译–安装
注意:解压后的目录名称可能不一样
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.tar.gz cd uwsgi-2.0.11.1/
python uwsgiconfig.py --build
python setup.py install
2、用XML格式的文件配置uwsgi
进入网站项目路径 /data/wwwroot/mysite/,在项目根目录下创建mysite.xml文件,输入如下内容:
<uwsgi> <socket>127.0.0.1:8997</socket> <!-- 内部端口,自定义 --> <chdir>/data/wwwroot/mysite/</chdir> <!-- 项目路径 --> <module>mysite.wsgi</module> <!-- mysite为wsgi.py所在目录名--> <processes>4</processes> <!-- 进程数 --> <daemonize>uwsgi.log</daemonize> <!-- 日志文件 --> </uwsgi>
保存
3、启动uwsgi配置的命令
如图显示就代表启动成功
uwsgi -x mysite.xml
4、查看uwsgi启动情况
ps -ef|grep uwsgi
5、关掉所有的uwsgi
killall -9 uwsgi
6、Django里的settings.py设置修改:
关闭DEBUG模式。
DEBUG = False
ALLOWED_HOSTS设置为* 表示任何IP都可以访问网站。
ALLOWED_HOSTS = ['*']
五、安装nginx和配置nginx.conf文件
1、下载nginx和安装
cd /home/ wget http://nginx.org/download/nginx-1.13.7.tar.gz
下载完成后,执行解压命令:
tar -zxvf nginx-1.13.7.tar.gz
进入解压后的nginx-1.13.7文件夹,依次执行以下命令:
./configure make make install
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
2、配置nginx.conf
然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; server_name www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:80 charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一样 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径 } location /static/ { alias /data/wwwroot/mysite/static/; #静态资源路径 } } }
要留意备注的地方,要和UWSGI配置文件mysite.xml,还有项目路径对应上。
进入/usr/local/nginx/sbin/目录
执行./nginx -t
命令先检查配置文件是否有错,没有错就执行以下命令:
3、启动nginx命令
./nginx
终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址或者域名查看页面!!!
六、配置开机自动启动。
1、进入cd /etc/init.d目录
cd /etc/init.d
2、创建uwsgi启动脚本
vim uwsgi.sh
添加内容
下面三行的内容解释:
2345的级别开始,它的启动优先级为20,它的停止优先级是90。
进入虚拟环境
启动uwsgi配置文件
#!/bin/sh #chkconfig: 2345 80 90 source /data/env/pyweb/bin/activate
uwsgi -x /data/wwwroot/mysite/mysite.xml
添加脚本执行权限
chmod a+x /etc/init.d/uwsgi.sh
3、添加开机执行uwsgi.sh脚本
chkconfig --add uwsgi.sh
4、创建nginx启动脚本
vim nginx.sh
添加内容
#!/bin/sh #chkconfig: 2345 80 90 cd /usr/local/nginx/sbin/
./nginx
添加脚本执行权限
chmod a+x /etc/init.d/nginx.sh
5、添加开机执行nginx.sh脚本
chkconfig --add nginx.sh
6、查看已加入的开机项
chkconfig --list
7、删除开机执行脚本
chkconfig --del uwsgi.sh
七、Django多站点部署
一台服务器部署多个项目
1、进入Nginx的配置文件目录/usr/local/nginx/conf/,然后新建一个目录:
mkdir vhost
之后在vhost目录里建立两个以.conf结尾的文件(有几个项目就放几个),里面的内容如下:
server { listen 80; server_name www.django.cn; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一样 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径 } location /static/ { alias /data/wwwroot/mysite/static/; #静态资源路径 } }
项目路径、端口、静态资源与所属项目对应好。注意:项目里的uwsgi端口不能与另一个项目重复。
2、/usr/local/nginx/conf/目录下的原来默认的nginx.conf文件,先备份一下,然后把里面的代码删除,修改成如下代码:
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; include /usr/local/nginx/conf/vhost/*.conf;#主要是这个地方,把新建的两配置文件包含进来 server { listen 80 default_server; server_name _; return 404; } }
3、新建立一个虚拟环境,把新项目上传到到服务器。进入虚拟环境,在新的虚拟环境再装一次uwsgi,和安装项目所需依赖包,然后在项目根目录新建立一个uwsgi配置文件,里面的端口和配置文件名不要和其它项目相同,路径换成自己的项目路径。
4、在虚拟环境启动uwsgi,重启Nginx,就能成功访问。哪个项目不能访问,就把原来的uwsgi进行杀死,然后再进入对应虚拟环境,启动uwsgi即可。
重启nginx命令:
./nginx -s reload
或者直接执行下面命令重启nginx
/usr/local/nginx/sbin/nginx -s reload
八、关于CentOS防火墙端口相关命令:
1、查看开通的端口与服务:
firewall-cmd --list-all
2、开启http服务
firewall-cmd --permanent --add-service=http
3、开端口80举例
firewall-cmd --permanent --add-port=80/tcp
4、 移除端口80举例
firewall-cmd --permanent --remove-port=80/tcp
5、永久移除服务
firewall-cmd --permanent --remove-service=https
6、重启防火墙
firewall-cmd --reload
此文章部分内容参考链接:https://www.django.cn/article/show-4.html#buzhou
上一篇: 【PyQt5】环境及项目配置
下一篇: 动态拼接SQL语句导致注入的简单例子
推荐阅读
-
CentOS7 Linux下部署Django项目详细步骤
-
linux(centOS7)系统下配置tomcat环境(详细步骤)
-
Linux下将Python的Django项目部署到Apache服务器
-
windows64位下用apache2.4.29部署django1.11.7项目并使在局域网内可访问(mod_wsgi.so可下载)--超详细
-
CentOS下宝塔部署Django项目的详细教程
-
Linux下将Python的Django项目部署到Apache服务器
-
Linux下将Python的Django项目部署到Apache服务器
-
linux,Centos7部署django项目---安装虚拟机步骤,VMWare使用,客户端连接
-
CentOS7 Linux下部署Django项目详细步骤
-
linux(centOS7)系统下配置tomcat环境(详细步骤)