本教程展示瞭如何在 Ubuntu 20.04 LTS 上安裝 LAMP 堆棧。軟件堆棧是一組捆綁的軟件工具。 LAMP 代表 Linux、Apache、MariaDB/MySQL 和 PHP,所有這些都是開源的並且可以免費使用。這是支持動態網站和 Web 應用程序的最流行的軟件堆棧。 Linux 是操作系統,Apache 是 Web 服務器,MariaDB/MySQL 是數據庫服務器,PHP 是生成動態網頁的服務器端腳本語言。
先決條件
要學習本教程,您需要在本地計算機或遠程服務器上運行 Ubuntu 20.04 操作系統。
如果您正在尋找 VPS(虛擬專用服務器),您可以通過此特殊鏈接在 DigitalOcean 上註冊一個帳戶,並獲得 50 美元的免費積分。 (僅限新用戶)。如果您已經是 DigitalOcean 用戶,您可以通過此特殊鏈接註冊 Vultr 帳戶並獲得 50 美元的免費積分(僅限新用戶)。
如果您需要使用域名設置 LAMP 堆棧,我們建議您從 NameCheap 購買域名。因為它便宜並且提供終身免費的whois隱私保護。
第 1 步:更新您的軟件包
我們建議在安裝 LAMP 堆棧之前更新您的存儲庫和軟件包。 在 Ubuntu 20.04 操作系統上運行以下命令:
sudo apt update sudo apt upgrade
第 2 步:安裝 Apache Web 服務器
以下命令安裝 Apache Web 服務器。這個 apache2-utils
該軟件包安裝有用的實用程序,例如 Apache HTTP Server Benchmarking Tool (ab)。
sudo apt install -y apache2 apache2-utils
安裝後,Apache 會自動啟動。檢查狀態 systemctl
.
systemctl status apache2
示例輸出:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-04-11 11:31:31 CST; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 53003 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 53011 (apache2) Tasks: 55 (limit: 19072) Memory: 6.4M CGroup: /system.slice/apache2.service ├─53011 /usr/sbin/apache2 -k start ├─53012 /usr/sbin/apache2 -k start └─53013 /usr/sbin/apache2 -k start
提示:如果上述命令沒有立即退出,您可以按 Q 重新獲得對終端的控制權。
如果它沒有運行,請使用 systemctl 啟動它。
sudo systemctl start apache2
讓 Apache 在系統啟動時自動啟動也是一個好主意。
sudo systemctl enable apache2
檢查您的 Apache 版本。
apache2 -v
輸出:
Server version: Apache/2.4.41 (Ubuntu) Server built: 2020-03-05T18:51:00
現在在瀏覽器的地址欄中輸入 Ubuntu 20.04 服務器的公共 IP 地址。 出現“它有效!”網頁。這意味著 Apache Web 服務器工作正常。 要在本地 Ubuntu 20.04 機器上安裝 LAMP,請鍵入: 127.0.0.1
還 localhost
在瀏覽器的地址欄中。
如果連接被拒絕或無法完成,您的防火牆可能會阻止傳入 TCP 端口 80 的請求。 如果您使用的是 iptables 防火牆,則需要通過運行以下命令打開 TCP 端口 80:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
如果您使用的是 UFW 防火牆,請運行此命令以打開 TCP 端口 80。
sudo ufw allow http
然後你必須設置 www-data
(Apache 用戶)作為文檔根(也稱為 Web 根)的所有者。默認情況下,它歸 root 用戶所有。
sudo chown www-data:www-data /var/www/html/ -R
默認情況下,Apache 使用系統主機名作為全局。 ServerName
如果您的系統的主機名不是 DNS 可解析的,您可能會在運行後看到類似於以下內容的錯誤: sudo apache2ctl -t
命令。
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
對於 Apache,使用 Nano 命令行文本編輯器創建一個新的配置文件。
sudo nano /etc/apache2/conf-available/servername.conf
將以下行添加到此文件中:
ServerName localhost
保存並關閉文件。 按 將文件保存在 Nano 文本編輯器中。 Ctrl+O
單擊並按 Enter 確認。按退出 Ctrl+X
. 然後啟用此配置文件。
sudo a2enconf servername.conf
重新加載 Apache 以使更改生效。
sudo systemctl reload apache2
現在如果你跑 sudo apache2ctl -t
再次運行該命令,上述錯誤消息應該會消失。
第 3 步:安裝 MariaDB 數據庫服務器
MariaDB 是 MySQL 的替代品。它是由 MySQL 團隊的一位前成員開發的,他擔心 Oracle 會將 MySQL 變成一個封閉源代碼的產品。使用以下命令輸入在 Ubuntu 20.04 上安裝 MariaDB:
sudo apt install mariadb-server mariadb-client
安裝後,MariaDB 服務器會自動啟動。利用 系統控制 請檢查其狀態。
systemctl status mariadb
輸出:
● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 9161 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 9451) Memory: 64.7M CGroup: /system.slice/mariadb.service └─9161 /usr/sbin/mysqld
如果它沒有運行,請使用以下命令啟動它:
sudo systemctl start mariadb
要在啟動時自動啟動 MariaDB:
sudo systemctl enable mariadb
現在運行安裝後安全腳本。
sudo mysql_secure_installation
系統將提示您輸入 MariaDB 根密碼,請按 Enter,因為沒有設置根密碼。然後輸入 什麼時候 設置 MariaDB 服務器的 root 密碼。
然後按 Enter 並回答所有剩餘的問題。這將刪除匿名用戶,禁用遠程 root 登錄,並刪除測試數據庫。這一步是 MariaDB 數據庫安全的基本要求。 (注意 Y 是大寫的,這意味著它是默認答案。)
默認情況下,Ubuntu 的 MariaDB 包是 unix_socket
驗證用戶登錄。這基本上意味著您可以使用您的操作系統用戶名和密碼登錄到 MariaDB 控制台。因此,您可以在不指定 MariaDB root 密碼的情況下運行以下命令登錄。
sudo mariadb -u root
要退出,運行
exit;
檢查 MariaDB 服務器版本信息。
mariadb --version
如您所見,已安裝 MariaDB 10.3.22。
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
第 4 步:安裝 PHP7.4
在撰寫本文時,PHP7.4 是 PHP 的最新穩定版本,性能略好於 PHP7.3。以下命令將安裝 PHP7.4 和一些流行的 PHP 模塊。
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
啟用 Apache php7.4 模塊並重新啟動 Apache Web 服務器。
sudo a2enmod php7.4 sudo systemctl restart apache2
檢查 PHP 版本信息。
php --version
輸出:
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
要測試 PHP 腳本 Apache 服務器, info.php
文件根目錄中的一個文件。
sudo nano /var/www/html/info.php
將以下 PHP 代碼粘貼到文件中。
<?php phpinfo(); ?>
按 將文件保存在 Nano 文本編輯器中。 Ctrl+O
單擊並按 Enter 確認。按退出 Ctrl+X
在瀏覽器的地址欄中,輸入: server-ip-address/info.php
.交換 server-ip-address
使用真實IP。如果您在本地計算機上學習本教程,請鍵入: 127.0.0.1/info.php
還 localhost/info.php
.
顯示服務器的 PHP 信息。這意味著 PHP 腳本可以成功運行 Apache Web 服務器。
如何運行 PHP-FPM Apache
基本上有兩種方法可以在 Apache Web 服務器上運行 PHP 代碼。
- Apache PHP 模塊
- PHP-FPM。
上面的說明使用 Apache PHP7.4 模塊來處理 PHP 代碼,這通常沒問題。但是,在某些情況下,您可能需要使用 PHP-FPM 來運行 PHP 代碼。而已。
禁用 Apache PHP7.4 模塊。
sudo a2dismod php7.4
安裝 PHP-FPM。
sudo apt install php7.4-fpm
效力 proxy_fcgi
什麼時候 setenvif
模塊。
sudo a2enmod proxy_fcgi setenvif
效力 /etc/apache2/conf-available/php7.4-fpm.conf
配置文件。
sudo a2enconf php7.4-fpm
重新啟動 Apache 以使更改生效。
sudo systemctl restart apache2
如果我現在刷新 info.php
您可以在瀏覽器頁面上找到服務器 API。 Apache 2.0 Handler
到達 FPM/FastCGI
這意味著 Apache Web 服務器將 PHP 請求傳遞給 PHP-FPM。
恭喜! 您已在 Ubuntu 20.04 上成功安裝 LAMP 堆棧(Apache、MariaDB 和 PHP7.4)。為了您的服務器的安全,您應該刪除 info.php
立即歸檔以防止窺探。
sudo rm /var/www/html/info.php
下一步
我希望本教程可以幫助您在 Ubuntu 20.04 LTS 上安裝 LAMP 堆棧。你可能想安裝 phpMyAdmin是一個免費和開源的基於 Web 的數據庫管理工具。
- 如何在 Ubuntu 20.04 上安裝 phpMyAdmin Apache (LAMP)
您甚至可以在 LAMP 堆棧之上安裝 WordPress 並創建自己的網站或博客。
- 在 Ubuntu 20.04 上安裝 WordPress Apache、MariaDB、PHP7.4 (LAMP)
與往常一樣,如果您發現這篇文章有幫助,請註冊我們的免費新聞通訊以獲取提示和技巧。照顧好自己?