zoukankan      html  css  js  c++  java
  • Linux nginx发布基于python的WEB环境

    实验环境约定

    • 系统:centos7.7
    • 防⽕墙:关闭
    • Selinux:关闭
    • 服务器地址:192.168.31.199/24

    一. 安装Nginx

    1. 安装依赖工具

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

    2. 安装PCRE

    # PCRE 作用是让 Nginx 支持 Rewrite 功能。
    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    [root@localhost src]# tar zxvf pcre-8.35.tar.gz
    [root@localhost src]# cd pcre-8.35
    [root@localhost pcre-8.35]# ./configure
    [root@localhost pcre-8.35]# make && make install
    [root@localhost pcre-8.35]# pcre-config --version        #查看PCRE版本
    

    3. 安装nginx

    [root@localhost ~]# cd /usr/local/src/
    [root@localhost src]# wget https://nginx.org/download/nginx-1.16.1.tar.gz
    [root@localhost src]# tar -zxvf nginx-1.16.1.tar.gz
    [root@localhost src]# cd nginx-1.16.1/
    [root@localhost nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
    [root@localhost nginx-1.16.1]# make && make install
    [root@localhost nginx-1.16.1]# /usr/local/nginx/sbin/nginx -v  #查看Nginx版本
    

    二. 安装mysql

    1. 安装依赖包

    yum -y install ncurses-devel gcc-* bzip2-*
    

    2. 升级cmake⼯具

    1)获得软件
    https://cmake.org/download/
    
    2)安装软件
    cd /usr/local/src/
    wget https://cmake.org/files/v3.6/cmake-3.6.0-rc1.tar.gz
    tar xf cmake-3.6.0-rc1.tar
    cd cmake-3.6.0-rc1
    ./configure
    make
    make install
    

    3. 升级boost库⽂件

    1) 软件获得
    https://www.boost.org/  请选择1.5.9版本
    下载链接如下:
    wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
    
    2)软件安装
    mkdir /usr/local/boost
    tar -zxvf boost_1_59_0.tar.gz -C /usr/local/boost/
    # 该软件为绿色版本,直接解压到/usr/local/boost/目录下即可
    # boost 1.5.9版本配合的mysql是5.7;
    

    4. 安装mysql

    1)软件获得
    cd /usr/local/src
    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.24.tar.gz
    
    2)软件安装
    tar -zxvf mysql-5.7.24.tar.gz
    cd mysql-5.7.24
    useradd -s /sbin/nologin -r mysql
    
    cmake . 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DENABLED_LOCAL_INFILE=1 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DWITH_DEBUG=0 
    -DWITH_EMBEDDED_SERVER=1 
    -DDOWNLOAD_BOOST=1 
    -DENABLE_DOWNLOADS=1 
    -DWITH_BOOST=/usr/local/boost
    
    
    
    # 以上cmake参数解释
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql	#指定安装路径
    -DMYSQL_DATADIR=/usr/local/mysql/data	#指定存放数据⽂件的⽬录位置
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock	#指定mysql.sock的路径
    -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb存储引擎
    -DWITH_MYISAM_STORAGE_ENGINE=1 #安装myisam存储引擎
    -DENABLED_LOCAL_INFILE=1 #允许客户端使⽤local data local 导⼊本地数据⽂件
    -DEXTRA_CHARSETS=all #安装所有字符集
    -DDEFAULT_CHARSET=utf8 #默认字符集utf-8
    -DDEFAULT_COLLATION=utf8_general_ci #校验字符
    -DWITH_DEBUG=0	#关闭debug
    -DWITH_EMBEDDED_SERVER=1 #⽣成⼀个libmysqld.a(.so)的库,这个库同时集成了mysql服务与客户端API
    -DDOWNLOAD_BOOST=1 #允许boost,
    -DENABLE_DOWNLOADS=1 #允许下载boost库文件
    -DWITH_BOOST=/usr/local/boost #指定boost文件库位置
    
    # 如果需要重新make需要删除/usr/local/src/mysql-5.7.24目录下的CMakeCache.txt,然后再重新cmake;
    
    make -j4  #使用4个cpu内核一起进行编译
    make install
    
    3)安装后操作
    cp support-files/mysql.server /etc/init.d/mysql
    chmod 755 /etc/init.d/mysql
    chown mysql.mysql /usr/local/mysql/ -R
    ln -sf /usr/local/mysql/bin/* /usr/bin/
    ln -sf /usr/local/mysql/lib/* /usr/lib/
    ln -sf /usr/local/mysql/libexec/* /usr/local/libexec
    ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1
    ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8
    
    #初始化数据库,并记录临时密码;
    /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    
    #重要的事情说三遍:
    #记录临时密码;root@localhost: ymH?C_fpn8;5
    #记录临时密码;root@localhost: ymH?C_fpn8;5
    #记录临时密码;root@localhost: ymH?C_fpn8;5
    原日志:2020-04-11T17:19:34.310247Z 1 [Note] A temporary password is generated for root@localhost: ymH?C_fpn8;5
    
    #修改配置文件
    vim /etc/my.cnf
    #确保所有参数的路径正确
    egrep -v "^#|^$" /etc/my.cnf
    [mysqld]
    basedir=/usr/local/mysq
    datadir=/usr/local/mysql/data
    socket=/usr/local/mysql/mysql.sock
    symbolic-links=0
    [mysqld_safe]
    log-error=/var/log/mysql.log
    pid-file=/var/run/mysql.pid
    !includedir /etc/my.cnf.d
    
    

    5. 启动测试

    /etc/init.d/mysql start    #启动数据库
    mysql_secure_installation    #修改密码
    mysql -u root -p    #登录数据库
    

    三. 安装python

    1. 安装Python

    # 安装Python
    [root@www ~]# yum -y install gcc-* openssl-* libffi-devel sqlite-devel
    [root@www ~]# cd /usr/localsrc
    [root@www src]# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
    [root@www src]# tar xf Python-3.7.1.tar.xz
    [root@www src]# cd Python-3.7.1
    [root@www Python-3.7.1]# ./configure --enable-optimizations --with-openssl=/usr/bin/openssl
    [root@www Python-3.7.1]# vim Modules/Setup
    211 SSL=/usr/local/ssl
    212 _ssl _ssl.c 
    213         -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl 
    214         -L$(SSL)/lib -lssl -lcrypto
    [root@www Python-3.7.1]# make -j4
    [root@www Python-3.7.1]# make install
    

    2. 升级pip工具

    # 升级pip,pip 是 Python 包管理⼯具,该⼯具提供了对Python 包的查找、下载、安装、卸载的功能。
    [root@www Python-3.7.1]# pip3 install --upgrade pip
    

    3. 安装并使用Python虚拟环境

    #virtualenv 是⼀个创建隔绝的Python环境的⼯具。virtualenv创建⼀个包含所有必要的可执⾏⽂件的⽂件夹,⽤来使⽤Python⼯程所需的包。
    [root@www Python-3.7.1]# pip3 install virtualenv
    [root@www Python-3.7.1]# cd
    [root@www ~]#  virtualenv -p python3 web01
    [root@www ~]# source web01/bin/activate
    (web01) [root@www ~]# pip install django==2.1.8
    (web01) [root@www ~]# django-admin.py startproject myweb1
    (web01) [root@www ~]# cd myweb1
    (web01) [root@www myweb1]# vim myweb1/settings.py
     ALLOWED_HOSTS = ['*']
    (web01) [root@www myweb1]# python3 manage.py runserver 192.168.31.199:8000
    #这步是临时测试Python站点,如果可以正常访问站点,则继续下一步。
    
    

    四. 部署发布平台

    #安装uwsgi
    #uwsgi是服务器和服务端应⽤程序的通信协议,规定了怎么把请求转发给应⽤程序和返回
    #uWSGI是⼀个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作⽤是与uWSGI服务器进⾏交换。
    #nginx 和 uWSGI交互就必须使⽤同⼀个协议,⽽上⾯说了uwsgi⽀持fastcgi,uwsgi,http协议,这些都是nginx⽀持的协议,只要⼤家沟通好使⽤哪个协议,就可以正常运⾏了。
    [root@web01 ~]# pip3 install uwsgi
    
    # 编辑uwsgi配置文件
    [root@web01 ~]# mkdir /etc/uwsgi
    [root@web01 ~]# vim /etc/uwsgi/uwsgi.ini
    [uwsgi]
    uid = root
    gid = root
    socket = 127.0.0.1:8080
    master = true //启动主进程
    vhost = true //多站模式
    no-site = true //多站模式时不设置⼊⼝模块和⽂件
    workers = 2 //⼦进程数
    reload-mercy = 10 //平滑的重启
    vacuum = true //退出、重启时清理⽂件
    max-requests = 1000 //开启10000个进程后, ⾃动respawn下
    limit-as = 512 // 将进程的总内存量控制在512M
    buffer-size = 30000
    pidfile = /var/run/uwsgi8080.pid //pid⽂件,⽤于下⾯的脚本启动、停⽌该进程
    daemonize = /var/log/uwsgi8080.log
    pythonpath = /root/web1/lib/python3.7/site-packages
    
    #启动UWSGI服务
    uwsgi --ini /etc/uwsgi/uwsgi.ini
    
    # 关闭UWSIG服务,可以通过杀进程来关闭。
    
    # nginx配置
    location / {
    	include uwsgi_params;
    	uwsgi_pass 127.0.0.1:9090;
    	uwsgi_param UWSGI_SCRIPT myweb1.wsgi;
    	uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/myweb1;
    	index index.html index.htm;
    	client_max_body_size 35m;
    	uwsgi_cache_valid 1m;
    	uwsgi_temp_file_write_size 64k;
    	uwsgi_buffers	8 64k;
    	uwsgi_buffer_size 64k;
    	uwsgi_read_timeout 300;
    	uwsgi_send_timeout  300;
    	uwsgi_connect_timeout 300;
    	}
    
    [root@www ~]# mv myweb1 /usr/local/nginx/html/
    /usr/local/nginx/sbin/nginx    #启动Nginx服务
    

    五. 测试

    http://192.168.31.199
    
  • 相关阅读:
    第一阶段:前端开发_使用JS完成注册页面表单校验完善
    第一阶段:前端开发_使用 JS 完成页面定时弹出广告
    第一阶段:前端开发_使用JS完成首页轮播图效果
    第一阶段:前端开发_使用JS完成注册页面表单校验
    三、Java基础工具(1)_常用类——日期类
    使MySQL支持emoji
    1. Two Sum [Array] [Easy]
    『IOS』 遇到问题记录(长期更新)
    [IOS] 详解图片局部拉伸 + 实现图片局部收缩
    【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen
  • 原文地址:https://www.cnblogs.com/wangzengyi/p/12682495.html
Copyright © 2011-2022 走看看