本教程展示瞭如何在 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.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 (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 是大寫的,這意味著它是默認答案。)

安裝-LAMP-Stack-on-Ubuntu-20.04-MariaDB-Database-Server

默認情況下,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.phplocalhost/info.php.

顯示服務器的 PHP 信息。這意味著 PHP 腳本可以成功運行 Apache Web 服務器。

Ubuntu 20.04 燈 PHP7.4

如何運行 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-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)

與往常一樣,如果您發現這篇文章有幫助,請註冊我們的免費新聞通訊以獲取提示和技巧。照顧好自己?