部署环境
服务器:阿里云轻量应用服务器
系统:centos7(自带yum,centos6需要自行安装)
SSH连接:putty0.7 64位
python版本:python3.6
数据库:mysql
1.安装必要的包
yum -y update
yum install gcc
yum -y install zlib*
yum install openssl-devel -y
2.安装mysql
使用wget命令,建议切换到/tmp目录下
wget命令的下载地址可能会失效,自行去官网找要下载的包的地址
mysql官网:http://dev.mysql.com/
这里给出一个参考
下载rpm包
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
解压rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
启动mysql服务
service mysqld restart
安装mysql服务
yum install mysql-community-server
登录mysql
mysql -u root
此时mysql已经可以使用了,但是没有设置密码,建议设置好密码
进入mysql
your password就是你设置的密码
set password =password('your password');
设置完密码刷新一下
flush privileges;
然后退出mysql
如有需要的可以设置允许mysql外部访问
1.首先开放服务器的3306端口,阿里云的服务器在控制台防火墙
2.进入mysql,使用sql语句
your password是上面设置的root用户的密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
flush privileges;
3.安装python3
和上面一样,去官网找对应的下载链接
python官网:https://www.python.org
切换到/tmp,下载压缩包
cd /tmp
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
解压
tar -xzvf Python-3.6.8.tgz -C /tmp
切换到解压后的目录
cd /tmp/Python-3.6.8/
安装,我这里是安装到 /usr/local 目录
./configure --prefix=/usr/local
make
make altinstall
为python3创建软链接,方便使用
ln -s /usr/local/bin/python3.6 /usr/bin/python3
4.安装pip3
pip3的安装参考了网上很多方法,都没有正确安装,最后使用的是yum安装,仅供参考
yum install python36-pip
同样为pip3创建软链接
ln -s /bin/pip3.6 /bin/pip3
5.安装uwsgi
有了pip3,就可以使用它安装uwsgi了
pip3 install uwsgi
同样创建软链接
ln -s /usr/local/bin/uwsgi /usr/bin/uwsgi3
6.安装nginx
使用yum安装
yum install nginx
7.安装gunicorn
gunicorn需要安装到python3环境中,centos自带了python2.7,默认是使用python2的,所有这里需要创建虚拟环境,在虚拟环境中安装gunicorn
创建并切换到项目目录
创建虚拟环境
mkdir venv
python3 -m venv venv
激活虚拟环境
source venv/bin/activate
到本地工程下导出 requirements.txt并上传到项目目录下
pip freeze >requirements.txt
然后根据 requirements.txt 文件安装依赖包:
pip3 install -r requirements.txt
pip安装gunicorn
pip3 install gunicorn
8.配置nginx
打开nginx配置文件
vim /etc/nginx/nginx.conf
server {
listen 80;
server_name server_name;
access_log /home/log/access.log;
error_log /home/log/error.log;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}