本教程將向您展示如何在 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.1localhost 它位於瀏覽器的地址欄中。

如果連接被拒絕或無法完成,防火牆可能會阻止傳入 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 密碼。

如何安裝 LEMP 堆棧 debian10 buster

然後,您只需按 Enter 即可回答所有剩餘的問題。這將刪除匿名用戶,禁用遠程 root 登錄,並刪除測試數據庫。這一步是 MariaDB 數據庫安全的基本要求。 (注意字母 Y 大寫字母。這意味著這是默認答案。 )。

安裝 Debian 10 lemp 堆棧

默認情況下,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.phplocalhost/info.php..

顯示服務器的 PHP 信息。這意味著 PHP 腳本可以在 Nginx Web 服務器上成功運行。 您可以看到 ZendOPcache 已啟用。

Debian 10 劇透 nginxphp-fpmphp7.3

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 堆棧與往常一樣,如果您覺得本文有用,請訂閱我們的免費通訊以獲取新教程。照顧好自己?