本教程將向您展示如何在 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.1
還 localhost
它位於瀏覽器的地址欄中。將顯示歡迎消息。這意味著 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
大寫字母。這意味著這是默認答案。 )。
您現在可以通過運行以下命令並輸入您的 MariaDB 根密碼來登錄 MariaDB shell。
mysql -u root -p
完成
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.php
還 localhost/info.php
它位於瀏覽器的地址欄中。顯示服務器的 PHP 信息。這意味著 PHP 腳本可以成功運行 Apache Web 服務器。
如果 RHEL 8 / CentOS 正在遠程服務器上運行,請鍵入: server-ip-address/info.php
它位於瀏覽器的地址欄中。交換 sever-ip-address
請使用真實IP地址。
如果您的瀏覽器無法顯示 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
我們希望您發現本教程很有用。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?