如何在Ubuntu 20.04上安裝LEMP堆疊與PhpMyAdmin

對於那些不知道LEMP是什麼的人 – 這是一組軟件包的組合 – Linux、Nginx(發音為EngineX)、MariaDB 和 PHP。

您可以將LEMP用於測試目的,或者在真實的生產環境中部署使用 PHP 框架(如 Laravel 或 Yii)的 Web 應用程序,或者內容管理系統(如WordPressDrupalJoomla

您可能會想知道LAMPLEMP之間的區別。嗯,唯一的區別是包含的 Web 服務器 – Apache(在LAMP中)和Nginx(在LEMP中)。這兩個 Web 服務器都相當不錯,雖然Apache是最常用的,但Nginx在任何方面都不示弱。

通常與LEMP堆棧一起安裝的另一個廣泛使用的應用程序是PhpMyAdmin – 這是一個 PHP 基於 Web 的工具,用於從 Web 瀏覽器管理MySQL/MariaDB數據庫服務器。

如果你在尋找一個 Ubuntu 20.04 的 LAMP 設置,那麼你應該閱讀我們的 在 Ubuntu 20.04 上的 LAMP 設置指南

先決條件:

  1. Ubuntu 20.04 服務器安裝指南

在本文中,您將學習如何在 Ubuntu 20.04 服務器上安裝和配置 LEMP 堆棧以及 PhpMyAdmin

第 1 步:在 Ubuntu 20.04 上安裝 Nginx

1. Nginx 是一個快速的現代化 Web 伺服器,設計用於提供許多並行連接而不消耗太多伺服器資源。這就是為什麼它通常是企業環境中的首選。

NGINX 也常用作 負載均衡器 和 Web 內容快取。它支援基於名稱和 IP 的虛擬伺服器(類似於 Apache 中的虛擬主機)。

你可以通過運行以下命令在你的 Ubuntu 20.04 桌面或伺服器上安裝 Nginx

$ sudo apt update
$ sudo apt install nginx
Install Nginx on Ubuntu 20.04

Nginx 的配置文件存储在 /etc/nginx 目录下,其主配置文件是 /etc/nginx/nginx.conf。重要的是,用于存储网页文件的默认文档根目录是 /usr/share/nginx/html/。但是你可以使用标准的 /var/www/html,应该在你的网站或应用程序的服务器块配置文件中配置。

2. Ubuntu 软件包安装程序会触发 systemd 启动 Nginx 服务,并使其在服务器每次重启时自动启动。使用以下 systemctl 命令 确认服务正在运行并已启用。

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx
Check Nginx Service Status

3. 现在是时候检查 Nginx 安装是否成功,通过浏览器使用服务器 IP 地址调用 Nginx 页面。

http://SERVER_IP

如果你不知道服务器的 IP 地址,你可以使用 IP 命令 来查找,如下所示。

$ ip addr show

NGINX 默认网页应该加载,如下截图所示,确认安装和操作正确。

Test Nginx Installation

步骤 2:在 Ubuntu 20.04 上安装 MariaDB 数据库

4. MariaDB 是一个相对较新的关系型数据库管理系统,设计为 MySQL 的社区分支,在 Oracle 收购之后推出。

MariaDB的安裝相當簡單,可使用以下命令啟動:

$ sudo apt install mariadb-server mariadb-client
Install MariaDB on Ubuntu 20.04

5. MariaDB服務也會自動啟動並啟用,以便系統啟動時始終運行,您可以使用以下命令確認這一點。

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb
Check MariaDB Service

6. 如果您希望提高MariaDB的安全性,可以運行mysql_secure_installation命令,該命令將提供一些基本但重要的配置選項:

$ sudo mysql_secure_installation

然後選擇設置數據庫根(或管理員)用戶的密碼並按照提示操作,仔細閱讀問題。為了保護您的數據庫服務器,請按照屏幕截圖中顯示的答案回答問題。

  • 輸入root的當前密碼(如果沒有,則直接按回車):輸入
  • 設置根密碼?[Y/n] y
  • 刪除匿名用戶?[Y/n] y
  • 禁止遠程root登錄?[Y/n] y
  • 刪除測試數據庫及其訪問權限?[Y/n] y
  • 立即重新載入權限表?[Y/n] y
Secure MariaDB Server

7. 要創建、管理和執行數據庫操作,您需要使用mysql shell命令,帶上-u標誌指定數據庫用戶名,並使用-p提供用戶密碼。

要作為root用戶連接,請使用sudo命令(即使沒有-p標誌),否則您將收到以下屏幕截圖中突出顯示的錯誤。

$ mysql -u root -p
$ sudo mysql -u root
Access MariaDB Shell

第三步:在Ubuntu 20.04中安裝PHP

8. PHP 是一種流行的開源、靈活且動態的腳本語言,用於構建網站和 Web 應用程序。它支持各種編程技術。重要的是,PHP 社區龐大而多樣,由無數的庫、框架和其他有用的組件組成。

NGINX 使用 FPMFastCGI Process Manager)或 PHP-FPM 來處理 PHP 腳本。 PHP-FPM 是一個廣泛使用的替代 PHP FastCGI 實現,帶有許多附加功能,用於支持高流量的站點/ Web 應用程序。

