需求: 之前使用 <code>PHP+Mysql</code> 做開發,近年來<code>NodeJS</code>有點火,且不需要<code>Apache</code>、<code>Nginx</code>、<code>Tomcat</code>做容器,想在不影響之前<code>PHP</code>開發環境下,也能體驗<code>NodeJS+Mysql</code>玩法。國内搜尋了很多也沒有發現有關<code>LNMP+Nodejs</code>的具體部署教程,于是踩了很多坑,終于配出了 NodeJS + LNMP + PHPMyAdmin。
因為 NodeJS 異步、非阻塞的特性,是以多核 CPU 對 NodeJS 算比較浪費吧,是以主要提高記憶體的大小,是以選了騰訊雲1核、2G 記憶體的伺服器。

這個比較重要,鏡像要是選得好,配置起來各種高效率。這裡我推薦的系統是CentOS 7+ (主要是因為CentOS 6使用的是Python 2.6,yum各種坑,想更新成Python 2.7坑還多)。
鏡像選擇 PHP運作環境(CentOS7.1 64位 Nginx | PHP多版本),騰訊雲裡的服務提供商上海微柳這家提供的<code>oneinstack</code> 太強大了,工具和文檔都很詳細,并且和其它的鏡像不一樣的是,<code>ssh</code>連接配接時,會有暗紅高亮,相當好用。然後直接買、買、買就行了(較其它主機提供商,騰訊雲的學生機相當給力)。
然後就配好了,通路伺服器80端口,下載下傳鏡像的文檔(超級友善的各種腳本):
注意:有些伺服器需要在騰訊雲的控制台上設定安全組,不然22端口将無法開放,就會導緻才買的伺服器通過<code>ssh</code>連不上。
首先開啟FTP,友善傳檔案:
<code>service pureftpd start</code>開啟,這樣就可以配置FTP了。 首先進入<code>oneinstack</code>目錄 -> 運作<code>./pureftpd_vhost.sh</code> -> 添加一個FTP使用者。
<code>oneinstack</code>目錄下,運作 <code>./reset_db_root_password.sh</code>,輸入資料庫密碼。
執行:<code>yum -y install zlib-devel curl-devel openssl-devel perl cpio expat-devel gettext-devel openssl zlib autoconf tk perl-ExtUtils-MakeMaker gcc make gcc-c++ openssl-devel wget</code> ,主要的目的是為了當npm安裝比較"嬌氣"的子產品時不報錯。
這裡采用<code>nvm</code>來安裝<code>nodejs</code>,是因為<code>nvm</code>對<code>nodejs</code>進行版本管理,這就友善多了,比如我<code>Ghost</code>部落格的<code>Node</code>版本隻能是<code>0.10.x || 0.12.0</code>。而一般用的,是<code>4.x.x</code>了。是以非常有必要。
首先<code>git clone https://github.com/creationix/nvm.git ~/.nvm</code>;
<code>source ~/.nvm/nvm.sh</code>;
将2中的指令vim加到<code>~/.bashrc或 ~/.profile或 ~/.zshrc</code>中,這樣的話,下次ssh上去時,才不會發現<code>nvm</code>未安裝;
然後就是nvm的使用了,<code>nvm install node版本</code>,參考nvm的Usage。
安裝完 node 後,最好更換一下npm 源,這樣 npm 比較快些。
<code>npm install -g forever</code>
建立後,會在産生2個重要檔案(以我的域名test.ycjcl.cc為例)。
這裡我生成了一個<code>express</code>項目,端口為3000,但是并不能通路到3000端口。
需要防火牆忽略3000端口,是以執行以下指令:
就可以ip+端口通路了:
直接<code>vi /usr/local/nginx/conf/vhost/test.ycjcl.cc.conf</code>,修改配置:(中間的location都删了,直接加這個)。
然後重新開機nginx ,<code>service nginx restart</code>。
然後用域名通路成功!!!
需要 phpMyAdmin,直接用 <code>ip/phpMyAdmin</code>,可以進行mysql的管理。
如果是64位CentOS 7系統
如果是32位系統
2.先更新yum:<code>yum -y update</code>,然後安裝mongodb:<code>yum -y install mongodb-org mongodb-org-server</code>
3.運作mongodb(預設27017端口)
<code>systemctl {start|status|stop} mongod</code>
注意:從MongoDB“贖金事件”中,建議一定要使用<code>db.addUser</code>和<code>db.changeUserPassword</code>更改使用者名和密碼。
如果重裝系統,ssh上去時,出現以下錯誤,用<code>ssh-keygen -R IP位址</code> 來解決
有時候開啟node服務時,提示某個端口被占用。此時要用指令檢視端口<code>fuser -n tcp 端口号</code>,或檢視服務<code>ps -ef | grep 服務名</code>,kill掉<code>kill -9 pID程序号</code>。如果大型通路量時,優雅軟重新開機的使用<code>kill -HUP pID程序号</code>。
相關推薦
三種 PHP 運作環境的性能對比
騰訊雲從零部署nodejs站點