如何在 Rocky Linux 8 上安裝 LEMP 堆棧

術語 LEMP 是首字母縮寫詞 輸入法, N金克斯, ariaDB 或 ySQL 和 生命值。 這組軟件用於開發和部署用 PHP 編寫的 Web 應用程序。

對於 LEMP 堆棧 – Ngnix 作為網絡服務器,MariaDB 或 MySQL 為網站提供數據庫,PHP 幫助提供 PHP 頁面,Linux 提供操作系統。

流行的 CMS,如 WordPress、Joomla、Drupal 使用 LEMP 堆棧。 該堆棧有助於託管高流量和可擴展的網站。

在本教程中,我們將學習如何 安裝 LEMP 堆棧洛奇 Linux 8.4. 另外,學會 配置 Nginx 服務器塊 託管您的域。

第 1 步:安裝 Nginx

Nginx 是一個免費的、開源的、高性能的 Web 服務器。 LEMP 堆棧使用 Nginx 來服務 HTTP 流量。

首先,更新 Rocky Linux 上的所有可用軟件包。

$ sudo dnf upgrade

注意:dnf update 是一個不推薦使用的別名。

現在, 安裝 Nginx 在 Rocky Linux 上。

$ sudo dnf install nginx

安裝 Nginx 後,啟動 Nginx 服務。

$ sudo systemctl start nginx

要驗證 Nginx 服務的狀態,請鍵入:

$ sudo systemctl status nginx

現在確保在啟動時啟用 Nginx。

$ sudo systemctl enable nginx

要檢查已安裝的 Nginx 版本,請鍵入:

$ nginx -v

輸出:

nginx version: nginx/1.14.1

輸出顯示我們已經安裝 nginx 1.14.1 版本。

在防火牆上允許 HTTP 和 HTTPS 流量(以防您想使用 SSL 加密網絡服務器)。

$ sudo firewall-cmd --permanent --zone=public --add-service=http
$ sudo firewall-cmd --permanent --zone=public --add-service=https

要使更改生效,請重新加載防火牆服務:

$ sudo firewall-cmd --reload

您可以通過列出當前的防火牆設置來驗證:

$ sudo firewall-cmd --permanent --list-all

打開瀏覽器並輸入服務器 IP 或域名以查看 Rocky Linux 上的 Nginx 默認頁面。 在 Rocky Linux 上,默認的 Nginx 網頁位於 /usr/share/nginx/html。

Rocky Linux 上的 Nginx 默認網頁

第 2 步:安裝 MariaDB

MariaDB 數據庫是來自 Oracle 的 MySQL 的一個分支。 MariaDB 顯示出比 MySQL 更高的性能並提供更好的存儲引擎。 在這裡,我們將安裝 MariaDB 來存儲您網站的數據。

安裝 MariaDB 在 Rocky Linux 上,鍵入:

$ sudo dnf install mariadb-server mariadb

要啟動 MariaDB 服務,請鍵入:

$ sudo systemctl start mariadb

現在驗證 MariaDB 狀態。

$ sudo systemctl status mariadb

MariaDB 現在應該已經啟動並運行了。 要在系統啟動時啟用 MariaDB,請鍵入

$ sudo systemctl enable mariadb

全新的 MariaDB 安裝並不安全。 MariaDB 軟件包預裝了一個腳本,有助於提高數據庫服務器的安全性。

要啟動腳本,請鍵入:

$ sudo mysql_secure_installation

MariaDB 設置新的 root 密碼
安全的 MariaDB

MariaDB 上的新安裝的 root 密碼為空。 該腳本允許設置新的 root 密碼、刪除匿名用戶、禁止 root 遠程登錄、刪除測試數據庫。

現在您可以使用我們現在設置的 root 密碼登錄 MariaDB 服務器。

$ sudo mysql -u root -p

輸出:

Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 16
Server version: 10.3.28-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]>

輸出顯示我們已經安裝了 MariaDB 10.3 版本並獲得了一個 shell 來管理數據庫操作。

第 3 步:安裝 PHP

PHP 主要用於為網絡服務器生成動態內容。 在撰寫本教程時,Rocky Linux 8 AppStream 附帶 PHP 版本 7.2、7.3 和 7.4。 默認版本為 PHP 7.2。 要安裝最新版本的 PHP,請啟用免費的 Remi 存儲庫。

列出可用的 PHP 版本:

