如何在Ubuntu 20.04中安装LEMP堆栈与PhpMyAdmin

对于不了解LEMP是什么的人 – 这是一组软件包的组合 – Linux、Nginx(发音为EngineX)、MariaDB和PHP。

您可以在测试目的或实际生产环境中使用LEMP来部署使用PHP框架(如Laravel或Yii)或内容管理系统(如WordPressDrupalJoomla)的Web应用程序。

您可能会想知道LAMPLEMP之间有什么区别。嗯,唯一的区别就是包含的Web服务器 – Apache(在LAMP中)和Nginx(在LEMP中)。两种Web服务器都很不错,虽然Apache是最常用的,但Nginx在任何方面都不逊色。

通常与LEMP堆栈一起安装的另一个广泛使用的应用程序是PhpMyAdmin – 这是一个用于通过Web浏览器管理MySQL/MariaDB数据库服务器的PHP Web工具。

如果您在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. 现在是时候通过浏览器使用服务器 IP 地址调用 Nginx 页面,检查 Nginx 安装是否成功。

http://SERVER_IP

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

$ ip addr show

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

Test Nginx Installation

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

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

安装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 进程管理器)或 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 将客户端请求代理到 PHP-FPM,默认情况下,它被配置为侦听由 /etc/php/7.4/fpm/pool.d/www.conf 默认池配置文件中的 listen 参数定义的 UNIX 套接字。

$ 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需要一个数据库才能运行。在此软件包配置提示中,选择以使用dbconfig-common软件包为PhpMyAdmin配置数据库。

Configure Database for PhpMyAdmin

18. 在下一个提示中,您需要为PhpMyAdmin提供一个密码,以便注册到MariaDB数据库。输入安全密码,然后点击 Enter。

Create a Password for PhpMyAdmin

第6步:配置NGINX以服务PhpMyAdmin站点

19. 为了让NGINX能够服务位于PhpMyAdmin网站的/usr/share/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,否则远程根用户登录将被禁用。

PhpMyAdmin Login
PhpMyAdmin Dashboard

最后但并非最不重要,通过我们的指南来保护您的PhpMyAdmin安装:4个有用的提示来保护PhpMyAdmin Web界面

结论

您的LEMP设置现在已经完成,您可以开始构建您的Web应用程序或者简单地玩弄您刚刚安装的NginxMariaDB服务。这些被广泛使用,对于系统管理员来说更加推荐深入了解它们。

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