本教程將向您展示如何在 Debian 10 Buster 上安裝 Nginx、MariaDB 和 PHP7.3(LEMP 堆棧)。軟件堆棧是一組捆綁的軟件工具。 LEMP代表 電梯輸入, nginx, 儀表詠嘆調數據庫 /儀表使用 ySQL 凜惠普,這些都是開源的,可以免費使用。這是一個非常常見的軟件堆棧,可增強動態網站和 Web 應用程序。 Linux是操作系統,Nginx是Web服務器,MariaDB/MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。
所有四個組件都是免費和開源的。但是,MySQL 目前歸 Oracle 所有,這可能會將其變成一個封閉源代碼產品,因此選擇 MariaDB 而不是 MySQL。
在 Debian 10 Buster 上安裝 LEMP 堆棧的先決條件
要學習本教程,您必須在本地計算機或遠程服務器上運行 Debian 10 操作系統。
如果您正在尋找 VPS(虛擬專用服務器),您可以通過此特殊鏈接註冊您的 Vultr 帳戶並獲得 50 美元的免費信用額度(僅限新用戶)。此外,如果您需要使用域名配置 LEMP 堆棧,我們建議您從 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 地址。將顯示默認的 Welcome song inx 網頁。這意味著 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 根密碼的情況下通過運行以下命令登錄:
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 上安裝 PHP 7.3
在撰寫本文時,PHP 7.3 是 PHP 的最新穩定版本,其性能略優於以前的版本。使用以下命令從 Debian 10 存儲庫安裝 PHP 7.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 和 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 服務器上成功運行。 您可以看到 ZendOPcache 已啟用。
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 堆棧與往常一樣,如果您覺得本文有用,請訂閱我們的免費通訊以獲取新教程。照顧好自己?