软件安装与项目部署

@[toc]

1. centos7.5系统安装python3.7

① 下载python安装包

[root@VM_39_157_centos ~]# wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

② 解压安装包到当前目录

[root@VM_39_157_centos ~]# tar zxvf Python-3.7.3.tgz -C ./

③ 安装python依赖

[root@VM_39_157_centos ~]# yum -y install openssl-devel bzip2-devel libffi-devel

④ 安装gcc、gcc-c++

[root@VM_39_157_centos ~]# yum -y install gcc gcc-c++

⑤ 进入python安装包目录

[root@VM_39_157_centos ~]# cd Python-3.7.3

⑥ 编译安装

[root@VM_39_157_centos Python-3.7.3]# ./configure --prefix=/usr/local
[root@VM_39_157_centos Python-3.7.3]# make
[root@VM_39_157_centos Python-3.7.3]# make install

⑦ 创建软链接

[root@instance-mtfsf05r ~]# cd /usr/bin
[root@VM_39_157_centos bin]# mv python python.backup
[root@VM_39_157_centos bin]# ln -s /usr/local/bin/python3.7 /usr/bin/python
[root@VM_39_157_centos bin]# ln -s /usr/local/bin/python3.7 /usr/bin/python3

⑧ 修改yum源指定为python2

[root@VM_39_157_centos bin]# cd /usr/bin
[root@VM_39_157_centos bin]# ls yum*
[root@VM_39_157_centos bin]# vi yum
[root@VM_39_157_centos bin]# vi yum-builddep
[root@VM_39_157_centos bin]# vi yum-config-manager
[root@VM_39_157_centos bin]# vi yum-debug-dump
[root@VM_39_157_centos bin]# vi yum-debug-restore
[root@VM_39_157_centos bin]# vi yumdownloader
[root@VM_39_157_centos bin]# vi yum-groups-manager
[root@VM_39_157_centos bin]# vi /usr/libexec/urlgrabber-ext-down
2. centos7.5安装nginx-1.16.0

① 下载nginx源码压缩包

[root@VM_39_157_centos ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz

② 解压压缩包

[root@VM_39_157_centos ~]# tar zxvf nginx-1.16.0.tar.gz

③ 安装nginx依赖

[root@VM_39_157_centos ~]# yum -y install gcc gcc-c++ openssl-devel pcre-devel httpd-tools

④ 进入nginx目录并添加用户

[root@VM_39_157_centos ~]# cd nginx-1.16.0
[root@VM_39_157_centos nginx-1.16.0]# useradd nginx

⑤ 指定所需的模块并执行配置文件

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_mp4_module --with-http_flv_module

⑥ 编译和安装nginx

[root@VM_39_157_centos nginx-1.16.0]# ./configure --prefix=/usr/local
[root@VM_39_157_centos nginx-1.16.0]# make
[root@VM_39_157_centos nginx-1.16.0]# make install

⑦ 检查nginx是否安装成功

[root@VM_39_157_centos nginx-1.16.0]# nginx -v

⑧ 创建一个软链接

[root@VM_39_157_centos nginx-1.16.0]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin

⑨ 启动nginx

[root@VM_39_157_centos ~]# nginx

⑩ 其它

  • 查看nginx占用的端口

[root@VM_39_157_centos ~]# netstat -anptu | grep nginx

  • 停止nginx

[root@VM_39_157_centos nginx-1.16.0]# nginx -s stop

  • 强制停止nginx

[root@VM_39_157_centos nginx-1.16.0]# pkill -9 nginx

  • 检查nginx是否应用配置文件

[root@VM_39_157_centos nginx-1.16.0]# nginx -t

3. nginx SSL证书的安装

① 将证书公钥和证书私钥传送到服务器(云主机)

thanlon@thanlon-Ubuntu:~/下载/www.blueflags.cn/Nginx$ scp 1_www.blueflags.cn_bundle.crt [email protected]:/root/flask/blueflag/cert

thanlon@thanlon-Ubuntu:~/下载/www.blueflags.cn/Nginx$ scp 2_www.blueflags.cn.key [email protected]:/root/flask/blueflag/cert

② 修改Nginx配置文件
打开nginx安装目录下conf目录中的nginx.conf文件:

[root@instance-mtfsf05r]# vi /usr/local/nginx/conf/nginx.conf

找到被注释掉的server 配置:

 # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

修改为:

 # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      /root/flask/blueflag/cert/1_www.blueflags.cn_bundle.crt; #证书公钥
        ssl_certificate_key  /root/flask/blueflag/cert/2_www.blueflags.cn.key; #证书私钥

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            include uwsgi_params; #这里是导入的uwsgi配置
            uwsgi_pass     127.0.0.1:8001;#需要和uwsgi的配置文件里socket项的地址
            uwsgi_param UWSGI_PYHOME /root/flask/blueflag/blueflagvenv;#python的位置(虚拟环境下)
            uwsgi_param UWSGI_CHDIR  /root/flask/blueflag;#项目根目录
            uwsgi_param UWSGI_SCRIPT manager:app;
        }
    }

保存退出。

③ 重新加载Nginx配置
检查配置文件是否正确:[root@instance-mtfsf05r]# nginx -t

在这里插入图片描述

重新加载Nginx配置文件:[root@instance-mtfsf05r]# nginx -s reload,通过Https方式访问站点:https://www.blueflags.cn/
在这里插入图片描述

数安时代, Nginx SSL证书安装指南:https://www.trustauth.cn/ssl-guide/676.html

4. centos7.5下安装和配置mysql5.6数据库

