如何在 CentOS 8 / RHEL 8 上安裝 LAMP 堆棧


本教程將向您展示如何在 CentOS 8 和 RHEL 8 上安裝 LAMP 堆棧。

什麼是 LAMP 堆棧?

軟件堆棧是一組捆綁的軟件工具。燈具代表 電梯輸入, 一種修補, 儀表詠嘆調數據庫 /儀表使用 ySQL 惠普,這些都是開源的。這是支持動態網站和 Web 應用程序的最常見的軟件堆棧。 Linux是操作系統,Apache是​​Web服務器,MariaDB/MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。

先決條件

您可以按照以下教程下載並安裝 RHEL8。

  • 如何免費下載和安裝 RHEL8

如果您正在尋找 VPS(虛擬專用服務器),您可以通過推薦鏈接註冊您的 Vultr 帳戶,並獲得 30 天以上的 50 美元免費信用。

在本教程中,您將使用 root 帳戶來管理管理任務。要切換到 root,請運行以下命令並輸入 root 密碼。

su -

第 1 步:更新軟件包

在安裝 LAMP 堆棧之前,我們建議您運行以下命令來更新存儲庫和軟件包。

dnf update

第 2 步:在 Apache CentOS 8 / RHEL8 上安裝 Web 服務器

輸入以下命令以安裝 Apache Web 服務器。這個 httpd-tools 此軟件包安裝有用的實用程序,例如 Apache HTTP Server Benchmark Tool (ab)。

dnf install httpd httpd-tools

安裝後,您可以使用以下命令啟動 Apache:

systemctl start httpd

運行以下命令讓 Apache 在系統啟動時自動啟動。

systemctl enable httpd

現在檢查您的狀態。

systemctl status httpd

輸出:

 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-10-12 06:43:15 UTC; 14s ago
     Docs: man:httpd.service(8)
 Main PID: 14515 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 5092)
   Memory: 24.8M
   CGroup: /system.slice/httpd.service
           ├─14515 /usr/sbin/httpd -DFOREGROUND
           ├─14516 /usr/sbin/httpd -DFOREGROUND
           ├─14517 /usr/sbin/httpd -DFOREGROUND
           ├─14518 /usr/sbin/httpd -DFOREGROUND
           └─14519 /usr/sbin/httpd -DFOREGROUND

“”效力“” 表示您可以驗證是否啟用了啟動時自動啟動並且 Apache 正在運行。

提示:如果運行上述命令後沒有立即退出。 您需要按“”qq“停下來。

檢查 Apache 版本。

httpd -v

輸出:

Server version: Apache/2.4.37 (centos)
Server built: Oct 7 2019 21:42:02

測試 Apache Web 服務器是否正常工作 index.html 默認文檔根目錄中的文件 (/var/www/html/) 使用以下命令。

echo "Welcome to this site!" > /var/www/html/index.html

如果您想在本地 CentOS 8 / RHEL 8 機器上安裝 LAMP,請輸入: 127.0.0.1localhost 它位於瀏覽器的地址欄中。將顯示歡迎消息。這意味著 Apache Web 服務器正在正常運行。

CentOS 8 / RHEL 8 默認禁用對端口 80 的公共訪問。要允許其他計算機訪問該網頁,您需要在 RHEL/CentOS 上使用 firewalld 動態防火牆管理器打開端口 80。通過運行以下命令打開端口 80:

firewall-cmd --permanent --zone=public --add-service=http

如果您稍後啟用 HTTPS Apache,您還需要打開端口 443。

firewall-cmd --permanent --zone=public --add-service=https

這個 --permanent 如果您選擇該選項,此防火牆規則將在系統重新啟動後保留。然後重新加載防火牆守護程序以使更改生效。

systemctl reload firewalld

Apache 網頁現已向公眾開放。

必須允許用戶 apache 作為網絡目錄的所有者。默認情況下,它歸 root 用戶所有。

chown apache:apache /var/www/html -R

默認情況下,Apache 使用系統主機名作為全局 ServerName.. 如果 DNS 無法解析系統主機名,執行後可能會看到類似以下的錯誤: sudo apachectl configtest 命令。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

你可以設置全局來解決這個問題 ServerName 對於阿帕奇。 安裝 Nano 命令行文本編輯器並使用它來創建新的配置文件。

sudo dnf install nano

sudo nano /etc/httpd/conf.d/servername.conf

將以下行添加到此文件中:

ServerName localhost

保存並關閉文件。 按下以使用 Nano 文本編輯器保存文件 Ctrl+O, 按 Enter 確認。按退出 Ctrl+X..重新加載 Apache 以使更改生效。

sudo systemctl reload httpd

現在當你跑 sudo apachectl configtest 如果再次運行該命令,您將不會看到上述錯誤消息。

第三步:在 CentOS 8 / RHEL8 上安裝 MariaDB 數據庫服務器

MariaDB 是 MySQL 的替代品。它是由 MySQL 團隊的一位前成員開發的,他擔心 Oracle 會將 MySQL 變成一個封閉源代碼的產品。使用以下命令在 CentOS 8 / RHEL8 上鍵入安裝 MariaDB:

dnf install mariadb-server mariadb -y

安裝完成後,您需要開始。

