0%

centOS环境搭建

centOS环境搭建

最近,买了一个腾讯云的服务器,上传了自己的博客,过程中也是很多辛酸泪的!

mark&share

一,构建node环境

  • 远程登录
ssh root@公网ip   #ssh root@101.34.143.80
  1. 安装node.js

    wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
  2. 解压

    tar xvf node-v10.16.3-linux-x64.tar.xz
  3. 建立软连接

    ln -s /root/node-v10.16.3-linux-x64/bin/node /usr/local/bin/node
    ln -s /root/node-v10.16.3-linux-x64/bin/npm /usr/local/bin/npm
    • 这里除了软连接,可以配置对应的path
    1. 在.bash_profile中
    vim ~/.bash_profile      // 在PATH后面追加全局路径就好了,这样所有的nodejs包cli都可以全局使用
    source ~/.bash_profile
  1. 在/etc/profile中

    vim /etc/profile        // 在PATH后面追加全局路径就好了,这样所有的nodejs包cli都可以全局使用
    source /etc/profile
  2. 临时会话型

    PATH=$PATH:/usr/local/mysql/bin
    alias mysql=/usr/local/mysql/bin/mysql
  3. 校验/查看版本

    node -v
    npm -v
  4. node安装多个版本

    1. 安装git

      yum install -y git
    2. 下载nvm源码

      git clone git://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
    3. 配置nvm环境变量

      echo ". ~/.nvm/nvm.sh" >> /etc/profile
    4. 读取环境变量

      source /etc/profile
    5. 查看node版本列表

      nvm list-remote
    6. 安装指令

      nvm install v6.9.5
      nvm install v10.16.3
    7. 查看已安装node版本

      nvm ls
    8. 切换版本

      nvm use v6.9.5
  5. 开一个node服务试一下

    const http = require('http');
    const hostname = '0.0.0.0';
    const port = 7500;
    const server = http.createServer((req, res) => { 
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World\n');
    }); 
    server.listen(port, hostname, () => { 
    console.log(`Server running at http://${hostname}:${port}/`);
    });

    公网ip:7500就可以看到Hello World

二,安装和使用nginx

  1. 安装gcc

    gcc -v
    yum -y install gcc
  2. Pcre,pcre-devel安装

    pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式

    yum install -y pcre pcre-devel
  3. zlib安装

    提供很多种压缩和解压方式,使用zlib对http包内容进行gzip

    yum install -y zlib zlib-devel
  4. openssl安装

    openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。。。。。。

    yum install -y openssl openssl-devel
  5. 下载/解压nginx安装包

    wget http://nginx.org/download/nginx-1.9.9.tar.gz  
    tar -zxvf  nginx-1.9.9.tar.gz                       #/usr/local下
  6. 进入/nginx-1.9.9/下面

    ./configure
     
    make
     
    make install
  7. 配置nginx.conf文件

    /usr/local/nginx/conf
    vi nginx.conf
  8. 启动nginx

    /usr/local/nginx/sbin
    ./nginx
    ps -ef | grep nginx     #查看nginx是否启动成功
    • 进程占用端口,杀死进程
    lsof -i:80
    kill -9 PID
  • 附带常用代理配置
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   /Users/minyue/Desktop/minyue/reactBlog/build/;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # 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;
    #    }
    #}
    include servers/*;
}

三,mysql安装

  1. 下载rpm源

    wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
  2. 安装

    yum localinstall mysql80-community-release-el7-1.noarch.rpm
  3. 检查是否安装成功

    yum repolist enabled | grep "mysql.*-community.*"
  4. 安装mysql

    yum install mysql-community-server

    过程中很曲折,辛酸泪

    • 报错Error: Unable to find a match: mysql-community-server

    解决办法
    先执行 yum module disable mysql,然后再执行yum -y install mysql-community-server
  5. 启动mysql服务

    systemctl start mysqld
    或者
    service mysqld start
  6. 查看mysql状态

    systemctl status mysqld
    或者
    service mysqld status
  7. 设置开机启动

    systemctl enable mysqld
    systemctl daemon-reload
  8. 修改登录密码

    //mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
    grep 'temporary password' /var/log/mysqld.log
    mysql -u root -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Minyue@666';
    //默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误
  9. 添加远程登录用户

    默认只允许root账户在本地登录,如果要在管理服务器上的mysql,修改root的远程访问权限

    use mysql;
    select host, user from user;  #可以看到root默认权限是localhost
    #授权 root 用户的所有权限并设置远程访问
    GRANT ALL ON *.* TO 'root'@'%';

    这里我是遇到了报错,ERROR 1410 (42000): You are not allowed to create a user with GRANT

    update user set host='%' where user ='root';
    #生效修改
    flush privileges;
    • 连接mysql

      mysql -u [username] -p
      mysql -h [host] -u [username] -p [password]
    • 如果要使用sqlyog链接

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  10. 编码方式

    mysql8.0默认编码方式为utf8mb4,因此使用时不需要修改

    #查看编码方式
    SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

    一般修改可以直接找到对应 etc/mysql/my.cnf位置

    [client]
    
    default-character-set = utf8mb4
    
    [mysql]
    
    default-character-set = utf8mb4
    
    [mysqld]
    
    character-set-client-handshake = FALSE
    
    character-set-server = utf8mb4
    
    collation-server = utf8mb4_unicode_ci
    
    init_connect='SET NAMES utf8mb4'
    character_set_client  (客户端来源数据使用的字符集)
    character_set_connection     (连接层字符集)
    character_set_database   (当前选中数据库的默认字符集)
    character_set_results (查询结果字符集)
    character_set_server (默认的内部操作字符集)
  11. 注意要在安全组中添加3306

  12. 卸载mysql

    yum remove mysql-community-server
    rpm -qa|grep mysql
    yum remove 名称
    rpm -qa | grep -i mysql
    rpm -e 名称
  13. mysql导入导出sql文件

    1.导出整个数据库
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u root -p test > ~/blog.sql
    输入密码

    注意:一定要先touch blog.sql

    注意:mysqldump指令可以临时

    alias mysqldump=/usr/local/mysql/bin/mysqldump
    2.导入数据库
    常用source 命令
    进入mysql数据库控制台,如
    mysql -u root -p
    mysql>use 数据库
    然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
    mysql>source ~/blog.sql