最近新近买了个阿里云的ECS服务器,想想在上面挂个node来玩玩,刚开始装的是Windows系统,图个方便,直接远程连接把本地下好的node包丢上去无脑安装,ok,除了上传速度,没其他毛病,运行安装一路到底没出现问题,cmd能查看到node版本。接下去就是把本地的项目拖上来运行测试。
node不像apache、tomcat服务器一样安装完毕后,只要把文件(如HTML、CSS、JS等)放到web根目录,然后在浏览器访问就能看到,所以项目实现的简单功能就是根据浏览器的请求返回各种资源(我想实现像其他服务器输入地址、或者像在浏览器输入以盘符开头的文件路径一样,正确的呈现出文件),就像你写好了一个静态页面index.html,然后通过浏览器访问,因为index.html引用了css、js、jpg等等的资源,所以发起一个获取index.html页面的请求,那么在node服务端响应返回index.html的过程中,一遇到其他类型的资源链接,其实也是发起了对该资源的请求,因此通过对请求路径的解析,获取后缀,可以来确定需要返回的资源类型。这里有一个想法,请求有有请求静态资源的,有访问接口的,那么我把静态资源放一个文件夹里,把各种接口放另一个文件夹,就可以区分哪些是返回静态资源,哪些是访问接口了。
有点偏了,回归正传,目的就是通过浏览器正常访问资源。这里说遇到的问题,ECS上的Windows系统上只有个ie浏览器,而且在这个ie上因为增强安全配置的阻挠,访问不了大多数网站。出现这个问题第一个想到的是禁用它,打开控制面板找到服务器管理器(ECS上桌面左下角已经固定了服务器管理器,直接打开就好),在本机伺服器面板可关闭增强安全配置(图盗自百度,因为换系统了),关了后可以正常访问大多数网站了:
接下来当然是通过浏览器访问自家的服务器,然后问题又来了,测试用的当然只能通过ip来访问了,偏偏ie没办法通过ip来访问,搞了很久,没办法只能换成能通过ip来访问的浏览器,就下个chrome吧,一笔带过了过程的艰辛,瞎几把折腾。下吧,反正增强安全设置已关闭,能通过ie下载chrome的。
噩梦才刚刚开始,打开ie,访问chrome,从此时起远程连接就是各种无缘无故卡死、退出、登不上、黑屏、白屏......mmp,ECS服务器是基础的穷人配置,Windows系统图形界面占用了太多资源,已经跑不动其他东西了。要么升级配置,要么换成linux系统轻装上阵。无奈,换系统吧。
这里直接在阿里云管理后台那里选择更换系统,以前Linux的各种操作都还给大学老师了,这里就直接选个Linux镜像开始折腾:
问题1:换成Linux后怎么上去操作?
答:在本地下个ssh(用来远程连接linux,因为Windows自带的远程连接连不了linux。ssh包括两部分,SSH Secure Shell Client用来连接linux,会显示一个终端命令行界面,就跟直接运行linux看到的一样;SSH Secure File Transfer Client也是用来连接linux,但它是用来上下传文件的)。安装完ssh连接登录linux,分别输入主机名Host Name(公网地址),用户名User Name(默认root),端口号Port(默认22),Password(可在阿里云管理后台那里设置)。登录完就可以安装node了,这里下载后需要编译。
安装node:
1、下载最新node版本:
![](/qrcode.jpg)
wget http://nodejs.org/dist/node-latest.tar.gz
2、解压:
tar zxf node-latest.tar.gz
目前为止没出现问题,接下去就是预编译和编译了。
3、预编译:
./configure
出现问题了。
问题2:预编译命令不存在的?什么鬼?
答:哦,要进入到解压出来后的node包里再执行这条命令。我们可以输入命令 ls 来看下解压出来的都是什么东西:
问题3:能执行预编译了,但报了个cxxg++版本警告,版本过旧编译不了?
答:更新版本:
首先列出已安装的软件,我们要找到cxxg++那个软件名,才能根据软件名来更新。
yum list installed
在列表中找到那个名字,更新:
yum -y update <那个名字>
这样更新完再预编译就好了,但是,问题没解决,新问题又出现了。
问题4:yum -y update <那个名字> 这条指令报错:Loaded plugins: fastestmirror Determining fastest mirrors
这又是什么鬼?网上找了一下,说是fastestmirror是yum的一个加速插件,这个插件不能用了,所以你的命令也不能用了,好好的加什么速,总是扯出些没用的东西,就跟现下的工具一样,明明只想用a,然后要用a前你得掌握b,要用b前你要了解c......然后就是从入门到放弃。又扯远了,不能用这个插件,那么就在配置文件那里禁用吧:
答:这里要修改两个文件,可以先用 ls 和 cd 看看文件在哪个角落:
vi /etc/yum/pluginconf.d/fastestmirror.conf
显示如下:
[main]
enabled=0 //把1改为0
verbose=0
socket_timeout=3
hostfilepath=/var/cache/yum/timedhosts.txt
maxhostfileage=10
maxthreads=15
把enabled改为0,保存,这里表示禁用该插件;
vi /etc/yum.conf
显示如下:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1 #将plugins的值修改为0
installonly_limit=5
把piugins改为0,保存,表示yum不使用插件
ok,重新更新cxxg++版本,没问题:
yum -y update <那个名字>
预编译,没问题:
./configure
编译:
make
编译比较久,大约半小时左右,这个出来得到的就是无脑安装的那个包了,还要安装才能用。
安装:
make install
到此就可以像在Windows下面一样输入node -v去查看node版本了,安装成功,接下去测试项目的运行了。其他的问题翻篇写。
下面关于Node.js的内容你可能也喜欢: