如何在 Debian 10 buster 服務器/桌面上安裝 LEMP 堆棧


本教程展示瞭如何在 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.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 網絡服務器是 /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 服務器的根密碼。

如何安裝 LEMP stack debian 10 buster

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

安裝 debian 10 lemp 堆棧

默認情況下,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服務器塊就像一個虛擬主機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 端口 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.phplocalhost/info.php.

顯示服務器的 PHP 信息。這意味著 PHP 腳本可以毫無問題地在 Nginx Web 服務器上運行。 您可以看到 Zend OPcache 已啟用。

debian 10 剋星 nginx php-fpm php7.3

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 堆棧與往常一樣,如果您發現本文有幫助,請註冊我們的免費時事通訊以獲取新教程。照顧好自己?