美文网首页
Day5 部署项目到CentOS

Day5 部署项目到CentOS

作者: ququququ | 来源:发表于2019-03-16 17:13 被阅读0次

    一、MySQL安装和配置

    1. 下载MySQL源安装包: wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

    2. 安装MySQL源: yum localinstall mysql57-community-release-el7-8.noarch.rpm

    3. 安装MySQL: mysql:yum install mysql-community-server

    4. 设置开启启动MySQL服务: systemctl enable mysqld

    5. 启动/重启MySQL服务:systemctl restart mysqld

    6. 查看MySQL初始密码:grep 'A temporary password' /var/log/mysqld.log

    7. 更改MySQL密码:mysqladmin -u root -p'旧密码' password '新密码'
      这里更改密码出了问题,更改失败,这是因为密码太过简单的原因。有两个接解决方法:

    方法一:把密码设置复杂点(这是最直接的方法)

    方法二:关闭mysql密码强度验证(validate_password)

    编辑配置文件:vim /etc/my.cnf, 增加这么一行validate_password=off

    编辑后重启mysql服务:systemctl restart mysqld

    1. 设置mysql能够远程访问:
      a. 登录进MySQL: mysql -uroot -p密码
      b. 增加一个用户给予访问权限: grant all privileges on *.* to 'root'@'ip地址' identified by '密码' with grant option;
      c. 刷新权限:flush privileges;­

    二、安装和配置MariaDB

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。

    1、安装命令
    yum -y install mariadb mariadb-server
    
    2、安装完成 MariaDB,首先启动MariaDB
    sysemtctl start mariadb
    
    3、设置开机
    systmectl enable mariadb
    
    4、设置密码

    1)输入命令

    mysql_secure_installation
    

    2)过程

    Enter current password for root:<–初次运行直接回车
    设置密码
    Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
    New password: <– 设置root用户的密码
    Re-enter new password: <– 再输入一次你设置的密码
    其他配置
    Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
    Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
    Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
    Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
    初始化MariaDB完成,接下来测试登录
    mysql -u root -p
    

    在云服务器上安装好了数据库远程是不能访问的,需要开启远程访问。

    首先要在云服务器上开启3306端口。

    # 1.进入数据库
    mysql -u root -p
    # 2.输入密码
    # 3.使用数据库
    use mysql;
    # 4.创建账号
    create user 'root'@'%' identified by '你的密码';
    # 针对ip create user 'root'@'针对的IP地址' identified by '你的密码';
    # 5.授权
    grant all privileges on *.* to 'root'@'%' identifid by '你的密码';
    # 6.刷新权限
    flush privileges;
    

    三、安装python3

    1、方法一
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# yum install gcc
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# gunzip Python-3.6.5.tgz
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# tar -xvf Python-3.6.5.tar
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# cd Python-3.6.5
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# ./configure --prefix=/usr/local/python36 --enable-optimizations
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# make && make install
    ... 配置环境变量 ...
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# python3 --version
    Python 3.6.5
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# python3 -m pip install -U pip
    
    2、方法二

    在centos中,系统默认只提供python2.7的版本,但是项目我们使用的python3.6的版本。所有我们自己安装python3

    首先安装依赖包

    安装Python3.6所需要的依赖包:

    yum -y groupinstall "Development tools"
    
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
    

    安装Python3.7还需额外安装依赖包:

    yum install libffi-devel -y
    

    然后根据自己需求下载不同版本的Python3,我下载的是Python3.6.2

    wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
    # 然后解压压缩包,进入该目录,安装Python3
    tar -xvJf  Python-3.6.2.tar.xz
    cd Python-3.6.2
    ./configure --prefix=/usr/local/python3
    make && make install
    

    最后创建软连接

    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    

    三、安装环境

    1、安装virtualenv
    yun install python -virtualenv
    
    2、创建虚拟环境
    # 进入需要安装的环境的文件夹里,创建虚拟环境,需要用-p指定python3(绝对路径)
    # 因为Linux系统自带python2,blogenv是虚拟环境名称可以自己取名
    virtualenv --no-site-packages env -p /usr/local/python3/bin/python3 blogenv
    # 激活虚拟环境
    source /app/env/blogenv/bin/activate
    # 退出环境
    deactivate
    
    3、安装环境需要的包

    注意:安装包的时候需要使用绝对路径避免使用系统自带的,无需激活环境。

    /app/env/blogenv/bin/pip install -r /app/wordspace/blog/re_install.txt
    # 其中re_install.txt文件中记录的是需要安装包的名称以及对应的版本
    

    re_install.txt文件中写你需要安装包的文件,例如

    flask
    flask-script
    pymysql
    redis
    flask-blueprint
    flask-session
    flask-sqlalchemy
    

    四、安装redis

    输入命令:yum install redis

    启动redis: redis -server

    五、安装nginx

    1、添加nginx存储库:yum insatll epel-release

    2、输入命令:yum install nginx

    3、运行nginx:systemclt start nginx

    nginx的运行命令:

     systemctl status nginx 查看nginx的状态
     systemctl start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动
    

    六、安装uwsgi

    1、使用虚拟环境的匹配去安装
    /app/env/blogenv/bin/pip3 install uwsgi
    
    2、配置项目代码,配置项目nginx,配置uwsgi.ini等

    在项目中新建一个conf文件夹和env同级

    备注:本案例的配置文件,都习惯将每一个项目的配置文件,

    日志文件,虚拟环境放在一起,这样开发方便,运维也方便维护

    nginx.conf文件中配置如下:

    server {
         listen       80;
         server_name 39.104.176.9;
    
         access_log /home/logs/access.log;
         error_log /home/logs/error.log;
    
         location / {
             include uwsgi_params;
             uwsgi_pass 127.0.0.1:8890;
             
             uwsgi_param UWSGI_CHDIR /app/wordsapce/blog2;
             uwsgi_param UWSGI_SCRIPT manage:app;
         }
         location /static/ {
             alias /app/wordspace/blog2/static/;
         }
    
     }
    

    说明:

    1. listen 80是端口;
    2. server_name 有域名写域名,没有域名写阿里云公网IP;
    3. uwsgi_pass设置的8890端口是nginx和uwsgi通信的端口,无需在安全组开放公网端口
    4. nginx配置文件的位置 /etc/nginx/nginx.conf 可以设置监听端口,默认是80。
    5. uwsgi_param UWSGI_CHDIR /app/wordsapce/blog2;
    6. uwsgi_param UWSGI_SCRIPT manage:app;表示启动的是

    bloguwsgi.ini文件中配置如下:

    [uwsgi]
    master = true
    socket = 127.0.0.1:8890
    chdir = /home/src/aj
    pythonpath = /home/env/ajenv/bin/python3
    callable = app
    logto = /home/logs/bloguwsgi.log
    

    说明:

    callable = appapp是Flask对象

    /home/logs/bloguwsgi.log日志信息位置

    3、配置nginx文件

    /etc/nginx/nginx.conf 文件的37行增加此行命令include /app/conf/*.conf;

    4、启动

    /app/env/blogenv/bin/uwsgi --ini /app/conf/bloguwsgi.ini

    5、查看日志

    tail -f bloguwsgi.log

    五、常见问题

    注意:用绝对路径,项目使用到redis的要先启动redis。

    # -p指定端口, -h 表示任何计算机都可以访问
    /app/env/blogenv/bin/python3 /app/wordspace/blog/manage.py runserver -p 80 -h 0.0.0.0
    

    1、Address already in use

    端口已被使用,输入ps aux | grep 80查看被占用的端口 kill -9 进程号结束进程。

    或者输入netstat -lntp查看网络情况也可以查看端口。

    2、127.0.0.1:6379. Connection refused.

    没有安装redis或者没有启动redis

    相关文章

      网友评论

          本文标题:Day5 部署项目到CentOS

          本文链接:https://www.haomeiwen.com/subject/nqvsmqtx.html