本教程將向您展示如何在 Debian 10 Buster 上安裝 Nginx、MariaDB 和 PHP7.3(LEMP 堆棧)。軟件堆棧是一組捆綁的軟件工具。 LEMP代表 電梯輸入, nginx, 儀表詠嘆調數據庫 /儀表使用 ySQL 凜惠普,這些都是開源的,可以免費使用。這是一個非常常見的軟件堆棧,可增強動態網站和 Web 應用程序。 Linux是操作系統,Nginx是Web服務器,MariaDB/MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。
所有四個組件都是免費和開源的。但是,選擇 MariaDB 而不是 MySQL,因為 MySQL 目前歸 Oracle 所有,Oracle 可能會將其變成一個封閉源代碼產品。
在 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 堆棧與往常一樣,如果您覺得本文有用,請訂閱我們的免費通訊以獲取新教程。照顧好自己?