前言:购买阿里云操作系统是 CentOS 7.7 64位
一、下一个Xshell软件
对于不习惯在阿里云终端操作的,可以下这个软件,方便后台操作。
使用命令ssh root@你的服务器公网IP 登录阿里云服务器。
二、安装宝塔面板
(方便上传文件,删除文件,修改文件内容等操作,对于vim操作不熟悉的,可以用这个)
安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

安装以后会给你一个随机的账号和密码,用8888的端口进行登录,会弹出推荐安装套件,这个看自己需求。

在安装的时候,我们可以面板设置把账号密码修改一下。
然后在安全里面把自己要用的端口都设置一下

因为宝塔有防火墙所以不能与阿里云服务器同步(我目前不会关,所以需要手动去阿里云服务器设置一下)

安全组配置-->配置规则 (就可以他添加你想要的端口了)
三、安装Python(这里就可以用Xshell进行操作)
因为CentOS 7.6 64位自带Python2,所以我们这里重新安装Python3
我这里安装的是Python3.7
这里提醒大家千万不要将python2删除,因为有些系统功能依赖python2,所以我们只要添加python3就可以。
首先安装依赖包,centos里面是-devel,如果在ubuntu下安装则要改成-dev,依赖包缺一不可
1sudo yum -y groupinstall "Development tools" 2sudo 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
然后下载python3.7的安装包(这里安装需要些时间,我们可以在Xshell在打开一个窗口,进行安装nginx的步骤,两个可以一起执行)
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
解压下载包
tar -xvJf Python-3.7.3.tar.xz
编译安装
1cd Python-3.7.3 2./configure --prefix=/usr/local/bin/python3 3sudo make 4sudo make install
创建软连接
1ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3 2ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
最后输入命令python3 --version检查一下是否安装成功

四、安装nginx
http://nginx.org/en/download.html 在这里获取最新版的下载链接
1wget http://nginx.org/download/nginx-1.17.6.tar.gz # 下载文件到服务器 2tar -zxf nginx-1.17.6.tar.gz # 解压缩文件 3cd nginx-1.17.6/ 4sudo ./configure # 以 root 身份运行 5sudo make && make install # 以 root 身份运行
补充一下nginx的相关命令
1首先要进入nginx启动目录下面 默认目录/usr/local/nginx/sbin 2./nginx #启动 3./nginx -s stop # 快速停止 4./nginx -s quit # 优雅停止 5./nginx -s reload # 重新加载配置文件 6./nginx -s reopen # 重启日志文件,备份日志文件时常用 7./nginx -t # 测试 Nginx 配置文件 8./nginx -v # 查看 Nginx 版本 9./nginx -V # 查看 Nginx 版本、编译版本和编译参数
也可以通过命令sudo find / -name nginx 查找nginx

因为80端口被宝塔占用,所以这里需要重新配置一下nginx.conf的文件,

找一个没有用的且后台开启的端口进行测试。

五、安装python虚拟环境
注意:建议使用这个命令安装virtualenv --python=/usr/bin/python3 vnev(虚拟环境名称)
以前用的pip3 install virtualenv命令安装 会出现这个错误ImportError: No module named 'encodings'
创建一个文件夹,在里面创建运行环境
1virtualenv [虚拟环境名称] 2virtualenv venv #我创建的虚拟环境名称是venv
激活虚拟环境
1cd venv 2source ./bin/activate
退出虚拟环境
deactivate
六、安装uWSGI
在非虚拟环境中安装uWSGI
pip3 install uwsgi
通过sudo find / -name uwsgi命令找到uwsgi的位置

然后创建软连接
ln -s /usr/local/bin/python3/bin/uwsgi /usr/bin/uwsgi
测试uwsgi,首先创建一个test,py的文件,并写入内容
1def application(env, start_response): 2 start_response('200 OK', [('Content-Type','text/html')]) 3 return [b"Hello World"] # python3
检查uwsgi版本
uwsgi --version
2.0.18
uwsgi --python-version
3.7.3
在test.py文件下执行uwsgi --http :8000 --wsgi-file test.py

七、安装django并创建django并测试(在虚拟环境中测试)
我这里创建了一个测试的django项目 本地测试
python3 manage.py runserver 0.0.0.0:8000

这里需要注意的是settings里面需要修改为“*”
ALLOWED_HOSTS = ["*"]
用uwsgi在测试一次
uwsgi --http :8000 --module test_django.wsgi --py-autoreload=1
module:项目文件夹路径 找到wsgi
py-autoreload:热加载
八、配置nginx、uwsgi
1、找到nginx.conf 一般在/usr/local/nginx/conf目录下
vim或者用宝塔修改文件内容
1 server { 2 listen 8000; #我们要访问的端口 3 server_name localhost; 4 5 #charset koi8-r; 6 7 #access_log logs/host.access.log main; 8 9 location / { 10 include uwsgi_params; # 11 uwsgi_pass 0.0.0.0:9000; #uwsgi通过django运行的接口并返回给nginx 12 root html; 13 index index.html index.htm; 14 }
2、在项目目录下创建一个uwsgi.ini的文件(名字随意,运行这个文件就可以)
1#添加配置选择 2[uwsgi] 3#配置和nginx连接的socket连接 4socket=0.0.0.0:9000 5#配置项目路径,项目的所在目录 6chdir=/env/venv/test/test_django 7#配置wsgi接口模块文件路径 8wsgi-file=test_django/wsgi.py 9#配置虚拟文件的路径 10home=/env/venv 11#配置启动的进程数 12processes=4 13#配置每个进程的线程数 14threads=2 15#配置启动管理主进程 16master=True 17#配置存放主进程的进程号文件 18pidfile=uwsgi.pid 19#配置dump日志记录 20daemonize=uwsgi.log 21#配置热加载 22py-autoreload=1
最后杀掉我们要用的端口 sudo fuser -k 8000/tcp sudo fuser -k 9000/tcp 避免一会运行的时候冲突
然后启动./nginx
在uwsgi.ini的目录下启动 uwsgi --ini uwsgi.ini
浏览器:39.97.97.51:8000/test/