如何在Debian 10 Buster Server / Desktop上安裝LEMP Stack
本教程將向您展示如何在Debian 10 Buster上安裝Nginx,MariaDB和PHP7.3(LEMP堆棧)。 軟件堆棧是捆綁在一起的一組軟件工具。 LEMP代表 大號inux, Nginx的, 中號ariaDB /中號ySQL和 PHP,所有這些都是開源的,可以免費使用。 它是為動態網站和Web應用程序提供動力的非常常見的軟件堆棧。 Linux是操作系統。 Nginx是Web服務器; MariaDB / MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。
所有這四個組件都是免費的和開源的。 但是,由於MySQL現在由Oracle擁有,並且Oracle很有可能將其轉變為開源產品,因此我們將選擇MariaDB而不是MySQL。
在Debian 10 Buster上安裝LEMP Stack的前提條件
要遵循本教程,您需要在本地計算機或遠程服務器上運行的Debian 10 OS。
如果您正在尋找VPS(虛擬專用服務器),則可以通過此特殊鏈接在Vultr註冊帳戶,以獲得$ 50的免費信用(僅限新用戶)。 而且,如果您需要使用域名設置LEMP堆棧,我建議您從NameCheap購買域名,因為價格低廉,而且終身免費提供Whois隱私保護。
請注意,在Debian上安裝軟件時,您需要具有root特權。 你可以加 須藤 在命令開頭或使用 su -
命令切換到root用戶。
步驟1:更新軟件包
在安裝LEMP堆棧之前,最好先更新存儲庫和軟件包。 在您的Debian 10操作系統上運行以下命令。
sudo apt update sudo apt upgrade
步驟2:在Debian 10上安裝Nginx Web Server
Nginx是一種高性能的Web服務器,如今非常流行。 它也可以用作反向代理和緩存服務器。 輸入以下命令以安裝Nginx Web服務器。
sudo apt install nginx
安裝後,應自動啟動Nginx。 檢查其狀態 systemctl
。
systemctl status nginx
樣本輸出:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en Active: active (running) since Sat 2019-08-10 06:20:26 UTC; 54s ago Docs: man:nginx(8) Main PID: 19713 (nginx) Tasks: 2 (limit: 1149) Memory: 4.6M CGroup: /system.slice/nginx.service ├─19713 nginx: master process /usr/sbin/nginx -g daemon on; master_pr └─19714 nginx: worker process
提示:如果上述命令沒有立即退出,則可以按Q鍵來獲得對終端窗口的控制。
如果它沒有運行,請使用systemctl來啟動它。
sudo systemctl start nginx
使Nginx在啟動時自動啟動也是一個好主意。
sudo systemctl enable nginx
檢查Nginx版本:
sudo nginx -v
輸出:
nginx version: nginx/1.14.2
現在,在瀏覽器地址欄中輸入Debian 10服務器的公共IP地址。 您應該看到默認的“ Welcome to nginx”網頁,這意味着Nginx Web服務器正在正常運行。 如果要在本地Debian 10計算機上安裝LEMP,則應輸入 127.0.0.1
要麼 localhost
在瀏覽器地址欄中。
如果連接被拒絕或無法完成,則可能有防火牆阻止了向TCP端口80的傳入請求。如果使用iptables防火牆,則需要運行以下命令來打開TCP端口80。
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
如果使用的是UFW防火牆,請運行此命令打開TCP端口80。
sudo ufw allow http
現在我們需要設置 www-data
(Nginx用戶)作為文檔根目錄(也稱為Web根目錄)的所有者。 默認情況下,它由root用戶擁有。 (請注意,Nginx默認使用 /usr/share/nginx/html/
作為Web根,而Apache Web服務器使用 /var/www/html/
當我們紮根。)
sudo chown www-data:www-data /usr/share/nginx/html/ -R
步驟3:在Debian 10上安裝MariaDB數據庫服務器
MariaDB是MySQL的直接替代品。 輸入以下命令以將其安裝在Debian 10上。
sudo apt install mariadb-server mariadb-client
安裝後,MariaDB服務器應自動啟動。 使用 系統控制 檢查其狀態。
systemctl status mariadb
輸出:
● mariadb.service - MariaDB 10.3.15 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: Active: active (running) since Sat 2019-08-10 06:38:58 UTC; 13s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 20669 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 1149) Memory: 77.7M CGroup: /system.slice/mariadb.service └─20669 /usr/sbin/mysqld
如果它沒有運行,請使用以下命令啟動它:
sudo systemctl start mariadb
要使MariaDB在啟動時自動啟動,請運行
sudo systemctl enable mariadb
現在運行安裝後安全腳本。
sudo mysql_secure_installation
當要求您輸入MariaDB根密碼時,請按Enter鍵,因為尚未設置根密碼。 然後輸入 ÿ 設置MariaDB服務器的根密碼。
接下來,您只需按Enter即可回答所有剩餘的問題。 這將刪除匿名用戶,禁用遠程root登錄並刪除測試數據庫。 此步驟是MariaDB數據庫安全性的基本要求。 (注意,信 Y
大寫,這是默認答案。)
默認情況下,Debian上的MaraiDB軟件包使用unix_socket來認證用戶登錄,這基本上意味着您可以使用操作系統的用戶名和密碼登錄MariaDB控制台。 因此,您可以運行以下命令來登錄,而無需提供MariaDB根密碼。
sudo mariadb -u root
要麼
sudo mysql -u root
要退出,請運行
exit;
檢查MariaDB服務器版本信息。
mariadb --version
輸出:
mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
步驟4:在Debian 10上安裝PHP7.3
在撰寫本文時,PHP7.3是PHP的最新穩定版本,與以前的版本相比,性能稍有改善。 輸入以下命令以從Debian 10存儲庫安裝PHP7.3和一些常見的PHP擴展。
sudo apt install php7.3 php7.3-fpm php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
檢查PHP版本信息。
php --version
輸出:
PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
現在啟動php7.3-fpm。
sudo systemctl start php7.3-fpm
在啟動時啟用自動啟動。
sudo systemctl enable php7.3-fpm
檢查狀態:
systemctl status php7.3-fpm
步驟5:創建一個Nginx服務器塊
Nginx服務器塊就像Apache中的虛擬主機。 我們將不使用默認服務器塊,因為它不足以運行PHP代碼,並且如果我們對其進行修改,它將變得一團糟。 因此,刪除 default
在符號鏈接 sites-enabled
通過運行以下命令創建目錄。 (它仍然可以作為 /etc/nginx/sites-available/default
)
sudo rm /etc/nginx/sites-enabled/default
然後在下面創建一個全新的服務器阻止文件 /etc/nginx/conf.d/ 目錄,其中包含命令行文本編輯器,例如Nano。
sudo nano /etc/nginx/conf.d/default.conf
將以下文本粘貼到文件中。 以下代碼片段將使Nginx使用通用服務器名稱在IPv4端口80和IPv6端口80上進行偵聽。
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ .php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /.ht { access_log off; log_not_found off; deny all; } }
保存並關閉文件。 (要在Nano文本編輯器中保存文件,請按 Ctrl+O
,然後按Enter確認。 要退出,請按 Ctrl+X
。)然後測試Nginx配置。
sudo nginx -t
如果測試成功,請重新加載Nginx。
sudo systemctl reload nginx
步驟6:測試PHP
要使用Nginx服務器測試PHP腳本,我們需要創建一個 info.php
Web根目錄中的文件。
sudo nano /usr/share/nginx/html/info.php
將以下PHP代碼粘貼到文件中。
<?php phpinfo(); ?>
保存並關閉文件。
現在,在瀏覽器地址欄中,輸入 server-ip-address/info.php
。 更換 sever-ip-address
與您的實際IP。 如果您在本地計算機上遵循本教程,請輸入 127.0.0.1/info.php
要麼 localhost/info.php
。
您應該看到服務器的PHP信息。 這意味着PHP腳本可以在Nginx Web服務器上正常運行。 您可以發現Zend OPcache已啟用。
Nginx自動重啟
如果由於某種原因您的Nginx進程被殺死,則需要運行以下命令來重新啟動它。
sudo systemctl restart nginx
無需手動輸入此命令,我們可以通過編輯Nginx使Nginx自動重啟 nginx.service
系統服務單元。 要覆蓋默認的systemd服務配置,我們創建一個單獨的目錄。
sudo mkdir -p /etc/systemd/system/nginx.service.d/
然後在此目錄下創建一個文件。
sudo nano /etc/systemd/system/nginx.service.d/restart.conf
在文件中添加以下行,這將使Nginx在檢測到故障後5秒鐘自動重新啟動。
[Service] Restart=always RestartSec=5s
保存並關閉文件。 然後重新加載systemd。
sudo systemctl daemon-reload
要檢查是否可行,請使用以下命令殺死Nginx:
sudo pkill nginx
然後檢查Nginx的狀態。 您會發現Nginx自動重啟。
systemctl status nginx
包起來
恭喜! 您已在Debian 10 Buster上成功安裝了Nginx,MariaDB和PHP7.3。 為了確保服務器的安全,您現在應該刪除info.php文件以防止窺視。
sudo rm /usr/share/nginx/html/info.php
希望本教程對您有所幫助 在Debian 10 Buster上安裝LEMP堆棧。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取新教程。 保重🙂