LNMP添加、刪除虛擬主機及偽靜態使用教程

字號+ 編輯: Snake 修訂: 人在硅谷 來源: LNMP.org 2023-09-07 我要說兩句(0)

本文爲教程適合LNMP1.2+,各個版本的添加過程基本類似,按提示操作即可。

1.4版添加了SSL選項可以選擇Letsencrypt和自備SSL证書,多PHP版本選擇等功能。1.3版增加了FTP和數據庫的創建等。LNMP1.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教程

添加網站(虛擬主機)

如果輸入有錯誤需要刪除時,可以按住Ctrl再按Backspace鍵進行刪除。

執行:lnmp vhost add 出現如下界面:

Manager for LNMP, Written by Licess
http://lnmp.org 
Please enter domain(example:www.lnmp.org):

這裡要輸入要添加網站的域名,我們已添加www.vpser.net域名爲例,如上圖提示後輸入域名 www.vpser.net 回車後提示

Enter more domain name(example: lnmp.org *.lnmp.org):

這裡詢問是否添加更多域名,直接再輸入要綁定的域名,這裡我們將 vpser.net 也綁上,多個域名空格隔開,如不需要綁其他域名就直接回車。

(注:帶www和不帶www的是不同的域名,如需帶www和不帶的www的域名都訪問同一個網站需要同時都綁定)。

下面需要設置網站的目錄

Default directory: /home/wwwroot/www.lnmp.org:

網站目錄不存在的話會創建目錄。也可以輸入已經存在的目錄或要設置的目錄(注意如要輸入必須是全路徑即以/開頭的完整路徑!!!)。不輸入直接回車的話,採用默認目錄:/home/wwwroot/域名

Allow Rewrite rule? (y/n)

偽靜態可以使URL更加簡潔也利於SEO,如程序支持並且需要設置偽靜態的話,如啓用輸入 y ,不啓用輸入 n 回車(注意LNMPA或LAMP模式沒有該選擇項!)。

Please enter rewrite of programme,
wordpress,discuz,typecho,sablog,typecho rewrite was exist.
(Default rewrite: other):

默認已經有了discuz、discuzx、discuzx2(Discuz X二級目錄)、wordpress、wp2(WordPress二級目錄)、typecho、typecho2(Typecho二級目錄)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx偽靜態配置文档,可以直接輸入名稱進行使用,如果是二級目錄則需要對應配置文档裡的二級目錄的名稱。

Allow access log? (y/n)

這一步是設置日志,如啓用日志輸入 y ,不啓用輸入 n 回車。

Enter access log filename(Default:www.lnmp.org.log):

如果啓用需要再輸入要設置的日志的名稱,默認日志目錄爲:/home/wwwlogs/ 默認文档名爲:域名.log 回車確認後,會詢問是否添加數據庫和數據庫用戶。

Create database and MySQL user with same name (y/n)

如果需要添加數據庫輸入 y ,不添加數據庫輸入 n 回車。

Create database and MySQL user with same name (y/n) y 
Enter current root password of Database (Password will not shown):

如果要添加,需要先驗证MySQL的root密碼(注:輸入密碼將不顯示)

提示Enter database name: 後輸入要創建的數據庫名稱,要創建的數據庫用戶名會和數據庫同名,回車確認。

提示Please enter password for mysql user 數據庫名: 後輸入要設置的密碼,回車確認。

如果安裝了FTP服務器會詢問是否添加FTP賬號

Create ftp account (y/n)

如果需要添加輸入 y ,不添加輸入 n 回車。

Enter ftp account name: lnmp
Enter password for ftp account lnmp: mima

提示Enter ftp account name: 後輸入要創建的FTP賬號名稱,回車確認。

提示Enter password for ftp account FTP賬號: 後輸入要設置的密碼,回車確認。

接下來是1.4新增的添加SSL功能

Add SSL Certificate (y/n)

如果需要添加輸入 y ,不添加輸入 n 回車。

選擇了添加SSL會提示

Add SSL Certificate (y/n) y
1: Use your own SSL Certificate and Key
2: Use Let's Encrypt to create SSL Certificata and Key
Enter 1 or 2:

有兩個選項,1 選項爲使用自己準備好的SSL证書和key。

