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)安装软件
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 \
-DDOWNLOAD_BOOST=0 \
-DWITH_INNODBBASE_STORAGE_ENGINE=1 \
-DENABLE_LOCAL_INFILE=1  \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_EMBEDED_SERVER=1  \
-DWITH_BOOST=/usr/local/boost 

# 如果需要重新make需要删除
# 以上cmake参数解释
-DCMAKE_INSTALL_PREFIX 指定安装路径
-DMYSQL_DATADIR 指定存放数据⽂件的⽬录位置
-DMYSQL_UNIX_ADDR 指定mysql.sock的路径
-DDOWNLOAD_BOOST=0 不下载boost库⽂件
-DWITH_INNODBBASE_STORAGE_ENGINE=1 指定默认存储引擎
-DENABLE_LOCAL_INFILE=1  允许客户端使⽤local data local 导⼊本地数据⽂件
-DEXTRA_CHARSETS=all  ⽀持所有字符集
-DDEFAULT_CHARSET=utf8  默认字符集是UTF-8
-DDEFAULT_COLLATION=utf8_general_ci 数据库校对规则
-DMYSQL_USER=mysql 管理⽤户是mysql
-DWITH_DEBUG=0 关闭debug
-DWITH_EMBEDED_SERVER=0  ⽣成⼀个libmysqld.a(.so)的库,这个库同时集成了mysql服务与客户端API
-DWITH_BOOST=/usr/local/boost 指定boost的路径

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/


#修改配置文件
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[password]    #登录数据库

三. 安装python

# 安装Python
yum -y install gcc-* openssl-* libffi-devel sqlite-devel
cd /usr/localsrc
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
./configure --enable-optimizations --with-openssl=/usr/bin/openssl
make
make install
默认安装路径:/usr/local/lib/python3.7
# 升级pip。
# pip 是 Python 包管理⼯具,该⼯具提供了对Python 包的查找、下载、安装、卸载的功能。
pip3 install --upgrade pip
#安装python虚拟环境工具
#virtualenv 是⼀个创建隔绝的Python环境的⼯具。virtualenv创建⼀个包含所有必要的可执⾏⽂件的⽂件夹,⽤来使⽤Python⼯程所需的包。
 pip3 install virtualenv
# 创建Python虚拟环境并使用
[root@web01 ~]# virtualenv web01
[root@web01 ~]# source web01/bin/activate
(web01) [root@web01 ~]# pip3 install django
(web01) [root@web01 ~]#django-admin.py startproject myweb
(web01) [root@web01 ~]#python3 myweb/manage.py runserver 192.168.31.199:8000
(web01) [root@web01 ~]# vim myweb/settings.py
 ALLOWED_HOSTS = ['*']

四. 部署发布平台

#安装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 ~]# vim /etc/uwsgi/uwsgi.ini
[uwsgi]
uid = root
gid = root
socket = 127.0.0.1:9090
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/uwsgi9090.pid //pid⽂件,⽤于下⾯的脚本启动、停⽌该进程
daemonize = /var/log/uwsgi9090.log
pythonpath = /root/web/lib/python3.7/site-packages
# nginx配置

五. 测试

猜你喜欢

转载自www.cnblogs.com/wangzengyi/p/12682495.html