- 資訊首頁(yè) > 互聯(lián)網(wǎng) > 主機資訊 >
- 搬瓦工vps如何手動(dòng)在 Ubuntu 18.04 上安裝 LNMP/LEMP 建
LEMP 建站環(huán)境是一種常見(jiàn)的建站環(huán)境組合,包括 Linux、NGINX、MariaDB 和 PHP,用于開(kāi)發(fā)和托管 Web 應用程序。因為 NGINX 發(fā)音為“engine-x”,所以我們一般也將其簡(jiǎn)稱(chēng)為“E”,從而縮寫(xiě)為 LEMP,但是在國內我們更習慣于直接縮寫(xiě)為 N,也就是 LNMP 建站環(huán)境。為了方便起見(jiàn),下面都統一稱(chēng)作 LNMP。本文介紹 LNMP 建站環(huán)境的手動(dòng)配置方法,如果不想手動(dòng)配置,也可以直接使用 LNMP 一鍵包或者是寶塔面板進(jìn)行搭建。,與之相對,LAMP(Linux、Apache、MariaDB 和 PHP)也是一種流行的服務(wù)器配置。,1、準備一個(gè) Debian/Ubuntu 系統,在 Debian 或 Ubuntu 上運行的系統。 也可以使用其他采用 APT 包管理器的 Linux 發(fā)行版。,2、連接到搬瓦工 SSH,其次我們需要通過(guò) SSH 連接到搬瓦工 VPS,然后才能進(jìn)行一系列操作。,3、更新系統,安裝 NGINX 很簡(jiǎn)單:,MariaDB 是 MySQL 的一個(gè)流行分支,它的開(kāi)發(fā)被認為比 MySQL 更加開(kāi)放和透明。MariaDB 使用與 MySQL 相同的命令進(jìn)行管理。,1、安裝 MariaDB 服務(wù)器和 MySQL/MariaDB-PHP 支持,2、登錄到 MariaDB 的 SQL shell,數據庫不會(huì )提示您輸入密碼,因為它最初配置為使用 unix_socket
授權插件。只要您從 localhost 上的 Linux root 用戶(hù)進(jìn)行連接,此授權方案就允許您登錄到數據庫的 root 用戶(hù):,輸出如下:,您可以繼續為 root 用戶(hù)使用 unix_socket
插件;這被認為是生產(chǎn)系統的安全選項,某些 Ubuntu 維護腳本正常運行需要它。,3、創(chuàng )建具有訪(fǎng)問(wèn)權限的測試數據庫和用戶(hù)。用適合您的設置的名稱(chēng)替換 testdb
和 testuser
。 用強密碼替換 password
。,4、退出 SQL shell,5、使用 mysql_secure_installation
工具配置其他安全選項。此工具會(huì )詢(xún)問(wèn)您是否要為 MariaDB 根用戶(hù)設置新密碼,但您可以跳過(guò)該步驟。,在以下提示下輸入 Y
即可:,安裝 PHP 相對來(lái)說(shuō)也比較簡(jiǎn)單。,1、安裝 PHP FastCGI 處理管理器(PHP FastCGI Processing Manager),其中包括核心 PHP 依賴(lài)項。,2、設置 PHP 只接受服務(wù)器上實(shí)際存在的文件的 URI。這減輕了一個(gè)安全漏洞,如果請求的 .php
文件不存在于文件系統中,則 PHP 解釋器可能會(huì )被欺騙以允許任意代碼執行。,接下來(lái)就要開(kāi)始配置 NGINX 站點(diǎn)配置文件了。,1、創(chuàng )建網(wǎng)站內容所在的根目錄。將 example.com
替換為您站點(diǎn)的域。,2、為您的站點(diǎn)創(chuàng )建默認配置文件的副本,3、在文本編輯器中打開(kāi)新的 example.com
配置文件。使用示例內容創(chuàng )建配置文件,將文件名和文件內容中的 example.com
替換為您的域:,文件位置:/etc/nginx/sites-available/example.com.conf
,示例內容:,其中的 server
的具體配置項介紹如下:,4、從啟用站點(diǎn)的目錄中創(chuàng )建指向您的網(wǎng)站配置文件的鏈接。將文件名更改為您用于域的名稱(chēng)。,如果您在服務(wù)器上配置了 UFW,請啟用防火墻以允許網(wǎng)站流量。,1、檢查為 Nginx Full
配置文件啟用的端口,端口 80 和 443 應該會(huì )被列出。,2、如果不允許使用這些端口,請使用以下命令啟用它們:,1、為確保您的域名可以訪(fǎng)問(wèn)您的 VPS 服務(wù)器,請將您的域的 DNS 記錄配置為指向您的搬瓦工的 IP 地址。,2、重啟 PHP 并重新加載 NGINX 配置:,3、測試 NGINX 配置:,4、創(chuàng )建一個(gè)測試頁(yè)面來(lái)驗證 NGINX 可以運行 PHP 并連接到 MariaDB 數據庫。將“testuser
”和“password
”字段替換為您在上面創(chuàng )建的 MariaDB 憑據。,文件地址:/var/www/html/example.com/public_html/test.php
,示例內容:,5、在 Web 瀏覽器中訪(fǎng)問(wèn) http://example.com/test.php
,它應該顯示您已成功連接。,如果您看到錯誤消息或根本無(wú)法加載頁(yè)面,請重新檢查您的配置。如果您的 DNS 更改尚未生效,您可以使用 curl
來(lái)測試您的頁(yè)面:,一般輸出如下:,6、一旦建站環(huán)境正常工作,刪除測試文件:,搬瓦工美西cn2 gt vps測試IP:65.49.215.48,
LEMP 建站環(huán)境是一種常見(jiàn)的建站環(huán)境組合,包括 Linux、NGINX、MariaDB 和 PHP,用于開(kāi)發(fā)和托管 Web 應用程序。因為 NGINX 發(fā)音為“engine-x”,所以我們一般也將其簡(jiǎn)稱(chēng)為“E”,從而縮寫(xiě)為 LEMP,但是在國內我們更習慣于直接縮寫(xiě)為 N,也就是 LNMP 建站環(huán)境。為了方便起見(jiàn),下面都統一稱(chēng)作 LNMP。本文介紹 LNMP 建站環(huán)境的手動(dòng)配置方法,如果不想手動(dòng)配置,也可以直接使用 LNMP 一鍵包或者是寶塔面板進(jìn)行搭建。
與之相對,LAMP(Linux、Apache、MariaDB 和 PHP)也是一種流行的服務(wù)器配置。
1、準備一個(gè) Debian/Ubuntu 系統
在 Debian 或 Ubuntu 上運行的系統。 也可以使用其他采用 APT 包管理器的 Linux 發(fā)行版。
2、連接到搬瓦工 SSH
其次我們需要通過(guò) SSH 連接到搬瓦工 VPS,然后才能進(jìn)行一系列操作。
3、更新系統
sudo apt update && sudo apt upgrade
安裝 NGINX 很簡(jiǎn)單:
sudo apt install nginx
MariaDB 是 MySQL 的一個(gè)流行分支,它的開(kāi)發(fā)被認為比 MySQL 更加開(kāi)放和透明。MariaDB 使用與 MySQL 相同的命令進(jìn)行管理。
1、安裝 MariaDB 服務(wù)器和 MySQL/MariaDB-PHP 支持
sudo apt install mariadb-server php-mysql
2、登錄到 MariaDB 的 SQL shell
sudo mysql -u root
數據庫不會(huì )提示您輸入密碼,因為它最初配置為使用 unix_socket
授權插件。只要您從 localhost 上的 Linux root 用戶(hù)進(jìn)行連接,此授權方案就允許您登錄到數據庫的 root 用戶(hù):
SELECT user,host,authentication_string,plugin FROM mysql.user;
輸出如下:
------ ----------- ----------------------- ------------- | user | host | authentication_string | plugin | ------ ----------- ----------------------- ------------- | root | localhost | | unix_socket | ------ ----------- ----------------------- ------------- 1 row in set (0.00 sec)
您可以繼續為 root 用戶(hù)使用 unix_socket
插件;這被認為是生產(chǎn)系統的安全選項,某些 Ubuntu 維護腳本正常運行需要它。
3、創(chuàng )建具有訪(fǎng)問(wèn)權限的測試數據庫和用戶(hù)。用適合您的設置的名稱(chēng)替換 testdb
和 testuser
。 用強密碼替換 password
。
CREATE DATABASE testdb; CREATE USER 'testuser' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
4、退出 SQL shell
quit
5、使用 mysql_secure_installation
工具配置其他安全選項。此工具會(huì )詢(xún)問(wèn)您是否要為 MariaDB 根用戶(hù)設置新密碼,但您可以跳過(guò)該步驟。
sudo mysql_secure_installation
在以下提示下輸入 Y
即可:
安裝 PHP 相對來(lái)說(shuō)也比較簡(jiǎn)單。
1、安裝 PHP FastCGI 處理管理器(PHP FastCGI Processing Manager),其中包括核心 PHP 依賴(lài)項。
sudo apt install php-fpm
2、設置 PHP 只接受服務(wù)器上實(shí)際存在的文件的 URI。這減輕了一個(gè)安全漏洞,如果請求的 .php
文件不存在于文件系統中,則 PHP 解釋器可能會(huì )被欺騙以允許任意代碼執行。
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.2/fpm/php.ini
接下來(lái)就要開(kāi)始配置 NGINX 站點(diǎn)配置文件了。
1、創(chuàng )建網(wǎng)站內容所在的根目錄。將 example.com
替換為您站點(diǎn)的域。
sudo mkdir -p /var/www/html/example.com/public_html
2、為您的站點(diǎn)創(chuàng )建默認配置文件的副本
sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-available/example.com.conf
3、在文本編輯器中打開(kāi)新的 example.com
配置文件。使用示例內容創(chuàng )建配置文件,將文件名和文件內容中的 example.com
替換為您的域:
文件位置:/etc/nginx/sites-available/example.com.conf
示例內容:
server { listen 80; listen [::]:80; server_name example.com www.example.com; root /var/www/html/example.com/public_html; index index.html; location / { try_files $uri $uri/ =404; } location ~* .php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
其中的 server
的具體配置項介紹如下:
80
以獲取到 example.com
或 www.example.com
的傳入連接。/var/www/html/example.com/public_html
提供,其索引頁(yè)(index.html
)是一個(gè)簡(jiǎn)單的 .html
文件。如果您的索引頁(yè)面將像 WordPress 一樣使用 PHP,請將 index.html
替換為 index.php
。try_files
告訴 NGINX 在進(jìn)一步處理請求之前驗證請求的文件或目錄是否確實(shí)存在于站點(diǎn)的根文件系統中。如果沒(méi)有,則返回 404
。location ~* .php$
意味著(zhù) NGINX 會(huì )將此配置應用于站點(diǎn)根目錄中的所有 .php 文件(文件名不區分大小寫(xiě)),包括任何包含 PHP 文件的子目錄。~* .php$
位置指令中的 *
表示 PHP 文件名不區分大小寫(xiě)。如果您更喜歡強制使用字母大小寫(xiě),則可以將其刪除。fastcgi_pass
指定 PHP 偵聽(tīng)來(lái)自其他本地進(jìn)程的傳入連接的 UNIX 套接字。include fastcgi_params
告訴 NGINX 處理 /etc/nginx/fastcgi_params
中的 fastcgi_param
變量列表。fastcgi_param
指令包含 NGINX 調用時(shí)要提供的 PHP 腳本的位置(相對于站點(diǎn)的根目錄)和文件命名約定。4、從啟用站點(diǎn)的目錄中創(chuàng )建指向您的網(wǎng)站配置文件的鏈接。將文件名更改為您用于域的名稱(chēng)。
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
如果您在服務(wù)器上配置了 UFW,請啟用防火墻以允許網(wǎng)站流量。
1、檢查為 Nginx Full
配置文件啟用的端口
sudo ufw app info "Nginx Full"
端口 80 和 443 應該會(huì )被列出。
2、如果不允許使用這些端口,請使用以下命令啟用它們:
sudo ufw allow in "Nginx Full"
1、為確保您的域名可以訪(fǎng)問(wèn)您的 VPS 服務(wù)器,請將您的域的 DNS 記錄配置為指向您的搬瓦工的 IP 地址。
2、重啟 PHP 并重新加載 NGINX 配置:
sudo systemctl restart php7.2-fpm sudo nginx -s reload
3、測試 NGINX 配置:
sudo nginx -t
4、創(chuàng )建一個(gè)測試頁(yè)面來(lái)驗證 NGINX 可以運行 PHP 并連接到 MariaDB 數據庫。將“testuser
”和“password
”字段替換為您在上面創(chuàng )建的 MariaDB 憑據。
文件地址:/var/www/html/example.com/public_html/test.php
示例內容:
<html> <head> <h2>LEMP Stack Test</h2> </head> <body> <?php echo '<p>Hello,</p>'; // Define PHP variables for the MySQL connection. $servername = "localhost"; $username = "testuser"; $password = "password"; // Create a MySQL connection. $conn = mysqli_connect($servername, $username, $password); // Report if the connection fails or is successful. if (!$conn) { exit('<p>Your connection has failed.<p>' . mysqli_connect_error()); } echo '<p>You have connected successfully.</p>'; ?> </body> </html>
5、在 Web 瀏覽器中訪(fǎng)問(wèn) http://example.com/test.php
,它應該顯示您已成功連接。
如果您看到錯誤消息或根本無(wú)法加載頁(yè)面,請重新檢查您的配置。如果您的 DNS 更改尚未生效,您可以使用 curl
來(lái)測試您的頁(yè)面:
curl -H "Host: example.com" http://<your-ip-address>/test.php
一般輸出如下:
<html> <head> <h2>LEMP Stack Test</h2> </head> <body> <p>Hello,</p><p>You have connected successfully.</p></body> </html>
6、一旦建站環(huán)境正常工作,刪除測試文件:
sudo rm /var/www/html/example.com/public_html/test.php
內存 | CPU | SSD | 流量 | 帶寬 | 價(jià)格 | 購買(mǎi) |
1G | 2核 | 20G | 1.0T/月 | 2.5G | $50/季 | 鏈接 |
2G | 3核 | 40G | 2.0T/月 | 2.5G | $90/季 | 鏈接 |
4G | 4核 | 80G | 3.0T/月 | 2.5G | $57/月 | 鏈接 |
8G | 6核 | 160G | 5.0T/月 | 5.0G | $87/月 | 鏈接 |
16G | 8核 | 320G | 8.0T/月 | 10G | $160/月 | 鏈接 |
32G | 10核 | 640G | 10.0T/月 | 10G | $290/月 | 鏈接 |
64G | 12核 | 1280G | 12.0T/月 | 10G | $550/月 | 鏈接 |
內存 | CPU | 硬盤(pán) | 流量 | 價(jià)格 | 購買(mǎi) |
2G | 2核 | 40G | 500G/月 | $90/月 | 鏈接 |
4G | 4核 | 80G | 1.0T/月 | $156/月 | 鏈接 |
8G | 6核 | 160G | 2.0T/月 | $300/月 | 鏈接 |
16G | 8核 | 320G | 4.0T/月 | $590/月 | 鏈接 |
搬瓦工美西cn2 gt vps測試IP:65.49.215.48
內存 | CPU | SSD | 流量 | 帶寬 | 價(jià)格 | 購買(mǎi) |
1G | 1核 | 20G | 1.0T/月 | 1G | $50/年 | 鏈接 |
2G | 1核 | 40G | 2.0T/月 | 1G | $100/年 | 鏈接 |
4G | 2核 | 80G | 3.0T/月 | 1G | $60/季 | 鏈接 |
8G | 2核 | 160G | 5.0T/月 | 1G | $40/月 | 鏈接 |
16G | 3核 | 320G | 8.0T/月 | 1G | $80/月 | 鏈接 |
16G | 3核 | 320G | 12T/月 | 1G | $100/月 | 鏈接 |
16G | 3核 | 320G | 16T/月 | 1G | $130/月 | 鏈接 |
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站