前言:购买阿里云操作系统是 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
![](https://oscimg.oschina.net/oscnet/092b656d3c25a36ea01895cfd1dd2772fc7.png)
安装以后会给你一个随机的账号和密码,用8888的端口进行登录,会弹出推荐安装套件,这个看自己需求。
在安装的时候,我们可以面板设置把账号密码修改一下。
然后在安全里面把自己要用的端口都设置一下
因为宝塔有防火墙所以不能与阿里云服务器同步(我目前不会关,所以需要手动去阿里云服务器设置一下)
安全组配置-->配置规则 (就可以他添加你想要的端口了)
三、安装Python(这里就可以用Xshell进行操作)
因为CentOS 7.6 64位自带Python2,所以我们这里重新安装Python3
我这里安装的是Python3.7
这里提醒大家千万不要将python2删除,因为有些系统功能依赖python2,所以我们只要添加python3就可以。
首先安装依赖包,centos里面是-devel,如果在ubuntu下安装则要改成-dev,依赖包缺一不可
sudo yum -y groupinstall "Development tools"
sudo 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
编译安装
cd Python-3.7.3
./configure --prefix=/usr/local/bin/python3
sudo make
sudo make install
创建软连接
ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
最后输入命令python3 --version
检查一下是否安装成功
四、安装nginx
http://nginx.org/en/download.html 在这里获取最新版的下载链接
wget http://nginx.org/download/nginx-1.17.6.tar.gz # 下载文件到服务器
tar -zxf nginx-1.17.6.tar.gz # 解压缩文件
cd nginx-1.17.6/
sudo ./configure # 以 root 身份运行
sudo make && make install # 以 root 身份运行
补充一下nginx的相关命令
首先要进入nginx启动目录下面 默认目录/usr/local/nginx/sbin
./nginx #启动
./nginx -s stop # 快速停止
./nginx -s quit # 优雅停止
./nginx -s reload # 重新加载配置文件
./nginx -s reopen # 重启日志文件,备份日志文件时常用
./nginx -t # 测试 Nginx 配置文件
./nginx -v # 查看 Nginx 版本
./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'
创建一个文件夹,在里面创建运行环境
virtualenv [虚拟环境名称]
virtualenv venv #我创建的虚拟环境名称是venv
激活虚拟环境
cd venv
source ./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的文件,并写入内容
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
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或者用宝塔修改文件内容
server {
listen 8000; #我们要访问的端口
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include uwsgi_params; #
uwsgi_pass 0.0.0.0:9000; #uwsgi通过django运行的接口并返回给nginx
root html;
index index.html index.htm;
}
2、在项目目录下创建一个uwsgi.ini的文件(名字随意,运行这个文件就可以)
#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=0.0.0.0:9000
#配置项目路径,项目的所在目录
chdir=/env/venv/test/test_django
#配置wsgi接口模块文件路径
wsgi-file=test_django/wsgi.py
#配置虚拟文件的路径
home=/env/venv
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log
#配置热加载
py-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/