本教程將向您展示如何在 Ubuntu 20.04LTS 上安裝 LAMP 堆棧。軟件堆棧是一組捆綁的軟件工具。 LAMP 代表 Linux、Apache、MariaDB/MySQL、PHP,所有這些都是開源且免費使用的。這是支持動態網站和 Web 應用程序的最常見的軟件堆棧。 Linux 是操作系統,Apache 是 Web 服務器,MariaDB / MySQL 是數據庫服務器,PHP 是負責生成動態網頁的服務器端腳本語言。

先決條件

要學習本教程,您需要在本地計算機或遠程服務器上運行 Ubuntu 20.04 操作系統。

如果您正在尋找 VPS(虛擬專用服務器),您可以通過此特殊鏈接註冊您的 DigitalOcean 帳戶並獲得 50 美元的免費信用。 (僅限新用戶)。如果您已經是 Digital Ocean 用戶,您可以通過此特殊鏈接註冊您的 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 Benchmark 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 地址。 顯示“It works!”網頁。這意味著 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 對於阿帕奇。 使用 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 如果再次運行該命令,您將不會看到上述錯誤消息。

第三步:安裝 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 是大寫的,這意味著它是默認答案。)

install-LAMP-stack-on-Ubuntu-20.04-MariaDB-Database-server

默認情況下,Ubuntu 的 MariaDB 包是 unix_socket 驗證用戶登錄。這基本上意味著您可以使用您的操作系統用戶名和密碼登錄到 MariaDB 控制台。因此,您可以通過運行以下命令在不指定 MariaDB 根密碼的情況下登錄:

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 步:安裝 PHP 7.4

在撰寫本文時,PHP 7.4 是 PHP 的最新穩定版本,性能略優於 PHP 7.3。輸入以下命令會安裝 PHP 7.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-FPMApache

基本上有兩種方法可以在 Apache Web 服務器上運行 PHP 代碼。

  • Apache PHP 模塊
  • PHP-FPM。

以上步驟使用 Apache PHP7.4 模塊處理 PHP 代碼,通常沒問題。但是,在某些情況下,您可能需要使用 PHP-FPM 來執行您的 PHP 代碼。而已。

禁用 Apache PHP 7.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.04LTS 上安裝 LAMP 堆棧。您可能想要安裝 phpMyAdmin這是一個免費的開源基於網絡的數據庫管理工具。

  • 如何在 Ubuntu 20.04 上安裝 phpMyAdminApache (LAMP)

您還可以在 LAMP 堆棧之上安裝 WordPress,以創建您自己的網站或博客。

  • 在 Ubuntu 20.04 上安裝 WordPress Apache、MariaDB、PHP7.4 (LAMP)

與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?