历史归档

Nginx+Mysql+PM2+NODE+GIT+HTTPS开发日记

本文目录
  1. 1. MySql安装
    1. 1.0.1. 下载 mysql 源安装包
    2. 1.0.2. 安装 mysql 源
    3. 1.0.3. 检查 yum 源是否安装成功
    4. 1.0.4. 开始安装
    5. 1.0.5. 启动
    6. 1.0.6. 修改 root 默认密码
    7. 1.0.7. 添加远程登录用户
    8. 1.0.8. 配置默认编码为 utf8
    9. 1.0.9. 重启 MySQL 服务,使配置生效
    10. 1.0.10. 开启端口
  • 2. 安装 Nginx
    1. 2.0.1. 相关补充
    2. 2.0.2. 防火墙指令
  • 3. ssh免登陆
    1. 3.0.1. 生成密钥对
    2. 3.0.2. 将公钥拷贝到目标主机
  • 4. pm2部署node应用到服务器
    1. 4.0.1. 三个概念
    2. 4.0.2. 服务器端(Server)
    3. 4.0.3. 在Github上添加Deploy Keys
  • 5. pm2部署
  • MySql安装

    下载 mysql 源安装包

    下载到本地

    $ curl -LO http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    安装 mysql 源

    本地安装源

    $ sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm

    检查 yum 源是否安装成功

    $ sudo yum repolist enabled | grep "mysql.*-community.*"
    mysql-connectors-community           MySQL Connectors Community              21
    mysql-tools-community                MySQL Tools Community                   38
    mysql57-community                    MySQL 5.7 Community Server             130

    开始安装

    $ sudo yum install mysql-community-server

    启动

    • 安装服务
      $ sudo systemctl enable mysqld
    • 启动服务
      $ sudo systemctl start mysqld
    • 查看服务状态
      $ sudo systemctl status mysqld

    修改 root 默认密码

    MySQL 5.7 启动后,在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码。通过下面的方式找到 root 默认密码,然后登录 mysql 进行修改:

    $ grep 'temporary password' /var/log/mysqld.log
    [Note] A temporary password is generated for root@localhost: **********

    登录 MySQL 并修改密码

    $ mysql -u root -p
    Enter password: 
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

    添加远程登录用户

    MySQL 默认只允许 root 帐户在本地登录,如果要在其它机器上连接 MySQL,必须修改 root 允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,本例添加一个新的帐户:

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'secret' WITH GRANT OPTION;

    配置默认编码为 utf8

    MySQL 默认为 latin1, 一般修改为 UTF-8

    $ vi /etc/my.cnf
    [mysqld]
    
    // 在myslqd下添加如下键值对
    
    character_set_server=utf8
    init_connect='SET NAMES utf8'

    重启 MySQL 服务,使配置生效

    $ sudo systemctl restart mysqld

    开启端口

    还要检查一下防火墙, 检查一下腾讯云的安全组

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

    安装 Nginx

    使用 yum 命令来安装 Nginx

    sudo yum install -y nginx

    安装完成的 Nginx 并不会立刻启动,需要我们手动执行命令来开启它:

    sudo systemctl start nginx.service

    还可以输入以下命令,让 Nginx 可以随系统自动启动:

    sudo systemctl enable nginx

    相关补充

    # 开启 Nginx
    service nginx start
    # 停止 Nginx
    service nginx stop
    # 重启 Nginx
    service nginx restart
    # 查看 Nginx 状态
    service nginx status

    Nginx 的默认站点根目录为

    /usr/share/nginx/html/

    默认站点配置在

    /etc/nginx/conf.d/default.conf

    Nginx 主配置如下

    /etc/nginx/nginx.conf

    防火墙指令

    systemctl start firewalld.service  #启动firewall
    systemctl stop firewalld.service  #停止firewall
    systemctl disable firewalld.service  #禁止firewall开机启动,enable
    firewall-cmd --state  #防火墙状态
    
    firewall-cmd --permanent --zone=public --add-port=80/tcp  #http协议基于TCP传输协议,放行80端口
    firewall-cmd --list-all  #查看防火墙规则
    firewall-cmd --query-service nginx #查看服务启动的状态
    
    firewall-cmd --add-service=ftp --permanent  #永久开放ftp服务
    firewall-cmd --remove-service=ftp --permanent  #永久关闭ftp服务
    firewall-cmd --get-service  #查看服务名称   

    ssh免登陆

    生成密钥对

    ssh-keygen -t rsa

    将公钥拷贝到目标主机

    用ssh登录到目标主机,然后cd /.ssh目录,如果目录不存在,那么要自己创建mkdir -p ~/.ssh。你今后要用哪个帐户登录主机,就在哪个帐户的home目录下操作,如果要免登陆root,就要去/root下操作。使用比较好,不用多想了。

    有了.ssh目录后,进去,然后把id_rsa.pub传过去,可以用scp命令,这里要做的一个主要操作,就是将id_rsa.pub,的文件内容,写到一个叫authorized_keys的文件中去,如果目标主机的相应用户名下已经有了.ssh目录和authorized_keys文件,那你操作要小心一点,可能别人也做过免登陆的设置,这个时候你要小心不要把别人的设置给覆盖了。如果没有的话,就创建文件touch ~/.ssh/authorized_keys,然后执行cat id_rsa.pub >> authorized_keys,将你的公钥写入到authorized_keys中,公钥文件.pub里面只有一行信息,上面的命令相当于把那一行信息追加到authorized_keys文件最后一行。

    如果.ssh目录是你主机刚刚创建的,那么可能还需要改变一下这个目录的权限,将权限放低,chmod -R 0600 ~/.ssh,到此,所有设置就算做完了,你可以退出登录,在自己的主机上试一下了,现在再敲入ssh命令后,不用密码就可以登录主机了。

    pm2部署node应用到服务器

    三个概念

    • Git服务器:用来保存你代码的仓库,比如:Github。也可以是你自己搭建的Git服务器。为了统一,后面全部都叫Github。
    • 目标服务器:就是你要将你的项目部署到的那个服务器,以下统一都叫服务器(Server)。
    • 本地环境:就是你开发用的PC,就叫它Local吧。

    服务器端(Server)

    服务端和本地需要安装node.js、pm2、git

    # 更新 yum
    $ yum update -y
    
    # 1. 安装node.js
    $ yum install nodejs -y
    
    # 2. 安装git
    $ yum install git -y
    
    # 3. 安装pm2
    $ npm install -g pm2

    在Github上添加Deploy Keys

    在服务器(Server)上执行:

    # 生成ssh key,一路回车即可
    $ ssh-keygen -t rsa
    
    # 查看公钥内容
    $ cat ~/.ssh/id_rsa.pub
    # 然后复制整个内容,并添加到Github上对应的项目仓库Settings下的Deploy keys中。

    pm2部署

    在项目的根目录下,执行:

    $ pm2 ecosystem

    接下来就看官方文档更好

    http://pm2.keymetrics.io/docs/usage/deployment/