阿里云lNMN(linux + nginx + mysql + node.js)环境搭建
购买服务器登录服务器
略
登录服务器后安装开发包和库文件
输入命令
cat /etc/redhat-release
,可查看Linux系统版本执行命令:
chkconfig iptables off
,关掉防火墙,避免实验中出现服务器无法访问的情况。在真实的生产环境中,请根据实际需求,配置相应的防火墙规则。执行如下命令,安装LNMN环境所需的开发包和库文件,例如:openssl等。
1
yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
安装过程需要等待1分钟左右。安装完成后,页面显示“Complete!”。
安装nginx
- 输入命令
yum -y install nginx
,通过yum的方式安装nginx。 - 看到Complete!字样表示安装完成。
- 使用命令
vi /etc/nginx/conf.d/default.conf
,进入nginx配置文件“default.conf”的编辑页面。- 在Nginx配置文件的编辑页面中,默认监听使用ipv4和ipv6。
- 使用键盘方向键将光标移动到“listen [::]:80 default_server;”位置,并输入dd命令,删除此行,也就是删除其中监听为ipv6的配置
listen [::]80 default_server
。因为,目前阿里云使用的是ipv4,若使用ipv6,运行时会报错。完成后,输入“:wq”,保存退出编辑页面。
- 输入
nginx -t
命令检查配置是否正确,出现OK
字样配置正确,输入命令service nginx start
,启动nginx服务器。若页面显示“Starting nignx [OK]”,证明Nginx服务器已启动。若报错,请检查如上Nginx配置是否正确。 - 打开浏览器,并在地址栏中,输入云中沙箱提供的ECS实例“公网地址”。若页面显示“Welcome to Nginx on EPEL!”,则证明Nginx服务器已部署且启动成功。
- 执行命令chkconfig –levels 235 nginx on,设置2、3、5级别开机启动nginx。通过设置如上开机启动级别,在下次启动或者运行ECS服务器的时候,就可以自动运行Nignx服务器。
安装Mysql
- 首先,在安装MySQL之前,执行命令
yum -y install mysql mysql-server mysql-devel
,安装mysql及其组件mysql-server,mysql-devel。 等待几秒钟,页面显示“Complete!”,证明已完成MySQL的安装。 - 输入命令
service mysqld start
,启动mysql数据库。等待几秒钟,页面显示“Starting mysqld [ok]”。证明mysql启动成功。 - 输入命令
mysql
,进入MySQL数据库的命令页面,证明已经成功安装并运行MySQL数据库。ps: 此时mysql是无密码状态,注意设置密码。
- 在mysql的命令行中,输入exit,页面提示“bye”,退出mysql的命令页面。
- 最后,执行命令
chkconfig --levels 235 mysqld on
,设置2、3、5级别开机启动mysql。这样,用户在下次启动ECS服务器时,ECS实例会自动运行mysql数据库,无需用户手动启动。
node.js安装
linux下nvm安装
执行如下命令安装:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
更多详情参考链接
通过nvm指令查看远端node.js版本(当然也可以官网查看),我们可以选近几个稳定的版本安装。
nvm ls-remote
。 如:1
2
3
4
5......
v8.9.0 (LTS: Carbon)
v8.15.1 (Latest LTS: Carbon)
v10.15.3 (Latest LTS: Dubnium)
......其它nvm常用指令
1
2
3nvm ls //查看有那些node.js版本
nvm use [node版本] //选择当前命令行使用的node.js版本
nvm alias default [node版本] //设置命令行默认的node.js版本可能会出现nvm not command, 解决方案详见链接
如上可能解决了,但是退出命令行再次进入再次出现出现
command not found: Node Version Manager install - nvm
, 可以通过如下方法解决:
Check your .bash_profile
, .zshrc
, or .profile
file. You most likely had a problem during the installation.
You should have the following at the end of one of those files.1
[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh # This loads NVM
The . $HOME/.nvm/nvm.sh
is the same as source $HOME/.nvm/nvm.sh
如果还出现上述问题,那就要看看linux,到底先执行的那个类.profile
的配置文件了. 比如安装了zsh。 默认只执行.zshrc
文件。而[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh # This loads NVM
又没加在.zshrc
里.可以在.zshrc
里加上执行其它配置文件的代码source ~/.bashrc
.
安装node.js
通过nvm安装,如执行指令:
nvm install v10.15.3
,nvm install v8.15.1
,nvm install v8.9.0
;执行
nvm ls
查看所有的node.js版本及默认的node.js版本。执行命令
node -v
查看node.js是否安装成功。如显示正常的版本这表示node.js安装成功。
验证环境
到此整个LNMN环境完全安装好了。
写如下一段服务代码
1
2
3
4
5
6
7
8// server.js
var http = require('http');
http.createServer(function(req, res) {
console.log('server starts...'); // 加入此行
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello lnmn');
}).listen(5000);启动服务
node server.js
,打开浏览器输入http://[公网ip]:5000
验证如看到返回“hello lnmn字样”,整个lnmn环境搭建成功。此时可能还是不能访问,原因,我们需要去阿里云服务器管理后台去配置安全组规则,允许通过5000端口访问。 因为我们用的是5000端口,同理需要远程连接服务器数据库也需要允许访问如3306端口。