① 下载mysql rpm包

[root@VM_39_157_centos ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

② 安装rpm包

[root@VM_39_157_centos ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

③ 安装mysql-server

[root@VM_39_157_centos ~]# yum install mysql-server

④ 授权

[root@VM_39_157_centos ~]# chown mysql:mysql -R /var/lib/mysql

⑤ 安装mysql

[root@VM_39_157_centos ~]# mysqld --initialize

⑥ 开启服务

[root@VM_39_157_centos ~]# systemctl start mysqld

⑦ 查看服务状态

[root@VM_39_157_centos ~]# systemctl status mysqld

⑧ 设置打开计算机时启动服务

[root@VM_39_157_centos ~]# systemctl enable mysqld

⑨ 设置用户密码

[root@VM_39_157_centos ~]# mysqladmin -uroot password '123456'

⑩ 停止服务

[root@VM_39_157_centos ~]# systemctl stop mysqld

5. centos7.5+python3.7+nginx1.16+mysql5.6+uwsgi部署上线flask项目

① python3环境的安装(上文有介绍)

② nginx环境的安装(上文有介绍)

③ mysql环境的安装(上文有介绍)

安装完成后,将开发环境中的数据库文件导出:

thanlon@thanlon-Ubuntu:~$ mysqldump -uroot -p blueflag>db.sql

上传到服务器中:

thanlon@thanlon-Ubuntu:~$ scp db5.15.sql [email protected]:/root/db_file/

创建和use数据库后,通过source指令导入到MySQL中:

source db.sql

④ 上传项目源码到服务器中

在CentOS中的/root目录下创建flask文件夹用来存放项目文件

[root@instance-mtfsf05r ~]# mkdir flask

上传项目源码到服务其中(我的开发环境是Ubuntu,所以我就通过scp命令上传了)

thanlon@thanlon-Ubuntu:~/pythonWeb$ scp -r blueflag [email protected]:/root/flask

⑤ 安装Python虚拟化环境
通过pip3命令安装virtualenv

[root@instance-mtfsf05r ~]# pip3 install virtualenv

在项目根目录中创建虚拟环境文件目录(文件名自定义,这里是blueflagvenv

[root@instance-mtfsf05r ~]# cd flask/blueflag
[root@instance-mtfsf05r blueflag]# virtualenv blueflagvenv

激活虚拟化环境

[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate
激活后出现虚拟化环境文件目录名子:(blueflagvenv) [root@instance-mtfsf05r blueflag]#,说明激活成功,当前正处于Python虚拟环境。

⑥ 安装项目需要的第三方库
根据项目的需求安装(在虚拟环境中安装),例如:我的这些库

(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install wtforms
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_sqlalchemy
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install requests
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install pymysql
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_script

还可以使用:

thanlon@thanlon-Ubuntu:~$ pip3 freeze>blueflag.txt

导出依赖包,然后直接通过:

(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install -r blueflag.txt

安装这些依赖包。

⑦ 安装和配置uwsgi

安装:(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install uwsgi

在项目根目录下创建一个配置文件uwsgiconf.ini,文件名可以自定义:

(blueflagvenv) [root@instance-mtfsf05r blueflag]# touch uwsgiconf.ini

配置uwsgiconf.ini文件:

在uwsgiconf.ini文件中写入下面代码块的内容:(记得把注释全部删掉)

[uwsgi]
socket = 127.0.0.1:8001#启动程序时所使用的地址和端口

chdir = /root/flask/blueflag/#项目目录

wsgi-file = manager.py#项目程序启动文件

callable = app#程序内启用的application变量名字

processes = 2#处理器的数量,我的是2个处理器

threads = 2 #线程数量

stats = 127.0.0.1:9191#获取uwsgi统计信息的服务地址
~                                                  

在uwsgiconf.ini文件中写入下面代码块的内容:(记得把注释全部删掉)

⑧ 配置nginx
配置Nginx作为代理的目的是保证项目的安全和负载均衡。当存在网络请求时,Nginx先进行处理,然后再将请求交给uWSGI处理。
打开Nginx配置文件nginx.conf

[root@instance-mtfsf05r ~]# vi /usr/local/nginx/conf/nginx.conf

修改nginx.conf中的内容如下:(http{}中花括号中的server{})

 server {
        listen       80;
        server_name  106.12.123.123;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        access_log      /root/flask/blueflag/logs/access.log;#服务器接收的请求日志
        error_log       /root/flask/blueflag/logs/error.log;#错误日志

        locatior / {
            include uwsgi_params; #这里是导入的uwsgi配置
            uwsgi_pass     127.0.0.1:8001;#需要和uwsgi的配置文件里socket项的地址
            uwsgi_param UWSGI_PYHOME /root/flask/blueflag/blueflagvenv;#python的位置(虚拟环境下)
            uwsgi_param UWSGI_CHDIR  /root/flask/blueflag;#项目根目录
            uwsgi_param UWSGI_SCRIPT manager:app;
        }

⑨ 启动nginx与uwgi

启动Nginx

[root@instance-mtfsf05r ~]# nginx

到项目根目录blueflag(这是我的目录)下启动uWSGI,注意要激活Python虚拟环境中,这里在虚拟环境中安装了uwsgi

[root@instance-mtfsf05r blueflag]# cd /root/flask/blueflag/
[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate
(blueflagvenv) [root@instance-mtfsf05r blueflag]# uwsgi uwsgiconf.ini

通过服务器IP地址访问你的项目,正常访问,则部署上线成功


在这里插入图片描述

你可能感兴趣的:(软件安装与项目部署)