$ sudo dnf module list php

輸出:

Last metadata expiration check: 2:57:54 ago on Fri 06 Aug 2021 02:16:31 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

要啟用 PHP 7.4 模塊,請鍵入:

$ sudo dnf module enable php:7.4

Nginx 需要 PHP-FPM(PHP fastCGI 進程管理器),它是 PHP 和網絡服務器之間的解釋器,以獲得更好的性能。 現在我們可以 安裝 PHP, PHP-FPM,以及最常見的 PHP 擴展。

$ sudo dnf install php php-fpm php-cli php-gd php-curl php-zip php-mbstring php-opcache php-intl php-mysqlnd

要驗證,請檢查 PHP 版本:

$ php -v

輸出:

PHP 7.4.6 (cli) (built: May 12 2020 08:09:15) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.6, Copyright (c), by Zend Technologies

從輸出中可以看到它已經安裝了 PHP 7.4 版本。

現在讓我們檢查如何配置 Nginx 以使用 PHP-FPM 執行 PHP。

為此,我們必須在 /etc/php-fpm.d/www.conf 中的 PHP-FPM 配置中進行一些更改。

在您喜歡的編輯器中打開 PHP-FPM 配置文件。

$ sudo vi /etc/php-fpm.d/www.conf

改變兩個變量 usergroup 從阿帕奇到 nginx.

user = nginx
group = nginx

現在啟動 PHP-FPM,輸入:

$ sudo systemctl start php-fpm

在系統重啟時啟用 PHP-FPM,輸入:

$ sudo systemctl enable php-fpm

現在你可以檢查它的狀態,輸入:

$ sudo systemctl status php-fpm

PHP-FPM 服務狀態

最後,重新啟動 Ngnix 以加載 php-fpm 所做的配置更改:

$ sudo systemctl restart nginx

現在我們可以通過將 info.php 腳本添加到默認的 webroot 目錄來驗證 PHP、擴展、FPM。

$ sudo vi /usr/share/nginx/html/info.php

將以下內容添加到 info.php 文件中:

<?php

phpinfo();

?>

重啟 Nginx 使更改生效

$ sudo systemctl restart nginx

打開瀏覽器並訪問域名或服務器 IP,然後訪問 info.php。

https://server-ip-or-domain-name.com/info.php

php.info 頁面

建議驗證後刪除php.info頁面,因為您不希望外界看到您的PHP信息。

現在我們在 Rocky Linux 8 上完成了 LEMP 堆棧的安裝。讓我們也檢查一下如何配置 Nginx 服務器塊來託管一個 example 網站。

第 4 步:在 Rocky Linux 中配置 Nginx 服務器塊

在 Nginx 中,服務器塊定義特定域的設置。 每個網站都應該有一個包含網站文件的文檔根目錄。 文檔根目錄可以在任何你想要的地方創建。

我將為名為的網站創建文檔根目錄 example.com 在 /var/www/example.com/public_html。

首先創建文檔根目錄,輸入:

$ sudo mkdir -p /var/www/example.com/public_html

在文檔根目錄中創建一個 index.html 文件並添加以下基本 HTML 內容。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome</title>
</head>
<body>
<h1>Congrats! The example.com website is working</h1>
</body>
</html>

將文檔根目錄和所有文件的所有權更改為 Nginx 用戶,即 www-data。

$ sudo chown -R nginx: /var/www/example.com

現在讓我們創建 Nginx 服務器塊,它默認位於 /etc/nginx/conf.d 目錄。 使用您喜歡的編輯器創建服務器塊文件。

$ sudo vi /etc/nginx/conf.d/example.com.conf

將以下內容添加到創建的文件中,替換 example.com 與您的域名。

server {
listen 80;

server_name example.com www.example.com;

root /var/www/example.com/public_html;

index index.html;

access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
}

檢查 nginx 配置是否有任何語法錯誤:

$ sudo nginx -t

輸出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

要使更改生效,請重新啟動 Nginx 服務:

$ sudo systemctl restart nginx

打開瀏覽器並導航到 https://example.com 查看我們創建的網頁。

example.com 測試網頁

結論

在本教程中,我們學習瞭如何在 Rocky Linux 8 上安裝 LEMP 堆棧。我們還學習瞭如何為您的域配置 Nginx 服務器塊。

感謝您的閱讀,請在下面的評論部分告訴我們您的建議。