只在vps服務(wù)器搭建vpn線路,顯然有些浪費(fèi)。比如還可以在Linux的vps服務(wù)器上安裝lnmp網(wǎng)站服務(wù)器。
LNMP是指在linux系統(tǒng)下安裝Nginx服務(wù)器、Mysql數(shù)據(jù)庫、Php (Phpmyadmin)。安裝LNMP過程很簡單,另外也有LNMP一鍵安裝包,因此甚至不需要進(jìn)行一些LNMP配置,網(wǎng)站服務(wù)器就可以工作了。但是lnmp一鍵安裝的缺點是如果安裝過程出現(xiàn)了問題,配置起來就困難很多了。
為什么不用lamp,即沒有采用Apache服務(wù)器的原因是該VPS配置性能不高,跑apache服務(wù)器將會非常吃力。而Nginx是一個高性能的http、反向代理服務(wù)器,Nginx的特點就是輕便和高性能,非常適合低配置的VPS搭建網(wǎng)站服務(wù)器。下面是遠(yuǎn)方博客在CentOS系統(tǒng)下安裝和配置LNMP、安裝FTP服務(wù)器vsftpd、并搭建wordpress博客網(wǎng)站的過程,記錄供備忘并交流。
CentOS VPS 安裝LNMP準(zhǔn)備
Linux vps 服務(wù)器CentOS 系統(tǒng)最小化安裝不一定會默認(rèn)安裝wget和unzip,而LNMP安裝包和wordpress安裝過程中卻是會用到這兩個服務(wù)命令的,因此必須首先安裝。通過Putty連接vps務(wù)器之后,使用yum install wget和yum insatll unzip進(jìn)行安裝。
LNMP安裝配置
1. 登陸連接vps服務(wù)器(Putty)
2. 安裝licess提供的lnmp一鍵安裝包,wget默認(rèn)下載到當(dāng)前目錄:
wget -c http://soft.vpser.net/lnmp/lnmp0.4.tar.gz
3. 解壓LNMP安裝包:tar zxvf lnmp0.4.tar.gz ;然后轉(zhuǎn)移到目錄:cd lnmp0.4/
4. CentOS系統(tǒng)執(zhí)行./centos.sh開始安裝過程。
5. 輸入要綁定到網(wǎng)站服務(wù)器根目錄的域名(該域名必須首先做A記錄解析到vps的IP地址才會生效)。
6. 輸入域名按Enter后centos.sh腳本執(zhí)行文件開始自動安裝Nginx、編譯php、安裝配置MySQL、phpMyAdmin和Zend等組件。剛開始需要輸入mysql root賬號的密碼,然后整個下載和安裝編譯的過程大概經(jīng)過約10-30分鐘。
7. 安裝其他組件(可選):cd到lnmp0.4下執(zhí)行./eaccelerator.sh則程序會自動安裝eAcelerator,執(zhí)行./pureftpd.sh則安裝pureftpd FTP服務(wù)器,執(zhí)行./vsftpd.sh安裝vsftpd。因為希望最小化安裝LNMP,所以這些都沒選擇安裝。
8. 安裝虛擬主機(jī):cd到lnmp0.4下執(zhí)行./vhost.sh自動開始創(chuàng)建虛擬主機(jī)并綁定域名到指定的目錄(輸入域名->指定綁定目錄->設(shè)置是否啟用靜態(tài)規(guī)則->選擇輸入Wordpress->是否啟用日志N)。若虛擬主機(jī)需要自定義偽靜態(tài)規(guī)則,則輸入WordPress時改為輸入url重寫靜態(tài)化規(guī)則名稱,然后在/usr/local/nginx/conf/自定義的偽靜態(tài)名字.conf 里面添加自定義偽靜態(tài)規(guī)則。或者直接編輯/usr/local/nginx/conf/nginx.conf 這個nginx配置文件。
9. LNMP安裝結(jié)束后可以通過:/root/lnmp {start|stop|reload|restart|kill|status} 來對LNMP啟動、停止、重啟等狀態(tài)進(jìn)行管理。
LNMP安裝配置過程出現(xiàn)的問題
1. 403 Forbidden 和 502 Bad Gateway
若沒有上傳文件到wwwroot根目錄下,則輸入綁定到LNMP網(wǎng)站根目錄下的域名會顯示403 Forbidden提示,上傳相關(guān)index.php等文件即可。若出現(xiàn) 502 bad gateway 錯誤提示,可以試試重啟LNMP:/root/lnmp restart,然后查看錯誤提示:
Reload LNMP...
Reload Nginx configure...
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
Nginx program is reloding!
Shutting down MySQL. SUCCESS!
Starting MySQL. SUCCESS!
/root/lnmp: line 70: /usr/local/php/sbin/php-fpm: No such file or directory
從上面的提示看出是缺少php-fpm,php編譯沒有成功。沒有辦法只有卸載lnmp重新編譯php了,或者直接reimage重裝vps系統(tǒng),或許這樣更快了。
2. ERROR! Manager of pid-file quit without updating file
這個錯誤原因的出現(xiàn)多半是因為重新安裝配置LNMP一鍵安裝包,但是原來的mysql服務(wù)又還沒卸載,仍然占用了原來的3306端口。從查看mysq錯誤日志文件可知,編輯錯誤日志位置是:nano /usr/local/mysql/var/farlee.err(ls usr/local/mysql/找到.err后綴的文件):
100726 16:26:28 mysqld_safe mysqld from pid file /usr/local/mysql/var/kjmykjmy.pid ended
100726 16:28:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
100726 16:28:22 [Warning] The syntax '--skip-locking' is deprecated and will be removed in a future release. Please use --skip-external-locking instead.
100726 16:28:22 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
100726 16:28:22 [ERROR] Do you already have another mysqld server running on port: 3306 ?
100726 16:28:22 [ERROR] Aborting
提示仍有另外一個mysqld 服務(wù)器占用了3306端口,修改mysql配置文件nano /etc/my.cnf ,將port端口改成其他的,同時把skip-locking改成skip-external-locking。保存退出后重啟mysql:service mysql start。再次重啟lnmp發(fā)現(xiàn)ERROR! Manager of pid-file quit without updating file 這個錯誤沒有了。
3. phpmyadmin: #1045 無法登錄 MySQL 服務(wù)器。Access denied for user ‘root’@'localhost’ (using password: YES)
安裝完lnmp安裝包之后,很多人反應(yīng)無法登陸mysql數(shù)據(jù)庫,出現(xiàn)Access denied for user ‘root’@'localhost’ (using password: YES)的錯誤。這有可能是由于前面設(shè)置mysql密碼沒有成功,所以導(dǎo)致了我們使用設(shè)置的mysql root密碼無法登陸服務(wù)器。這時可以嘗試使用mysql 默認(rèn)的root賬號的空密碼登陸數(shù)據(jù)庫。
若果使用空密碼登陸時又出現(xiàn):空密碼登錄被禁止 (參見 允許空密碼)的類似錯誤。則要修改/home/wwwroot/phpmyadmin/libraries/config.default.php 文件,找到下面兩行
$cfg['Servers'][$i]['nopassword'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
將兩個false改為true,同時設(shè)置 $cfg['Servers'][$i]['password'] = '';通過這樣設(shè)置配置文件后phpmyadmin 就會允許以空密碼方式登錄mysql數(shù)據(jù)庫了。若重新以空密碼方式登錄phpmyadmin有時仍無法登陸,請清除cookie或關(guān)閉原來的phpmyadmin 登錄窗口,重新使用空密碼登錄。若這時候仍然顯示空密碼登陸被禁止,試試隨便輸入幾個字符當(dāng)作密碼看是否能夠登陸成功。登陸mysql服務(wù)器之后盡快將mysql密碼在phpmyadmin中修改過來。或者在SSH客戶端修改mysql密碼:cd /usr/local/mysql/bin 然后執(zhí)行命令:./mysqladmin -u root -p password http://farlee.info/ passwd。最后在mysql的user表中刪除除root以外所有用戶。
LNMP安裝vsftpd FTP服務(wù)器
1. 安裝vsftpd服務(wù)器,我們就可以通過flashfxp、filezilla等ftp客戶端上傳文件了:yum -y install vsftpd
2. 設(shè)置開機(jī)啟動 vsftpd:chkconfig --level 35 vsftpd on
3. 禁止匿名登陸,修改/etc/vsftpd/vsftpd.conf文件。將anonymous_enable=YES,改為anonymous_enable=NO
4. 修改www密碼:passwd www 連續(xù)兩次輸入新的密碼
5. 賦予目錄權(quán)限和www用戶權(quán)限: chown -R root:www /home/wwwroot 和 chmod 770 /home/wwwroot
-R : 對目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個變更)
6. 重啟vsftpd:service vsftpd start, service vsftpd restart
LNMP 安裝wordpress 博客
1. 通過phpmyadmin創(chuàng)建mysql數(shù)據(jù)庫;下載wordpress.zip,解壓后修改config.php文件;全選wordpress文件夾內(nèi)的所有文件及目錄,右鍵壓縮成zip格式。
2. 將重新壓縮的wordpress.zip 通過FTP(SFTP)上傳到/home/wwwroot 根目錄下。 若上傳或解壓路徑錯了,刪除目錄重來:rm -rf /home/wordpress。
3. cd /home/wwwroot unzip wordpress.zip 解壓到wwwroot根目錄,訪問綁定的域名開始安裝wordpress博客。
Nginx 服務(wù)器和Apache .htaccess 文件
nginx 默認(rèn)不支持網(wǎng)站根目錄下的.htaccess 文件;必須在nginx服務(wù)器配置文件目錄如/usr/local/nginx/conf/的.conf文件中進(jìn)行相關(guān)設(shè)置。比如上文中介紹已經(jīng)自動生成了wordpress的偽靜態(tài)url重寫規(guī)則,若另外要手動設(shè)置頂級域名301跳轉(zhuǎn)到www域名,則可以在conf配置文件中寫入:
server {
listen 80;
server_name farlee.info;
rewrite ^(.*) http://www.farlee.info$1 permanent;
}
server {
listen 80;
server_name www.farlee.info;
...
}
若只是需要302跳轉(zhuǎn),則上面紅色rewrite 規(guī)則替換為如下即可:
rewrite ^ http://www.farlee.info$request_uri?;
也可以在.htaccess文件中設(shè)置相關(guān)的rewrite 規(guī)則,然后在nginx.conf 服務(wù)器配置文件中將該.htaccess文件include進(jìn)來:
include /var/www/html/168pc/bbs/.htaccess;