一、安装编译用的包

  • 如果在root下就不用输入 sudo。在子用户下就在命令前加上 sudo。
  1. $ sudo apt-get install build-essential
  2. $ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev
  3. $ sudo apt-get install libdb5.1-dev libgdbm-dev libsqlite3-dev libssl-dev
  4. $ sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev

二、下载安装 python3

  1. 下载python3包

     $ wget --no-check-certificate https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

    '下载可能会出现证书无效问题,只要安装个ca-certificates或使用--no-check-certificate下载就可以避免下面的错误'

  2. 进入下载目录
     $ cd 下载的目录下/
  3. 解压包
     $ tar -zxf Python-3.6.3.tgz
  4. 进入python3
     $ cd Python-3.6.3

三、编译安装

  1. 解决PIP包管理器所需依赖包
     $ vim Modules/Setup.dist
  2. 将下面1行取消注释,大概在文件的361行左右.修改后esc:wq保存并退出
     zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

四、自定义安装目录

  1. 创建安装目录
     $ mkdir -p /usr/local/python3.6.3
  2. 进入python3目录
     $ cd Python-3.6.3
  3. 指定到安装目录
     $ ./configure --prefix=/usr/local/python3.6.3 $ ./configure --enable-optimizations
  4. 这里编译使用的是make all没有直接使用make,all参数会编译所有子模块。

     $ make all
     $ make install

五、把 python3 添加到PATH里

  1. 打开~/.bashrc 文件
  2. 添加执行路径
     $ sudo vim ~/.bashrc
     export PATH=$PATH:/usr/local/python3.6.3/bin
    添加新的别名信息来修改默认使用的Python版本
     alias python='/usr/bin/python3.6.3'
  3. 生效配置文件
     $ source .bashrc
  4. 查看版本:
    因为上面已经添加了默认使用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

  1. 安装
    $ sudo apt-get install nginx
    # 查看版本 $ nginx -v
  2. 启动 nginx

     $ sudo /etc/init.d/nginx start

    浏览器访问:你的服务器ip地址 如:http://45.45.162.162

     


    出现上图:表示成功

     

  3. 停止 nginx
     $ sudo nginx -s stop

七、安装 uWSGI

  1. 因为已经安装python3所以要使用pip3进行安装
     $ pip3 install uwsgi
  2. 查看版本
     $ uwsgi --version
  3. 安装方法二:下载:
     $ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
  4. 解压:
     $ tar zxvf uwsgi-latest.tar.gz

八、测试

如果:有现成的项目可以把项目上传到服务器中,在git 管理项目,只需要 git clone 一下就可以了。

如果:你需要从本地上传项目文件,可以用scp命令,这里就不啰嗦用法了。总之我们将项目文件放到服务器,然后就可以用virtualenv管理Python环境
virtualenv就不多说了。这里直接用flask demo进行。

  1. 安装虚拟环境

     $ pip3 install virtualenv
  2. 创建一个包

     $ mkdir myproject
     $ cd myproject
  3. 创建虚拟环境
     $ virtualenv env
    (1)激活虚拟环境
     $ source env/bin/activate
    (2)在虚环境中安装flask
     $ pip3 install flask
    (3)退出虚环境
     $ deactivate
    (4)创建启动文件
     $ vim run.py
    (5)写入一个flask,端口自己进行设置。我这里用的80端口。
     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)
    (6)esc+wq保存并且退出
  4. 运行这个run.py文件
    (1)先停止Nginx
     $ nginx -s stop
    (2)打开你设置的端口(端口默认全部是关闭状态)端口自行设置。
     $ iptables -A INPUT -p tcp --dport 80 -j ACCEPT
     # 如果想关闭打开的端口: $ iptables -A INPUT -p tcp --dport 80 -j DROP
    (3)启动flask程序
     $ cd myproject $ python3 run.py
  5. 用其他电脑和手机4G访问你的服务器ip地址+上端口。
     如:http://45.32.122.555:80/
     出现:Hello World! 那就成功了。

九、配置 Nginx

  1. *
    (1)进入
     $ cd /etc/nginx/sites-enabled/
    (2)编辑default
     $ vim default
    —————————————————————————————————
     # 或者直接配置 $ cd /etc/nginx $ vim nginx.conf # 不过要根据其语法来配置其实最后nginx.conf还是会调用/etc/nginx/sites-enabled/default的配置。
    (3)在最后写入后 :wq保存并且退出
     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