Enter 1 or 2: 1
Please enter full path to SSL Certificate file: /usr/local/nginx/conf/ssl/lnmp.org.crt
Please enter full path to SSL Certificate Key file: /usr/local/nginx/conf/ssl/lnmp.org.key

> > 提示Please enter full path to SSL Certificate file 後輸入要SSL证書的完整路徑和文档名,回車確認。

> > 提示Please enter full path to SSL Certificate Key file: 後輸入輸入要key文档的完整路徑和文档名,回車確認。

2 選項爲使用免費SSL证書提供商Letsencrypt的证書,自動生成SSL证書等信息。

2: Use Let's Encrypt to create SSL Certificate and Key
Enter 1 or 2: 2
Please enter your email address:

需要輸入一個郵箱回車確認。

提示 Press any key to start create virtul host... 後,回車確認便會開始創建虛擬主機。

添加成功會提示添加的域名、目錄、偽靜態、日志、數據庫、FTP等相關信息,如下:

Virtualhost infomation:
Your domain: www.vpser.net 
Home Directory: /home/wwwroot/www.vpser.net 
Rewrite: none
Enable log: yes
Database username: vpser
Database userpassword: vpser.net
Database Name: vpser
Create ftp account: no

偽靜態管理

LNMPA或LAMP可以直接使用網站根目錄下放.htaccess 來設置偽靜態槼則(具體槼則可以去程序官網網站找google百度),但是在LNMP下,需要使用Nginx偽靜態槼則。

偽靜態可以隨時添加或刪除,如果添加完虛擬主機後忘記或沒有添加偽靜態,可以通過修改配置文档來添加偽靜態。

虛擬主機配置文档在:/usr/local/nginx/conf/vhost/域名.conf

偽靜態槼則文档需要放在/usr/local/nginx/conf/ 下面。

編輯虛擬主機配置文档,可以使用vinanowinscp,後2個工具對新手來說簡單些。

例如前面我們添加的虛擬主機,打開後前半部分配置會顯示如下:

log_format www.vpser.net '$remote_addr - $remote_user [$time_local] "$request"'
        '$status $body_bytes_sent "$http_referer"'
        '"$http_user_agent" $http_x_forwarded_for';
server
    {
        listen       80;
        server_name www.vpser.net vpser.net www.vpser.org vpser.org; 
        index index.html index.htm index.php default.html default.htm default.php;
        root /home/wwwroot/www.vpser/net;
 
        include wordpress.conf;
        location ~ .*\.(php|php5)?$
                {
                    try_files $url =404;
                    fastcgi_pass unix:/tmp/php-cgi.sock;
                    fastcgi_index index.php;
                    include fcgi.conf;
                }
    }

在root /home/wwwroot/www.vpser.net;這一行下面添加:

include wordpress.conf;

上面的wordpress.conf爲偽靜態文档,如需要其他偽靜態文档自己創建個並上傳到/usr/local/nginx/conf/ 下面並include 偽靜態.conf; 加完保存,執行:

/etc/init.d/nginx restart

重啓生效,如果報錯可能是添加有誤或偽靜態槼則有誤。

上傳網站程序

如果已經安裝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 list

Manager for LNMP, Written by Licess
http://lnmp.org 
Nginx Virtualhost list:
www.vpser.net

##刪除網站(虛擬主機)##

執行:

lnmp vhost del

Manager for LNMP, Written by Licess
http://lnmp.org
Current Virtualhost:
Nginx Virtualhost list:
www.vpser.net 
Please enter domai you want to delete:

刪除網站會先列出當前已有虛擬主機,按提示輸入要刪除的虛擬主機域名 回車確認。

這裡只是刪除虛擬主機配置文档,網站文档並不會刪除需要自己刪除。

LNMP 1.2下需要執行:chattr -i /網站目錄/.user.ini 後才能刪除網站目錄。

當執行chown或chmod對網站目錄屬主屬組或權限進行操作時可能會提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不需要理會,如果有強迫症可以參考前面先進行chattr -i的操作。

默認網站(虛擬主機)

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生效。

pathinfo設置

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
閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 防止退出linux終耑退出之後導致的nohup進程強制退出

  • Linux系統下word文档轉成pdf的辦法

  • ubuntu和debian安裝nginx或者tengine報錯, 找不到pcre依賴庫的解決辦法

  • 常見的web中間件請求返回狀態碼

我要說說
網上賓友點評