暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CentOS7 实训四 发布基于Python+MySql的项目

云生处 2021-06-21
1445

Python开发环境安装与配置

一、准备工作:

    1. 查看是否已经安装Python

        CentOS 7 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5

            python -V

    2. 查看Python可执行文件的位置

        which python

    3. 进入到 usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看

        cd usr/bin/

        ll python*


二、开始安装:

    1. 下载安装包

        https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz

    wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
    复制

        2. 解压文件

      tar -zxvf Python-3.9.5.tgz
      复制

          3. 安装依赖包

        yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
        复制

            4. 进入Python文件夹目录       

          cd Python-3.9.5
          复制

              5.初始配置

            ./configure --prefix=/usr/local/python3
            复制

                6. 安装

              make && make install
              复制

                  7. 配置软连接

                ln -s usr/local/python3/bin/python3.9 usr/bin/python3
                ln -s usr/local/python3/bin/pip3 usr/bin/pip3
                复制

                    8. 验证       

                  python3 -V
                  pip3 -V
                  复制

                          升级pip(可选)

                    pip3 install --upgrade pip
                    复制



                    MySql的安装与配置

                    一、准备工作:

                    1. 下载安装包

                      https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
                      复制

                      2. 检查系统是否安装过mysql

                          检查系统中有无安装过mysql

                        rpm -qa|grep mysql
                        复制

                            查询所有mysql 对应的文件夹,全部删除

                          whereis mysql
                          find -name mysql
                          复制

                          3. 卸载CentOS7系统自带mariadb

                              卸载系统自带的Mariadb

                            rpm -qa |grep mariadb |xargs yum remove -y
                            复制

                                删除etc目录下的my.cnf ,一定要删掉,等下再重新建

                              rm etc/my.cnf
                              复制

                              二、安装与配置

                              1. 上传安装包到/usr/local,并解压

                                tar -axvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
                                复制

                                2. 安装MySql的以下4个组件   

                                  rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
                                  rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
                                  rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
                                  rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm
                                  复制

                                      安装 mysql-community-server 出错:

                                    error: Failed dependencies:
                                      /usr/bin/perl is needed by mysql-community-server-5.7.34-1.el7.x86_64
                                    net-tools is needed by mysql-community-server-5.7.34-1.el7.x86_64
                                      perl(Getopt::Long) is needed by mysql-community-server-5.7.34-1.el7.x86_64
                                      perl(strict) is needed by mysql-community-server-5.7.34-1.el7.x86_64
                                    复制


                                      yum install -y net-tools
                                      yum install perl -y
                                      复制

                                      3. 修改MySql配置(可选)

                                          创建数据库存放的文件夹,并修改配置文件

                                        mkdir data
                                        mkdir data/mysql


                                        vi etc/my.cnf
                                        #此处只修改数据库路径
                                           datadir=/data/mysql
                                        复制

                                            完成对 mysql 数据库的初始化和相关配置       

                                          chown -R mysql:mysql data
                                          chmod -R 777 data
                                          复制

                                          4. 初始化数据库

                                            mysqld --initialize   (生成一个临时密码)

                                            mysqld --initialize-insecure (空密码)
                                            复制

                                                用以下命令查看数据库的临时密码

                                              cat /var/log/mysqld.log | grep password
                                              复制


                                              5. 启动mysql服务

                                                systemctl start mysqld
                                                复制

                                                    如果出错([ERROR] InnoDB: Operating system error number 13 in a file operation.),可以试试关闭selinux,并重启centos

                                                  vi /etc/sysconfig/selinux
                                                  SELINUX=disabled
                                                  复制

                                                      如果出错([ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable),重新设置data目录权限.

                                                          [ERROR] InnoDB: Plugin initialization aborted with error Generic error

                                                          [ERROR] Plugin 'InnoDB' init function returned error.

                                                    chmod -R 777 /data
                                                    复制

                                                        设置MySql开机自启:

                                                      systemctl enable mysqld
                                                      复制

                                                          停止MySql:

                                                        systemctl stop mysqld
                                                        复制

                                                           重启MySql:

                                                          systemctl restart mysqld
                                                          复制

                                                             查看MySql服务状态:

                                                            systemctl status mysqld
                                                            复制

                                                            6. 测试MySql安装是否成功

                                                              mysql -u root -p
                                                              复制

                                                                  退出mysql:

                                                                mysql>exit
                                                                复制

                                                                7. 修改'root'@'localhost'密码

                                                                  mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'f123456';
                                                                  复制

                                                                  8. MySql远程访问授权配置

                                                                    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'f123456' WITH GRANT OPTION;
                                                                    mysql>flush privileges;
                                                                    mysql>exit
                                                                    复制

                                                                    9. 防火墙配置3306端口允许外部访问

                                                                            查询防火墙状态:

                                                                      systemctl status firewalld
                                                                      复制

                                                                              开启防火墙mysql 3306端口的外部访问:

                                                                        firewall-cmd --zone=public --add-port=3306/tcp --permanent
                                                                        firewall-cmd --reload


                                                                        firewall-cmd --list-all ##查看防火墙规则
                                                                        复制

                                                                        10. 降低mysql密码安全级别

                                                                            如果出现以下错误:

                                                                            ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

                                                                          mysql>set global validate_password_policy=0;
                                                                          mysql>set global validate_password_length=6;
                                                                          复制

                                                                              如果不能修改(MySQL ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'),说明未开启密码校验插件。

                                                                            mysql>SHOW VARIABLES LIKE 'validate_password%';
                                                                            mysql>select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
                                                                            mysql>install plugin validate_password soname 'validate_password.so';
                                                                            复制




                                                                            项目发布

                                                                            一、 导入mysql数据(项目代码见下面的附件)

                                                                                导入数据库

                                                                                    上传bookinfo.sql至/data文件夹,并执行下面语句

                                                                              mysql>source /data/bookinfo.sql;
                                                                              复制

                                                                                      注:如果出现:Failed to open file '/data/bookinfo.sql;', error: 2,提升文件夹权限即可。


                                                                                  测试:

                                                                                mysql> use bookinfo;
                                                                                mysql> select count(1) from books;
                                                                                复制

                                                                                二、发布项目

                                                                                1. 安装项目依赖的库

                                                                                  pip3 install flask
                                                                                  pip3 install pymysql
                                                                                  pip3 install pyecharts
                                                                                  pip3 install requests
                                                                                  复制

                                                                                  2. 上传webapp至/usr/local/webapp下

                                                                                  3. 调试app

                                                                                      进入网站目录,并执行app.py

                                                                                    cd /usr/local/webapp
                                                                                    python3 app.py
                                                                                    复制

                                                                                    4. 测试

                                                                                        本地测试

                                                                                      curl http://127.0.0.1:8088
                                                                                      复制

                                                                                          在客户端浏览器中访问http://192.168.200.100:8088,注意防火墙开通8088端口。

                                                                                        firewall-cmd --zone=public --add-port=8088/tcp --permanent
                                                                                        firewall-cmd --reload
                                                                                        复制

                                                                                        5. 后台运行

                                                                                          nohup python3 -u app.py > myweb.log 2>&1 &
                                                                                          复制

                                                                                          参数说明:

                                                                                          -u  代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟
                                                                                          > myweb.log  将输出日志保存到这个log中
                                                                                          2>1  2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出; 
                                                                                          2>&1  换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
                                                                                          &    最后一个& ,代表该命令在后台执行


                                                                                          后台进程管理

                                                                                              查看nohub命令下运行的所有后台进程:

                                                                                                  jobs

                                                                                              查看后台运行的所有进程:

                                                                                                  ps -aux

                                                                                              查看后台运行的所有python 进程:

                                                                                                  ps -aux |grep python3

                                                                                                  或者

                                                                                                  ps -ef | grep python3

                                                                                              删除进程(-9  是强制删除)

                                                                                                  kill -9  [进程id]



                                                                                          附件:项目代码

                                                                                          接:https://pan.baidu.com/s/12F75jLFpnsLtRWPBHdYeJg

                                                                                          提取码:8yi7



                                                                                          文章转载自云生处,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                                          评论