这是什么
本文是作者上线Django项目的笔记,仅供参考。
注意:欢迎转载,保留链接
注意:本文参考了知了课堂的笔记
总体流程
- 安装Python
- 安装Nginx
- 安装Uwsgi
大概的思路就是配置好静态文件通过Nginx访问,动态文件通过Uwsgi来解析。相比PHP,确实是又复杂又LOW(轻喷)
安装Python
你拿到的服务器大概率是centos或者ubuntu的发行版,一般是有python的。我们可以在shell中输入python
,能弹出东西就算成。
Python 2.7.5 (default, Jun 20 2019, 20:27:34)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
弹出来的东西可能长这样,这是2.X版本的Python,今天我们写的Django项目大概率已经不支持2.X的版本了,所以我们要安装3.x版本的Python
Python得自己编译…
安装依赖包
这一步如果省略,可能会让之后的编译无法进行
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
下载安装包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
解压安装包
tar -zxvf Python-3.7.0.tgz
建立一个空文件夹,用于存放python3程序
mkdir /usr/local/python3
执行配置文件
./configure --prefix=/usr/local/python3
安装
make make install
建立软连接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
然后,我们需要安装virtualenv
以及virutalenvwrapper
。并创建虚拟环境。
pip3 install virtualenv
pip3 install virtualenvwrapper
vim ~/.bashrc
进入文件中,填入以下两行代码:
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
然后执行
source ~/.bashrc
接着创建虚拟环境
mkvirtualenv course
使用当前虚拟环境
workon course
然后执行
pip install -r 1.txt
(1.txt就是包含了需求库的文件,相信这里不用多解释)
截止到这里,Python和Django的环境就算搭建好了
安装Nginx
yum install -y nginx
没错,一句话就好了。
这里可能由于我使用的是阿里云服务器的关系,所以已经配置好了yum源。
其实这里有个问题可以交流一下,解决问题是一个爬坑的过程。从学习的角度上来说,是应该尝试以最困难的方式来完成,这样可以学到更多东西。可是用学习学习(你没有看错,我也没有打错),学习讲究的应该是先建立体系,再补充细节。搭建Django项目的过程中,体系就指的是完成整个流程,Nginx属于细节的部分。现在有办法能快速的完成安装,有什么不好的呢。
Nginx的一些其他常用配置目录
以下是Nginx的默认路径: (1) Nginx配置路径:/etc/nginx/ (2) PID目录:/var/run/nginx.pid (https://www.centos.bz/tag/nginx-pid/) (3) 错误日志:/var/log/nginx/error (https://www.centos.bz/tag/error/).log (4) 访问日志:/var/log/nginx/access.log (5) 默认站点目录:/usr/share/nginx/html 事实上,只需知道Nginx配置路径,其他路径均可在/etc/nginx/nginx.conf 以 及/etc/nginx/conf.d/default.conf 中查询到。
常用命令
常用命令 (1) 启动: nginx (2) 测试Nginx配置是否正确: nginx -t (3) 优雅重启: nginx -s reload (4) 查看nginx的进程号: ps -ef |grep nginx (5)nginx服务停止 nginx -s stop kill -9 pid
安装Uwsgi
pip3 install uwsgi
注意,uwsgi必须安装在系统级环境下, 不能是虚拟路径
我们可以使用命令用uwsgi
启动项目,如果能够在浏览器中访问到这个页面,说明uwsgi
可以加载项目了。
uwsgi --http :8000 --module modname.wsgi --virtualenv=/root/.virtualenvs/django-env-py2
其中modname
指的是项目的名字,/root/.virtualenvs/django-env-py2
指的是虚拟环境的安装路径
配置uwsgi配置文件
[uwsgi]
#文件名 :zhiliaoketang_uwsgi.ini
# Django相关的配置
# 必须全部为绝对路径
# 项目的路径
chdir = /srv/zhiliaoketang
# Django的wsgi文件(项目的名字.wsgi,这个文件其实不存在,是动态创建的)
module = zhiliaoketang.wsgi
# Python虚拟环境的路径
home = /root/.virtualenvs/django-env-py2
# 进程相关的设置
# 主进程
master = true
# 最大数量的工作进程
processes = 10
# socket文件路径,绝对路径
socket = /srv/zhiliaoketang/zhiliaoketang.sock
# 设置socket的权限
chmod-socket = 666
# 退出的时候是否清理环境
vacuum = true
通过以下命令来检测启动是否顺利
uwsgi --http :85 --ini zhiliaoketang.ini
配置Nginx
在/etc/nginx/conf.d
目录下,新建一个文件,叫做zhiliaoketang.conf
,然后将以下代码粘贴进去:
# 这个文件就是你项目绝对路径下的 项目名.sock 文件
# 这个文件是不存在的,是个socket通信地址,写就好
upstream zhiliaoketang {
server unix:///srv/zhiliaoketang/zhiliaoketang.sock;
}
# 配置服务器
server {
# 监听的端口号
listen 80;
# 域名
server_name 192.168.0.101;
charset utf-8;
# 最大的文件上传尺寸
client_max_body_size 75M;
# 静态文件访问的url
location /static {
# 静态文件地址,就是你文件中的静态地址,记得把上面那个static也改了
alias /srv/zhiliaoketang/static_dist;
}
# 最后,发送所有非静态文件请求到django服务器
location / {
uwsgi_pass zhiliaoketang;
# uwsgi_params文件地址
include /etc/nginx/uwsgi_params;
}
}
每次修改完了配置文件,都要记得重启。
然后先启动Nginx,在启用Uwsgi,项目的上线就算成了。
评论(0)