因为lxml依赖的包如下:
复制代码 代码如下:
libxml2, libxml2-devel, libxlst, libxlst-devel, python-libxml2, python-libxslt
所以安装步骤如下:
第一步: 安装 libxml2
复制代码 代码如下:
$ sudo apt-get install libxml2 libxml2-dev
第二步: 安装 libxslt
复制代码 代码如下:
$ sudo apt-get install libxlst libxslt-dev
第三步: 安装 python-libxml2 和 python-libxslt
复制代码 代码如下:
$ sudo apt-get install python-libxml2 python-libxslt
第四步: 安装 lxml
复制代码 代码如下:
$ sudo easy_install lxml
四:部署上线
云服务器密码:****
nginx web服务器(负载均衡服务器)分发任务: 轮巡/最少链接
一、准备
云服务器 + 域名
二、部署基本流程
- 基本环境搭建(python虚拟环境)
- 数据库
- 项目上传
- 安装项目依赖
- 数据库数据迁移
- Nginx安装
- Nginx配置
- uWSGI安装
- uWSGI配置
- Nginx和uWSGI对接
LAMP: L(Linux) + A(Apache) + M(Mysql) + P(PHP)
三、连接服务器
方式: SSH、putty、XShell(Xftp)、VNC...
ssh root@xxx.xxx.xxx
四、虚拟环境
第一步,安装工具:
pip install virtualenv
pip install virtualenvwrapper
第二步,查看路径:
type virtualenvwrapper.sh
// 安装路径 /usr/local/bin/virtualenvwrapper.sh
第三步,配置用户级别的环境变量:
vi ~/.bashrc
// 添加
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
第四步,创建虚拟目录:
mkdir ~/.virtualenvs
第五步,刷新环境:
source ~/.bashrc
第六步,创建虚拟环境
mkvirtualenv python1811 -p /usr/bin/python3
第七步,执行安装(python3有欠缺的)
apt update
apt install python3-dev
五、安装数据库
第一步,安装
apt install mysql-server
第二步,设置开机自启动:
# 查看状态
# service mysql status
# systemctl status mysql.service
# 设置开机自启动
# systemctl enable mysql.service
# 关闭开机自启动
# systemctl disable mysql.service
# systemctl start mysql.service
# systemctl stop mysql.service
# systemctl restart mysql.service
第三步,测试链接
六、上传项目
Xftp工具
scp命令
github
pycharm自带工具 [推荐使用]
在远程服务器中,创建好目录 [/var/www/AXF]
后续配置本地项目目录和远程目录同步
七、项目依赖
# 本地项目
生成项目依赖文件
pip freeze > requirements.txt
# 远程服务器 执行安装对应依赖
pip install -r requirements.txt
八、数据库迁移
# 本地数据库备份
mysqldump -uroot -p szpython1811axf > szpython1811axf.sql
# 远程服务器恢复【必须先创建对应的数据库】
mysql> create database szpython1811axf charset=utf8;
use szpython1811axf;
source /var/www/AXF/dir/szpython1811axf.sql
建议配置远程数据库!
十、测试项目启动
# 启动项目
python manage.py runserver 0.0.0.0:8000
# 打开浏览器,输入IP地址
xenial
十一、安装Nginx
## 下载key
wget http://nginx.org/keys/nginx_signing.key
## 添加key
sudo apt-key add nginx_signing.key
## 编辑文件 /etc/apt/sources.list
deb http://nginx.org/packages/debian/ xenial nginx
deb-src http://nginx.org/packages/debian/ xenial nginx
## 更新源
apt update
## 安装nginx
apt install nginx
## 设置开机自启动
systemctl enable nginx.service
## 检查Nginx安装是否成功,打开浏览器输入IP地址
看到`Welcome to nginx!`
十二、Nginx配置
## 创建目录
mkdir /var/www/img
## 拷贝一个图片到上述目录中
axf.png
## 拷贝一个 Nginx默认配置 【避免改错了】
cp /etc/nginx/nginx.conf /etc/nginx/mynginx.conf
## mynginx.conf配置
http {
#include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
server {
location /img {
alias /var/www/img;
}
}
}
## 杀死Nginx服务进程
pkill -9 nginx
## 查看Nginx进程 [确保已经杀死]
ps -ef | grep nginx
## 指定配置文件启动
nginx -c mynginx.conf
## 启动gunicorn
gunicorn -w 2 -b 127.0.0.1:5000 运行文件名称:Flask程序实例名(app)
## 查看Nginx进程 [确保是mynginx.conf启动的]
ps -ef | grep nginx
## 访问测试
http://112.74.55.3/img/axf.png
问题: 出现
open() /usr/share/nginx/mynginx.conf xxxxxx
。通过软连接方式: ln -s /etc/nginx/mynginx.conf mynginx.conf
十三、uWSGI
uWSGI是python web服务器,实现WSGI协议,uwsgi协议,http协议…
nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务
## 安装(虚拟环境中)
pip install uwsgi
## 添加配置文件 [项目中]
uwsgi.ini
## 配置uwsgi.ini文件
[uwsgi]
# web服务器
http=0.0.0.0:8090
# 工程目录【服务端】
chdir=/var/www/AXF
# wsgi文件目录 相对工程目录,相对路径 [完整s/var/www/AXF/Pyton1811AXF/wsgi.py]
wsgi-file=Pyton1811AXF/wsgi.py
processes=1
threads=1
endable-threads=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
## 通过uwsgi启动Django项目
uwsgi --ini uwsgi.ini
## 测试是否启动成功
http://112.74.55.3:8090/axf/
如果出问题了,一定要检查
uwsgi.log
十四、Nginx+uWSGI对接
## 修改uWSGI配置文件
## http 替换 socket
# web服务器
# http=0.0.0.0:8090
# 对接Nginx
socket=0.0.0.0:8000
## 修改Nginx配置文件
http{
server {
location / {
include /etc/nginx/uwsgi_params;
# 代理
uwsgi_pass 0.0.0.0:8000;
}
# xxxxx
}
}
只要修改了配置文件,就需要杀死进程,重新启动!!!