一、安装编译用的包
- 如果在root下就不用输入 sudo。在子用户下就在命令前加上 sudo。
- $ sudo apt-get install build-essential
- $ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev
- $ sudo apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev libssl-dev
- $ sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev
二、下载安装 python3
-
下载python3包
$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
'下载可能会出现证书无效问题,只要安装个ca-certificates或使用--no-check-certificate下载就可以避免下面的错误'
- 进入下载目录
$ cd 下载的目录下/
- 解压包
$ tar -zxf Python-3.6.3.tgz
- 进入python3
$ cd Python-3.6.3
三、编译安装
- 解决PIP包管理器所需依赖包
$ vim Modules/Setup.dist
- 将下面1行取消注释,大概在文件的361行左右.修改后esc:wq保存并退出
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
四、自定义安装目录
- 创建安装目录
$ mkdir -p /usr/local/python3.6.3
- 进入python3目录
$ cd Python-3.6.3
- 指定到安装目录
$ ./configure --prefix=/usr/local/python3.6.3 $ ./configure --enable-optimizations
-
这里编译使用的是make all没有直接使用make,all参数会编译所有子模块。
$ make all $ make install
五、把 python3 添加到PATH里
- 打开~/.bashrc 文件
- 添加执行路径
添加新的别名信息来修改默认使用的Python版本$ sudo vim ~/.bashrc export PATH=$PATH:/usr/local/python3.6.3/bin
alias python='/usr/bin/python3.6.3'
- 生效配置文件
$ source .bashrc
- 查看版本:
因为上面已经添加了默认使用python3.6.3,所以直接输入$ python -V 会出现 (-bash: /usr/bin/python3.6.3: No such file or directory)报错。查看python版本输入以下: $ python2 -V :显示为系统自带的python2.7.3 $ python3 -V :显示为系统自带的python3.6.3
六、安装 Nginx
- 安装
$ sudo apt-get install nginx # 查看版本 $ nginx -v
-
启动 nginx
$ sudo /etc/init.d/nginx start
浏览器访问:你的服务器ip地址 如:http://45.45.162.162
出现上图:表示成功 - 停止 nginx
$ sudo nginx -s stop
七、安装 uWSGI
- 因为已经安装python3所以要使用pip3进行安装
$ pip3 install uwsgi
- 查看版本
$ uwsgi --version
- 安装方法二:下载:
$ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
- 解压:
$ tar zxvf uwsgi-latest.tar.gz
八、测试
如果:有现成的项目可以把项目上传到服务器中,在git 管理项目,只需要 git clone 一下就可以了。
如果:你需要从本地上传项目文件,可以用scp命令,这里就不啰嗦用法了。总之我们将项目文件放到服务器,然后就可以用virtualenv管理Python环境
virtualenv就不多说了。这里直接用flask demo进行。
-
安装虚拟环境
$ pip3 install virtualenv
-
创建一个包
$ mkdir myproject $ cd myproject
- 创建虚拟环境
(1)激活虚拟环境$ virtualenv env
(2)在虚环境中安装flask$ source env/bin/activate
(3)退出虚环境$ pip3 install flask
(4)创建启动文件$ deactivate
(5)写入一个flask,端口自己进行设置。我这里用的80端口。$ vim run.py
(6)esc+wq保存并且退出from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(host='0.0.0.0', port=80)
- 运行这个run.py文件
(1)先停止Nginx
(2)打开你设置的端口(端口默认全部是关闭状态)端口自行设置。$ nginx -s stop
(3)启动flask程序$ iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 如果想关闭打开的端口: $ iptables -A INPUT -p tcp --dport 80 -j DROP
$ cd myproject $ python3 run.py
- 用其他电脑和手机4G访问你的服务器ip地址+上端口。
如:http://45.32.122.555:80/ 出现:Hello World! 那就成功了。
九、配置 Nginx
- *
(1)进入
(2)编辑default$ cd /etc/nginx/sites-enabled/
—————————————————————————————————$ vim default
(3)在最后写入后 :wq保存并且退出# 或者直接配置 $ cd /etc/nginx $ vim nginx.conf # 不过要根据其语法来配置其实最后nginx.conf还是会调用/etc/nginx/sites-enabled/default的配置。
解析server { listen 80; server_name 45.32.162.255; charset utf-8; client_max_body_size 75M; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_PYHOME /root/myproject/venv; uwsgi_param UWSGI_CHDIR /root/myproject; uwsgi_param UWSGI_SCRIPT run:app; } }
listen 80; # 服务器监听端口
ser