做者:licess 發佈時間:2013年04月16日 分類:常見問題php
通常狀況下每一個虛擬主機就是一個網站,網站通常經過域名進行訪問。
本文爲教程適合LNMP 1.2+,各個版本的添加過程基本相似,按提示操做便可。1.4版添加了SSL選項能夠選擇Letsencrypt和自備SSL證書,多PHP版本選擇等功能。1.3版增長了FTP和數據庫的建立等。LNMP 1.4的跨目錄同時增長在fastcgi.conf中進行管控,LNMP1.2的防跨目錄也由原來在php.ini中設置移至網站根目錄下的.user.ini 進行控制。
LNMP 1.1及以前的版本採用/root/vhost.sh 進行添加虛擬主機。
LNMP 1.2開始使用lnmp命令進行管理,具體能夠參看更新記錄
虛擬主機管理基本命令介紹:lnmp vhost {add|list|del}
以前版本的LNMP均可以升級到新版的lnmp管理腳本,升級到1.4教程
html
若是輸入有錯誤須要刪除時,能夠按住Ctrl再按Backspace鍵進行刪除。
執行:lnmp vhost add 出現以下界面:
這裏要輸入要添加網站的域名,咱們已添加www.vpser.net域名爲例,如上圖提示後輸入域名 www.vpser.net 回車後提示
這裏詢問是否添加更多域名,直接再輸入要綁定的域名,這裏咱們將 vpser.net 也綁上,多個域名空格隔開,如不須要綁其餘域名就直接回車。mysql
(注:帶www和不帶www的是不一樣的域名,如需帶www和不帶的www的域名都訪問同一個網站須要同時都綁定)。
下面須要設置網站的目錄
網站目錄不存在的話會建立目錄。也能夠輸入已經存在的目錄或要設置的目錄(注意如要輸入必須是全路徑即以/開頭的完整路徑!!!)。不輸入直接回車的話,採用默認目錄:/home/wwwroot/域名
僞靜態可使URL更加簡潔也利於SEO,如程序支持而且須要設置僞靜態的話,如啓用輸入 y ,不啓用輸入 n 回車(注意LNMPA或LAMP模式沒有該選擇項!)。
默認已經有了discuz、discuzx、discuzx2(Discuz X二級目錄)、wordpress、wp2(WordPress二級目錄)、typecho、typecho2(Typecho二級目錄)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等經常使用的Nginx僞靜態配置文件,能夠直接輸入名稱進行使用,若是是二級目錄則須要對應配置文件裏的二級目錄的名稱。
這一步是設置日誌,如啓用日誌輸入 y ,不啓用輸入 n 回車。
若是啓用須要再輸入要設置的日誌的名稱,默認日誌目錄爲:/home/wwwlogs/ 默認文件名爲:域名.log 回車確認後,會詢問是否添加數據庫和數據庫用戶。
若是須要添加數據庫輸入 y ,不添加數據庫輸入 n 回車。
若是要添加,須要先驗證MySQL的root密碼(注:輸入密碼將不顯示)
提示Enter database name: 後輸入要建立的數據庫名稱,要建立的數據庫用戶名會和數據庫同名,回車確認。
提示Please enter password for mysql user 數據庫名: 後輸入要設置的密碼,回車確認。
若是安裝了FTP服務器會詢問是否添加FTP帳號
若是須要添加輸入 y ,不添加輸入 n 回車。
提示Enter ftp account name: 後輸入要建立的FTP帳號名稱,回車確認。
提示Enter password for ftp account FTP帳號: 後輸入要設置的密碼,回車確認。
接下來是1.4新增的添加SSL功能
若是須要添加輸入 y ,不添加輸入 n 回車。
選擇了添加SSL會提示
有兩個選項,1 選項爲使用本身準備好的SSL證書和key。
> > 提示Please enter full path to SSL Certificate file 後輸入要SSL證書的完整路徑和文件名,回車確認。
> > 提示Please enter full path to SSL Certificate Key file: 後輸入輸入要key文件的完整路徑和文件名,回車確認。
2 選項爲使用免費SSL證書提供商Letsencrypt的證書,自動生成SSL證書等信息。
須要輸入一個郵箱回車確認。
提示 Press any key to start create virtul host... 後,回車確認便會開始建立虛擬主機。
添加成功會提示添加的域名、目錄、僞靜態、日誌、數據庫、FTP等相關信息,以下圖:
nginx
LNMPA或LAMP能夠直接使用網站根目錄下放.htaccess 來設置僞靜態規則(具體規則能夠去程序官網網站找google百度),可是在LNMP下,須要使用Nginx僞靜態規則。
僞靜態能夠隨時添加或刪除,若是添加完虛擬主機後忘記或沒有添加僞靜態,能夠經過修改配置文件來添加僞靜態。
虛擬主機配置文件在:/usr/local/nginx/conf/vhost/域名.conf
僞靜態規則文件須要放在/usr/local/nginx/conf/ 下面。
編輯虛擬主機配置文件,可使用vi、nano或winscp,後2個工具對新手來講簡單些。
例如前面咱們添加的虛擬主機,打開後前半部分配置會顯示以下:
在root /home/wwwroot/www.vpser.net;這一行下面添加:
include wordpress.conf;
上面的wordpress.conf爲僞靜態文件,如須要其餘僞靜態文件本身建立個並上傳到/usr/local/nginx/conf/ 下面並include 僞靜態.conf; 加完保存,執行:/etc/init.d/nginx restart 重啓生效,若是報錯多是添加有誤或僞靜態規則有誤。
sql
若是已經安裝FTP服務器能夠直接使用ftp客戶端經過你的FTP信息登陸後上傳網站或sftp等軟件上傳網站,設置好相關權限開始安裝便可。
上傳網站後建議執行:chown www:www -R /path/to/dir 對網站目錄進行權限設置,/path/to/dir替換爲你網站目錄。
爲了安全能夠將一些不須要PHP運行的上傳文件之類的目錄去掉執行權限,參考:http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
數據庫
執行:lnmp vhost del
刪除網站會先列出當前已有虛擬主機,按提示輸入要刪除的虛擬主機域名 回車確認。
這裏只是刪除虛擬主機配置文件,網站文件並不會刪除須要本身刪除。
LNMP 1.2下須要執行:chattr -i /網站目錄/.user.ini 後才能刪除網站目錄。
當執行chown或chmod對網站目錄屬主屬組或權限進行操做時可能會提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不須要理會,若是有強迫症能夠參考前面先進行chattr -i的操做。vim
LNMP默認網站配置文件:/usr/local/nginx/conf/nginx.conf
LNMPA默認網站配置文件:/usr/local/nginx/conf/nginx.conf 和 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP默認網站配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
安全
LNMP 1.1及以前的版本使用php.ini裏面,open_basedir設置
LNMP 1.2及更高版本防跨目錄功能使用.user.ini,該文件在網站根目錄下,能夠修改.user.ini 裏面的open_basedir的值來設置限制訪問的目錄或刪除來移除防跨目錄的設置。
.user.ini文件沒法直接修改,如要修或刪除須要先執行:chattr -i /網站目錄/.user.ini
可使用winscp文件管理、vim編輯器或nano編輯器進行修改。
刪除的話rm -f /網站目錄/.user.ini 就能夠。
修改完成後再執行:chattr +i /網站目錄/.user.ini
.user.ini不須要重啓通常5分鐘左右生效,也能夠重啓一下php-fpm當即生效。
若是要更改網站目錄必需要按上述方法修改防跨目錄的設置,不然確定報錯!!
LNMP 1.4上若是不想用防跨目錄或者修改.user.ini的防跨目錄的目錄還須要將 /usr/local/nginx/conf/fastcgi.conf 裏面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在該行行前添加 # 或刪除改行,須要重啓nginx。
LNMP 1.4上也能夠直接使用lnmp1.4/tools/ 目錄下的 ./remove_open_basedir_restriction.sh 進行移除。
LNMPA或LAMP 模式1.2版本以上的防跨目錄的設置使用的對應apache虛擬主機配置文件(lnmp管理工具添加的話文件是 /usr/local/apache/conf/vhost/域名.conf )裏的php_admin_value open_basedir參數進行設置。若是不須要設置能夠在前面加 # 進行註釋,或自行修改目錄的限制。
重啓apache生效。
服務器
LNMP上各個版本pathinfo各個版本的設置基本同樣:
lnmp v1.1上,修改對應虛擬主機的配置文件
去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 註釋掉。
1.2,1.3上,修改對應虛擬主機的配置文件
將include enable-php.conf;替換爲include enable-php-pathinfo.conf;
修改pathinfo須要重啓nginx生效。
1.3以上版本,能夠在添加虛擬主機時選擇建立數據庫,也能夠單獨使用 lnmp database add 按提示添加數據庫,添加的用戶名和數據庫名是同名的。
添加數據庫命令:lnmp database add
編輯數據庫用戶密碼命令:lnmp database edit
刪除數據庫命令:lnmp database del
列出全部數據庫命令:lnmp database list