美文网首页
菜鸟入坑:Centos配置nginx、node和mysql(阿里

菜鸟入坑:Centos配置nginx、node和mysql(阿里

作者: royluck | 来源:发表于2019-10-16 17:59 被阅读0次

    购买ecs服务器,我选择的是centos镜像,硬件配置是单核2g内存1M宽带;
    购买成功之后,进入控制台确认当前镜像是运行中的,然后记住公ip地址,在客户端cmd命令窗口执行:

    // 首次连接会有提示,输入yes,然后再次输入密码就行了
    ssh root@ip地址(公)
    

    安装ngixn:

    阿里云ECS服务器部署Node.js项目全过程详解
    nginx的部署(补充) by royluck

    cd /usr/local
    yum -y install pcre pcre-devel
    yum install -y zlib-devel
    

    下载的安装包,统一放在/usr/local/src目录下

    cd /usr/local/src 
    wget http://nginx.org/download/nginx-1.13.3.tar.gz
    // 解压缩
    tar -xvzf nginx-1.13.3.tar.gz
    

    配置nginx:

    // 下载解压openssl
    wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
    tar -xvzf openssl-1.0.2l.tar.gz 
    // cd 进入nginx解压包里,执行之前安装的pcre-devel与openssl-devel解决依赖问题
    cd nginx-1.13.3
    yum -y install pcre-devel openssl openssl-devel
    // 再执行配置脚本来进行编译预处理
    ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.2l
    // 编译安装
    make && make install
    

    ssl证书:(注:这里的ssl没配成功)

    // 使用 openssl 生成证书
    openssl req -new -x509 -nodes -out server.crt -keyout server.key
    //  移动证书到nginx文件夹
    mv server.crt /usr/local/nginx
    mv server.key /usr/local/nginx
    

    修改 nginx 配置文件:

    // 这里之前按照别人的教程,一顿操作,特别是vi操作不会,然后就去阿里云重置镜像了,
    // 所以在修改一些重要配置文件时候,最好备份一下;
    vi /usr/local/nginx/nginx.conf
    // 这里我没有修改配置,原先访问不了,以为是这里的serve_name 需要改为公ip地址或者域名才行,
    // 结果是我用阿里云的私网ip访问,应该用公网ip访问才对的 (欲哭无泪lol)
    server {                                                                      
            listen       80;                                                          
            server_name  localhost; 
            ...
    }
    
    

    启动nginx:(注:这里后面需要做优化:系统开机自动启动nginx)

    /usr/local/nginx/sbin/nginx
    

    在浏览器输入ip地址,如果能进入nginx欢迎页,则配置成功


    image.png
    安装node相关依赖:

    安装升级gcc
    安装node,需要gcc编译软件
    升级gcc
    gcc编译出错---make[5]: *** [s-attrtab] Killed (注:这里的开启swap,菜鸟还是了解清楚了再配,特别是修改配置文件,添加到开机启动项:vim /etc/fstab,我把磁盘改到自动挂载 ,ssh登录不了,然后我把swap删了,照着阿里客服的指引重新把/etc/fstab 给改回去了 )

    sudo yum install gcc gcc-c++
    // 但是默认安装的gcc版本是最老的4.0,高版本的node要求高版本的gcc支持,
    // 因此需要升级gcc (网上有yum update gcc gcc-c++的方法更新gcc版本,没试过,不知道可不可以,有些文章又说不可以)
    cd /usr/local/src
    wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2
    tar -jxvf gcc-6.1.0.tar.bz2
    // 参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
    cd gcc-6.1.0
    ./contrib/download_prerequisites
    // 建立一个目录供编译出的文件存放
    mkdir gcc-build-6.1.0
    cd gcc-build-6.1.0
    // 生成Makefile文件
    ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
    // 编译
    // 配置低的就不要开启线程了 -j4 
    // 最早执行操作发现编译失败
    // 然后按照网上教程,开了swap线程,安装成功之后,重启镜像,
    // 发现ssh进入不了系统,后面开了工单,在客服的帮助下才解决的
    // 所以配置低单核,还是老实make编译
    make -j4 
    // 查看安装
    // ls /usr/local/bin | grep gcc
    // 重启,然后查看gcc版本 (注意这里不要指令重启镜像,要在阿里云控制台重启)
    // 输出gcc version 6.1.0 (GCC) 证明更新成功
    gcc -v 
    // 升级gcc,生成的动态库没有替换老版本gcc的动态库
    // 运行以下命令检查动态库:
    strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    // 执行以下命令,查找编译gcc时生成的最新动态库:
    find / -name "libstdc++.so*"
    // 将上面的最新动态库libstdc++.so.6.0.22复制到/usr/lib64目录下
    cd /usr/lib64
    cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./
    //  删除原来软连接:
    rm -rf libstdc++.so.6
    // 将默认库的软连接指向最新动态库:
    ln -s libstdc++.so.6.0.22 libstdc++.so.6
    // 默认动态库升级完成。重新运行以下命令检查动态库:
    // 可以看到 输出有"GLIBCXX_3.4.21" 了
    strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    
    安装node

    部署Node.js项目(CentOS)
    node镜像地址
    最早我是照着这个教程(阿里云ECS服务器部署Node.js项目全过程详解)通过编译安装的方法安装node,但是在升级了gcc之后,通过长时间地等待,最后还是安装失败,所以就放弃了。这是这两种安装方法(直接部署和安装部署)的区别介绍CentOS安装NodeJS,里面说的:"但是如果遇到nodejs插件全局安装时,需要自行去创建关联...",则在node全局安装好安装包之后,需要再次通过软连接去配置,参考Linux 下安装pm2后找不到pm2命令解决方法

    cd /usr/local/src
    // 下载node.js 
    // node镜像地址:https://npm.taobao.org/mirrors/node
    wget https://npm.taobao.org/mirrors/node/v10.16.3/node-v10.16.3-linux-x64.tar.xz
    tar -xvf  node-v10.16.3-linux-x64.tar.xz
    cd  node-v10.16.3-linux-x64/bin && ls
    // 如果有版本出来,则证明安装成功
    ./node -v 
    // 打印当前地址,在下面进行软链接需要用到
    // 打印的内容:/usr/local/src/node-v10.16.3-linux-x64
    pwd 
    // 打印环境变量
    // 这里打印出来的变量,也是为了后面进行软链接需要用到
    // 打印的内容:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    echo $PATH
    // 进行软链接
    // 需要确定环境变量有这个变量:/usr/local/bin/node,有些人环境没有,所以需要变通下
    ln -s /usr/local/src/node-v10.16.3-linux-x64/bin/node /usr/local/bin/node
    ln -s  /usr/local/src/node-v10.16.3-linux-x64/bin/npm /usr/local/bin/npm
    

    回到任意目录文件,执行node -v,如果出来版本号,则表示node部署成功
    安装好node之后,需要再安装PM2插件,执行
    npm install -g pm2
    PM2的介绍和作用见:PM2 部署 nodejs 项目


    安装mysql

    阿里云你教程:手动部署MySQL数据库(Linux)
    按照上述配置好之后,还需要再阿里云控制器,将端口3306加入安全组添加安全组规则

    image.png
    修改Mysql root账号密码:
    Windows下Mysql5.7忘记root密码的解决方法
    update mysql.user set authentication_string=password('新密码') where user='root'; 
    flush privileges;
    

    相关文章

      网友评论

          本文标题:菜鸟入坑:Centos配置nginx、node和mysql(阿里

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