要安裝 PHPPHP-FPM,請運行以下命令,該命令還將安裝一些必需的附加包。

$ sudo apt install php php-mysql php-fpm
Install PHP and PHP-FPM on Ubuntu 20.04

由於 PHP 7.4Ubuntu 20.04 中的默認版本,因此 PHP 配置文件位於 /etc/php/7.4/,而 PHP-FPM 配置文件存儲在 /etc/php/7.4/fpm 下。

9. 接下來,使用以下命令檢查 php7.4-fpm 服務是否運行並且是否已啟用。

$ sudo systemctl status php7.4-fpm
$ sudo systemctl is-enabled php7.4-fpm
Check PHP-FPM Status

步驟 4:配置 Nginx 以與 PHP-FPM 配合工作

10. 現在,您需要配置 NGINX 將客戶端請求代理到默認情況下配置為在 UNIX 插座上聽取的 PHP-FPM,這由 /etc/php/7.4/fpm/pool.d/www.conf 默認池配置文件中的 listen 參數定義。

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 
Configure PHP-FPM Socket

11. 在預設的伺服器區塊設定檔案(/etc/nginx/sites-available/default)中,取消註釋位置指令,以處理 PHP 請求,看起來像以下截圖所示。

$ sudo vi /etc/nginx/sites-available/default
Configure Nginx Block to Use PHP-FPM Socket

保存檔案並退出。

12. 然後檢測 NGINX 配置語法是否正確。如果正確,重新啟動 Nginx 服務以應用新更改。

$ sudo nginx -t
$ sudo systemctl restart nginx
Check Nginx Configuration

13. 現在測試 NGINX 是否能與PHP-FPM配合處理 PHP 請求。在文件根目錄下創建一個簡單的info.php頁面。

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

14. 在瀏覽器中,使用以下地址導航。 PHP 配置頁面應該顯示如下所示的截圖。

http://SERVER_IP/info.php
Check PHP and PHP-FPM Info

步驟 5:在 Ubuntu 20.04 安裝 PhpMyAdmin

15. PhpMyAdmin 是一個免費且開源的基於 Web 的 PHP 應用程序,專門用於通過 Web 瀏覽器管理MySQL/MariaDB數據庫伺服器。它提供直觀的圖形界面,並支持一系列常見的數據庫管理任務。

$ sudo apt install phpmyadmin
Install PhpMyAdmin in Ubuntu 20.04

16. 在安裝過程中,您將被要求配置PhpMyAdmin套件的幾個方面。首先,將提示您選擇運行它的默認 Web 伺服器。按Esc,因為提供的列表中沒有NGINX

Choose Web Server to Configure PHPMyAdmin

17. 接下來,PhpMyAdmin 需要與之配合的資料庫。在此套件配置提示中,選擇以配置一個資料庫給 PhpMyAdmin 使用,使用 dbconfig-common 套件

Configure Database for PhpMyAdmin

18. 在下一個提示中,您需要為 PhpMyAdmin 設置一個與 MariaDB 資料庫註冊的密碼。輸入一個安全的密碼,然後按 Enter。

Create a Password for PhpMyAdmin

第 6 步:配置 NGINX 來提供 PhpMyAdmin 網站

19. 為了讓 NGINX 能夠提供位於 PhpMyAdmin 網站的位置 /usr/share/phpmyadmin,在文檔根目錄下創建一個指向該目錄的符號連結,然後按照以下方式設置 PHPMyAdmin 目錄的正確權限和所有權。

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

20. 此外,確保默認服務器塊配置文件(/etc/nginx/sites-available/default)中的index 指令包含如下截圖所示的 index.php

Configure Nginx Index Directive

21. 接下來,再次重新啟動 Nginx 服務以應用上述更改。

$ sudo systemctl restart nginx

22. 現在,使用以下地址從瀏覽器訪問 PhpMyAdmin 網站。

http://SERVER_IP/phpmyadmin

在登錄頁面上,使用 PHPMyAdmin 用戶名和密碼進行身份驗證。請記住,除非您在安裝了 MariaDB 資料庫的本地主機上訪問 PHPMyAdmin,否則遠程 root 用戶登錄是禁用的,root 訪問將不起作用。

PhpMyAdmin Login
PhpMyAdmin Dashboard

請使用我們的指南來保護您的 PhpMyAdmin 安裝:4個有用的提示來保護 PhpMyAdmin 網頁界面

結論

您的 LEMP 設置現已完成,您可以開始構建您的 Web 應用程序,或者簡單地玩弄您剛剛安裝的 NginxMariaDB 服務。這些廣泛使用且對系統管理員來說極具價值的知識正在得到更廣泛的應用。

Source:
https://www.tecmint.com/install-lemp-with-phpmyadmin-in-ubuntu-20-04/