systemctl start mariadb

系統引導時啟用自動引導。

systemctl enable mariadb

檢查狀態:

systemctl status mariadb

輸出:

 mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-10-12 09:02:53 UTC; 33s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 18608 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 5092)
   Memory: 77.0M
   CGroup: /system.slice/mariadb.service
           └─18608 /usr/libexec/mysqld --basedir=/usr

“”效力表示啟動時自動啟動已啟用,並且 MariaDB 服務器正在運行。接下來,您需要運行一個安全腳本。

mysql_secure_installation

當提示輸入 MariaDB 根密碼時,請按 Enter,因為尚未設置根密碼。然後輸入 y 設置 MariaDB 服務器的 root 密碼。

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

mysql_secure_installation rhel8 centos8

您現在可以通過運行以下命令並輸入 MariaDB 根密碼來登錄 MariaDB shell。

mysql -u root -p

mariadb shell登錄

完成

exit;

第 4 步:在 CentOS 8 / RHEL 8 上安裝 PHP

使用以下命令安裝 PHP 和一些常用模塊:

dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y

Apache CentOS 8 / RHEL 8 web 服務器默認使用 PHP-FPM 而不是 mod_php 來執行 PHP 代碼,所以用上面的命令, php-fpm..安裝完成後,您需要開始。

systemctl start php-fpm

系統引導時啟用自動引導。

systemctl enable php-fpm

檢查狀態。

systemctl status php-fpm

輸出:

 php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-10-12 09:54:37 UTC; 3s ago
 Main PID: 19755 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 5092)
   Memory: 24.5M
   CGroup: /system.slice/php-fpm.service
           ├─19755 php-fpm: master process (/etc/php-fpm.conf)
           ├─19757 php-fpm: pool www
           ├─19758 php-fpm: pool www
           ├─19759 php-fpm: pool www
           ├─19760 php-fpm: pool www
           └─19761 php-fpm: pool www

“”效力“” 表示您可以看到啟動時自動啟動已啟用並且 PHP-FPM 正在運行。這是 php-fpm 包安裝1 php.conf 記錄 /etc/httpd/conf.d/ 由於是目錄,需要重啟 Apache Web 服務器才能運行 PHP 代碼。

systemctl restart httpd

您還需要通過運行以下命令來指示 SELinux 允許 Apache 通過 PHP-FPM 執行 PHP 代碼:

setsebool -P httpd_execmem 1

第 5 步:測試 PHP

PHP-FPM 測試 Apache Web 服務器, info.php 文件根目錄中的文件。

nano /var/www/html/info.php

將以下 PHP 代碼粘貼到文件中。

<?php phpinfo(); ?>

保存並關閉文件。如果您在本地 CentOS 8 / RHEL 8 服務器上安裝了 LAMP 堆棧,請鍵入: 127.0.0.1/info.phplocalhost/info.php 它位於瀏覽器的地址欄中。顯示服務器的 PHP 信息。這意味著 PHP 腳本可以成功運行 Apache Web 服務器。

如果 RHEL 8 / CentOS 正在遠程服務器上運行,請鍵入: server-ip-address/info.php 它位於瀏覽器的地址欄中。交換 sever-ip-address 請使用真實IP地址。

PHP-FPM-RHEL-8-CentOS-8

如果您的瀏覽器無法顯示 PHP 信息但係統提示您下載它 信息.php 只需重新啟動文件、Apache 和 PHP-FPM。

sudo systemctl restart httpd php-fpm

然後您應該能夠在您的網絡瀏覽器中看到 PHP 信息。

Apache 會自動重啟

如果由於某種原因 Apache 進程被殺死,您需要運行以下命令來重新啟動該進程:

sudo systemctl restart httpd

您可以編輯它以自動重新啟動 Apache,而不是手動鍵入此命令。 httpd.service systemd 服務單元。我創建了另一個目錄來覆蓋默認的 systemd 服務配置。

sudo mkdir -p /etc/systemd/system/httpd.service.d/

然後在這個目錄下創建一個文件。

sudo nano /etc/systemd/system/httpd.service.d/restart.conf

將以下行添加到文件中。這將導致 Apache 在檢測到故障 5 秒後自動重新啟動。

[Service]
Restart=always
RestartSec=5s

保存並關閉文件。然後重新加載systemd。

sudo systemctl daemon-reload

要查看這是否有效,請殺死 Apache 並執行以下操作:

sudo pkill httpd

接下來,檢查 Apache 的狀態。 Apache 將自動重啟。

systemctl status httpd

允許 Apache 建立出站網絡連接

默認情況下,SELinux 阻止 Apache 建立出站網絡連接。 如果 Apache 需要向外部網絡服務發送請求,請運行以下命令以允許它:

setsebool -P httpd_can_network_connect on

包起來

恭喜!您已成功安裝 Apache、Red Hat 8 或 CentOS 8、MariaDB 和 PHP 7.2。為了服務器安全必須刪除 info.php 立即歸檔,以免被黑客看到。

rm /var/www/html/info.php

我們希望您發現本教程很有用。與往常一樣,如果您覺得這篇文章有用,請訂閱我們的免費時事通訊以獲取更多提示和技巧。照顧好自己?



Source link