您现在的位置是:网站首页>>Python>>python

Python 上线全过程(Python网站部署)

发布时间:2018-11-15 14:38:13作者:wangjian浏览量:419点赞量:0

    这里以Python的django框架为例(Python的其它框架或原生Python上线步骤大同小异)

    一:Python环境安装

    1:安装编译文件

    yum install gcc
    yum -y install zlib*
    yum install openssl-devel -y
    yum install python-setuptools
    yum install sqlite-devel
    yum install mysql-devel

    2:安装python

    wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
    tar -zxvf Python-3.6.4.tgz
    cd Python-3.6.4
    ./configure --with-ssl
    make && make install

    3:pip升级

    pip3 install --upgrade pip

    4:安装你需要安装的拓展插件

    (1):新建一个requirements.txt文件,里面写上要安装的插件

    这里我的requirements.txt内的内容为:

    django  #django 框架
    uwsgi   #用于Python域名访问
    mysqlclient  #django的mysql插件
    pycryptodome  #Crypto加密解密插件

    (2):安装拓展插件

    pip3 install -r requirements.txt

    二:安装nginx:

    1:安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

    2:安装pcre

    wget https://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    tar zxvf pcre-8.35.tar.gz
    cd pcre-8.35
    ./configure --prefix=/usr/local/pcre
    make && make install

    3:安装nginx

    wget https://nginx.org/download/nginx-1.5.6.tar.gz
    tar -zxf nginx-1.5.6.tar.gz
    cd nginx-1.5.6
    ./configure --prefix=/usr/local/nginx \
    --with-http_stub_status_module \
    --with-http_gzip_static_module
    make && make install

    4:启动nginx

    /usr/local/nginx/sbin/nginx

    三:安装mysql

    1:安装编译工具及库文件

    yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

    2:安装cmake 编译器

    wget https://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
    tar zxvf cmake-3.1.1.tar.gz
    cd cmake-3.1.1
    ./bootstrap
    make && make install

    3:安装mysql

    # 下载mysql的repo
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    # 安装mysql源安装包
    rpm -ivh mysql57-community-release-el7-11.noarch.rpm
    #安装mysql
    yum -y install mysql-community-server

    4:配置mysql

    (1):启动mysql并设置开机自启动

    systemctl start mysqld
    systemctl enable mysqld

    (2):配置mysql远程连接和设置密码

    查看临时密码

    grep 'temporary password' /var/log/mysqld.log

    设置远程连接和设置密码

    $ mysql -u root -p
    # 进入mysql命令行,修改密码
    mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXX';
    Query OK, 0 rows affected (0.00 sec)
    #设置远程登录
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'XXX' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    mysql>FLUSH PRIVILEGES;#刷新配置
    mysql>exit;
    Bye

    四:配置防火墙

    #启动Firewall
    systemctl start firewalld
    #设置开机自启动
    systemctl enable firewalld.service  
    # 防火墙开放3306端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    # 防火墙开放80端口
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    # 刷新防火墙配置
    firewall-cmd --reload
    # 查看端口禁用和开启情况
    iptables -L -n

    五:配置django项目在服务器上

    1:django项目上线配置

    将django项目上传到服务器上,然后修改django项目的配置文件settings.py

    DEBUG=False (从Debug状态退出)
    ALLOWED_HOSTS = ["*"]

    修改数据库配置DATABASES,修改为你安装的mysql的账号

    2:使用mysql客户端登录mysql并创建一个数据库,数据库名为django的settings.py文件配置连接mysql的数据库名,你也可是在命令行进入mysql命令行使用

    create project(数据库名)

    创建数据库

    3:使用django命令生成数据库

    python3 manage.py makemigrations
    python3 manage.py migrate

    六:配置Nginx+uwsgi实现域名访问

    1:创建uwsgi脚本

    新建一个uwsgi脚本文件(这里我新建了一个目录用于存放uwsgi脚本文件)

    cd /dara/www
    mkdir script
    cd script
    vim uwsgi.ini

    uwsgi脚本文件内容为:

    # uwsig使用配置文件启动
    [uwsgi]
    socket = 127.0.0.1:9090
    # 启用主进程
    master = true
    #多站模式
    vhost = true
    #启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 指定静态文件
    static-map=/static=/data/www/myitem/static
    #多站模式时不设置入口模块和文件
    no-site = true
    #子进程数
    workers = 2
    reload-mercy = 10
    #退出、重启时清理文件
    vacuum = true
    max-requests = 1000
    limit-as = 512
    buffer-size = 30000
     #pid文件,用于下面的脚本启动、停止该进程
    pidfile = /data/www/script/uwsgi.pid
    #日志文件
    daemonize = /data/www/script/uwsgi.log 
    #Python环境地址
    pythonpath = /usr/local/lib/python3.6/site-packages

    2:配置nginx

    在nginx的配置文件nginx.conf文件(/usr/local/nginx/conf/nginx.conf)尾端加上

    include vhost/*.conf;

    image.png

    在conf目录下创建一个vhost目录,新建一个你要用用的域名构成的conf文件

    vim /usr/local/nginx/conf/vhost/www.ceshi.com.conf

    文件内容为:

    server {
            listen       80;
            server_name  www.ceshi.com;
            #静态文件配置
                location /static {
                        alias /data/www/project/static;
                    }
            location / {            
                include  uwsgi_params;
                uwsgi_pass  127.0.0.1:9090;#必须和uwsgi中的设置一致 
                uwsgi_param UWSGI_SCRIPT project.wsgi;#入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
                uwsgi_param UWSGI_CHDIR /data/www/project;#项目根目录
                index  index.html index.htm;
                client_max_body_size 35m;
            }
        }

    3:启动uwsgi并重启nginx

    uwsgi --ini /data/www/script/uwsgi.ini  #启动uwsgi脚本
    /usr/local/nginx/sbin/nginx -s reopen #重启nginx

    到此django项目上线完成

0 +1