如何在Ubuntu 20.04 Server / Desktop上安裝LAMP Stack

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

先決條件

要遵循本教程,您需要在本地計算機或遠程服務器上運行的Ubuntu 20.04 OS。

如果您正在尋找VPS(虛擬專用服務器),則可以通過此特殊鏈接在DigitalOcean註冊帳戶,以獲得$ 50的免費信用。 (僅適用於新用戶)。 如果您已經是DigitalOcean用戶,則可以通過此特殊鏈接在Vultr上註冊帳戶,以獲得$ 50的免費信用(僅限新用戶)。

而且,如果您需要使用域名來設置LAMP堆棧,我建議您從NameCheap購買域名,因為價格低廉,並且終身免費提供Whois隱私保護。

步驟1:更新軟件包

在安裝LAMP堆棧之前,最好更新存儲庫和軟件包。 在Ubuntu 20.04 OS上運行以下命令。

sudo apt update

sudo apt upgrade

步驟2:安裝Apache Web服務器

輸入以下命令以安裝Apache Web服務器。 的 apache2-utils 軟件包將安裝一些有用的實用程序,例如Apache HTTP服務器基準測試工具(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地址。 您應該看到“它有效!” Web頁面,這意味着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服務器的根密碼。

ubuntu-20.04-install-LAMP-stack-MariaDB

接下來,您可以按Enter回答所有剩餘的問題,這將刪除匿名用戶,禁用遠程root登錄並刪除測試數據庫。 此步驟是MariaDB數據庫安全性的基本要求。 (請注意,Y是大寫的,這意味着它是默認答案。)

在Ubuntu 20.04-MariaDB數據庫服務器上安裝LAMP堆棧

默認情況下,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:安裝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

要使用Apache服務器測試PHP腳本,我們需要創建一個 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服務器上正常運行。

ubuntu 20.04燈泡PHP7.4

如何使用Apache運行PHP-FPM

使用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_fcgisetenvif 模塊。

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 瀏覽器頁面上,您會發現Server API已從 Apache 2.0 HandlerFPM/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上使用Apache(LAMP)安裝phpMyAdmin

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

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

與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。 保重🙂

Sidebar