本教程展示瞭如何在 Debian 10 Buster 上安裝 Nginx、MariaDB 和 PHP7.3(LEMP 堆棧)。軟件堆棧是一組捆綁在一起的軟件工具。 LEMP代表 電梯輸入, nginx, 儀表詠嘆調數據庫 /米和 凜惠普,它們都是開源的,可以免費使用。它是一種非常流行的軟件堆棧,可為動態網站和 Web 應用程序提供支持。 Linux是操作系統,Nginx是Web服務器,MariaDB/MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。
所有四個組件都是免費和開源的。然而,MySQL 現在歸 Oracle 所有,Oracle 可能會將 MySQL 設為閉源產品,所以我會選擇 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 地址。您應該會看到默認的“歡迎使用 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 網絡服務器是 /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 root 密碼時,按 Enter 鍵,因為沒有設置 root 密碼。然後輸入 什麼時候 設置 MariaDB 服務器的根密碼。
然後只需按 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 block就像一個虛擬主機Apache,默認的server block是不夠跑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 服務配置。
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 堆棧與往常一樣,如果您發現本文有幫助,請註冊我們的免費時事通訊以獲取新教程。照顧好自己?