菜鸟入坑:Centos配置nginx、node和mysql(阿里云ECS服务器)

购买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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342