本教程展示瞭如何在 Debian 10 Buster 上安裝 Nginx、MariaDB 和 PHP7.3(LEMP 堆棧)。軟件堆棧是一組捆綁的軟件工具。腫塊代表 電梯輸入, nginx, 米詠嘆調數據庫 /米ySQL 和 凜HP,它們都是開源的並且可以免費使用。它是一個非常流行的軟件堆棧,可為動態網站和 Web 應用程序提供支持。 Linux是操作系統,Nginx是Web服務器,MariaDB/MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。
所有四個組件都是免費和開源的。但是 MySQL 現在歸 Oracle 所有,Oracle 可能會讓 MySQL 成為閉源產品,所以我們選擇 MariaDB 而不是 MySQL。
在 Debian 10 Buster 上安裝 LEMP 堆棧的先決條件
要學習本教程,您的本地計算機或遠程服務器必須運行 Debian 10 操作系統。
如果您正在尋找 VPS(虛擬專用服務器),您可以通過此特殊鏈接在 Vultr 註冊一個帳戶並獲得 50 美元的免費信用額度(僅限新用戶)。此外,如果您需要使用域名設置 LEMP 堆棧,我們建議您從 NameCheap 以更便宜的價格購買域名。 NameCheap 免費提供終身 whois 隱私保護。
請注意,您需要 root 權限才能在 Debian 上安裝軟件。你可以加 須藤 在命令的開頭,或使用 su -
使用以下命令切換到 root 用戶:
第 1 步:更新您的軟件包
建議在安裝 LEMP 堆棧之前更新存儲庫和軟件包。 在 Debian 10 操作系統上運行以下命令:
sudo apt update sudo apt upgrade
第 2 步:在 Debian 10 上安裝 Nginx Web 服務器
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 地址。您應該會看到默認的“歡迎使用 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/
作為網絡根,由 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 服務器的 root 密碼。
然後只需按 Enter 即可回答所有剩餘的問題。這將刪除匿名用戶,禁用遠程 root 登錄,並刪除測試數據庫。這一步是 MariaDB 數據庫安全的基本要求。 (注意字母 Y
大寫字母。這是默認答案。 )
默認情況下,Debian 的 MaraiDB 包使用 unix_socket 來驗證用戶登錄。這基本上意味著您可以使用您的操作系統用戶名和密碼登錄到 MariaDB 控制台。因此,您可以在不指定 MariaDB root 密碼的情況下運行以下命令登錄。
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 server 塊就像一個虛擬主機 Apache,我們不使用默認的 server 塊,因為它不足以運行 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.service
systemd 服務單元。我創建了另一個目錄來覆蓋默認的 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 堆棧與往常一樣,如果您發現本文對您有幫助,請註冊我們的免費通訊以獲取新教程。照顧好自己?