一、安装python3
先通过 ssh root@公网ip 登录到服务器,此时在root目录下。
1. 安装相应的编译工具
yum -y groupinstall "Development tools"
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
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y
2. 安装Python3
mkdir /usr/local/python3 # 创建安装目录
wget wget https://www.python.org/ftp/...tar.xz # 建议选择和开发环境一致的python版本
tar -xvJf Python-...tar.xz # python安装包解压
cd Python-.. # 进入解压目录
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl # 指定创建的目录
make && make install # 编译安装
执行./configure时可能会报错,configure: error: no acceptable C compiler found in $PATH,这是因为未安装合适的编译器,执行
sudo yum install gcc-c++
安装下就好了
3. 创建软连接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
python3 -V # 验证python3版本
这样就可以通过
python
命令试用Python2, python3命令试用Python3
4.安装pip3
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz # 下载源代码
tar -zvxf 9.0.1.tar.gz # 解压文件
cd pip-9.0.1
python3 setup.py install # 使用 Python 3 安装
ln -s /usr/local/python3/bin/pip /usr/bin/pip3 # 创建软连接
pip3 -V # 验证一下
到这我们的Python环境安装好了, 接下来要开始安装一下MySQL.
二、安装MySQL
1. 下载并安装MySQL官方的 Yum Repository
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm' # 下载 Yum Repository 这里版本也尽量选择和本地MySQL相一致的
yum -y install mysql57-community-release-el7-10.noarch.rpm # 安装 Yum Repository
yum -y install mysql-community-server # 安装MySQL服务器
2. MySQL数据库设置
systemctl start mysqld.service # 启动MySQL
systemctl status mysqld.service # 查看运行状态
grep "password" /var/log/mysqld.log # 获取root用户的密码
mysql -uroot -p # 登录数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; # 修改数据库密码 new password 为新密码 一般这步会出现密码复杂度不符合的错误提示
SHOW VARIABLES LIKE 'validate_password%'; # 查看MySQL默认密码复杂度
set global validate_password_policy=LOW; # 设置安全度为low
set global validate_password_length=6; # 设置密码长度为6位 这个无所谓
SHOW VARIABLES LIKE 'validate_password%'; # 查看MySQL默认密码复杂度是否修改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; # 可以重新设置下新密码
3. 修改数据库默认编码
status # 查看数据库的状态
--------------
...
Server characterset: latinl # 我们需要修改为utf8
Db characterset: latinl # 我们需要修改为utf8
Client characterset: utf8
Conn. characterset: utf8
...
--------------
我们需要使用exit;
命令退出mysql, 然后到 /etc
目录下的 my.cnf
文件增加四行代码
# 在顶部添加
[client]
default-character-set=utf8
# 在尾部添加
character-set-server=utf8
collation-server=utf8_general_ci
保存修改后的
my.cnf
文件, 重启mysqlservice mysqld restart
, 然后输入status
再次查看状态, 应该会发生变化了
到这MySQL安装完毕
三、整理项目
1. 创建虚拟环境
cd /home/project/demo # 一般都会将项目创建在home 下面 这里自己起文件名
git clone ... # 讲项目从git上拉下来
mkdir venv # 创建文件夹
python3 -m venv venv # 创建虚拟环境
2. 激活虚拟环境
source venv/bin/activate
3. 安装项目依赖包
首先我们从本地项目的根目录执行
pip freeze > requirements.txt
生成requirements.txt 文件
pip3 install -r requirements.txt
4. 安装gunicorn
Gunicorn (独角兽)是一个高效的Python WSGI Server,通常用它来运行 wsgi application或者 wsgi framework,地位相当于Java中的Tomcat。
pip3 install gunicorn
5. 使用gunicorn运行项目
在项目中新建 wsgi.py
文件 输入一下内容
from app import create_app
app = create_app('production')
这时使用命令 gunicorn -w 4 -b 0.0.0.0:5000 wsgi:app
访问云服务器的公网IP:5000就可以看到你的应用首页
四、使用nginx提供反向代理
1. 安装nginx
sudo apt-get install nginx # 使用apt-get安装
这时候在浏览器输入服务器ip地址, 应该能看到Nginx的欢迎页面, 这时Nginx安装成功
2.配置nginx
Nginx的配置文件地址为/etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ....; # 如果没有域名直接填写本机的公网IP地址
access_log /var/log/nginx/access.log; # 权限日志记录文件
error_log /var/log/nginx/error.log; # 错误日志记录文件
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
proxy_pass http://127.0.0.1:8000; # 转发的本地端口连接,后文会讲述
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static { # 静态文件缓存
alias /home/用户名/项目名/.../static/; # 项目的静态文件目录
expires 30d; # 缓存有效期
}
}
接着使用sudo nginx -t
检查下配置文件
没有问题的话使用命令sudo service nginx restart
重启nginx
使用nginx+gunicorn运行应用
这时我们进入项目根目录,使用 gunicorn -w 4 wsgi:app
运行项目
到这基本工作就算结束了,现在可以自己写一些小的接口配合MySQL试一试啦