环境
Python: 3.6
Django: 2.1
OS: CentOS 7 x86_64
uwsgi: 2.0.17
下载Cmder cmder.zip下载 大概108M.下载好后解压到桌面,
打开Cmder
Cmder官网 https://github.com/cmderdev/cmder/releases
登录到阿里云服务器,点击远程连接可以连接到服务器,
公网ip
1.打开Cmder,链接到服务器的公网ip, ssh root@公网ip
2.yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel mysql-devel gcc gcc-devel python-devel
升级或者安装一些python依赖包
3. wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
下载python,只需要wget + python的下载地址就可以
4.解压python压缩包 tar -zxvf Python-3.6.5.tgz
5.cd Python-3.6.5
6.安装python ,vim README.rst (安装的命令在这个文件里,即python-3.6.5解压出来的文件里)
安装命令
①./configure
②make
③make install
安装好后,如果直接输入python还是2.7的,输入./python是3.6的,(.代表当前文件夹)
7.创建虚拟环境 ./python -m venv /root/python3env
8.激活虚拟环境,先切到python3env的上一级目录
source python3env/bin/activate
deactivate 退出虚拟环境
9.打开一个新的cmder,将windows中的项目移动到服务器中,(如果没有生成requirements.txt文件, 则在pycharm中Terminal下运行(随便选择一个django项目)
pip freeze > requirements.txt 将当前环境所安装的包都列出来放在这个文件里)
scp -r C:\Users\Administrator\Desktop\python\正课\27.Django2\mysite root@106.14.213.168:/root/mysite
10.(在虚拟环境里安装)安装项目的依赖包,都在requirements.txt中,所以需要切到项目里
cd mysite
pip install -r requirements.txt
安装好后,测试一下项目是否正常运行(python manage.py runserver)
11.安装uwsgi,在虚拟环境里安装
pip install uwsgi
12.下载并安装nginx (静态文件服务器)
yum install nginx
13.实例-(右边的)更多-网络安全组-安全组配置-(上边选择)安全组列表-配置规则-(右上角)添加安全组规则
端口80/80 授权对象0.0.0.0/0(让所有的都可以访问)
端口8080/8080 授权对象0.0.0.0/0(让所有的都可以访问)
14.在项目里
vim settings.py 修改ALLOWED_HOSTS = ['*']
在STATIC_URL = '/static/'下添加
STATIC_ROOT = "static" (加载静态文件路径)
15.在项目里创建文件
vim django_uwsgi.ini(自己起的文件名字) 在里边添加以下内容
[uwsgi]
# 通过uwsgi方位django需要配置http
socket = :8000
# web项目根目录
chdir = /home/root1/mysite (需要查看django_uwsgi.ini所在的文件路径)
# module指定项目自带的wsgi配置文件的位置
module = mysite.wsgi
# 允许主进程存在
master = true
# 开启进程数量
processes = 3
# 服务器退出时自动清理环境
vacuum = true
16.运行项目(需要在虚拟环境里,而且要在项目mysite里)
uwsgi --ini django_uwsgi.ini --buffer-size 30000
(出现以下,证明成功WSGI app 0 (mountpoint='') ready in 6 seconds on interpreter 0x24eacd0 pid: 41241 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options)
17.打开一个新的cmder窗口,链接到服务器
18.配置nginx, cd /etc/nginx/
先将nginx.conf第一行的nginx改为root保存,如果不改,后边运行程序的时候会报权限不够
cd conf.d
然后在conf.d中新建mysite.conf文件
vim mysite.conf 配置可以参考default.conf
server {
# 访问时的端口号,跟项目端口不能一样
listen 8080;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
#加载静态文件路径
location /static{
alias /root/mysite/static;
}
}
19.nginx -t 检查配置文件写的是否有问题(权限不够加sudo)
20.ps -ef|grep nginx 查看nginx运行服务(如果只有一行,则需要开启nginx服务,如果有多行,则关闭nginx,然后重开nginx服务)
21.systemctl start nginx 开启nginx服务,需要运行程序
journalctl -xe(如果开启nginx服务时报错,下边会提示输入这个命令,查看详细错误)
22.(切到第一个cmder,停止项目运行,然后执行以下命令)
然后在mysite项目里运行python manage.py collectstatic((可以通过查看命令 python manage.py --help))
ll static/ 命令查看多了一个admin,css文件
23.浏览器访问 公网ip:8080
就可以正常访问了
如果提示503错误,则说明需要关闭防火墙SELinux防火墙。
vim /etc/selinux/config
将SELINUX后的位置改为disabled
阿里服务器是已经将防火墙关闭的.
可以关注我的公众号:技术趣谈