Image

(最后一次变更: 23.03.2023)
本指南向您展示如何在 Ubuntu 20.04 LTS 上安装 LAMP 堆栈。 软件堆栈是捆绑在一起的软件工具的集合。 LAMP 代表 Linux、Apache、MariaDB/MySQL 和 PHP,所有这些都是开源的并且可以免费使用。 它是支持动态网站和 Web 应用程序的最常见的软件堆栈。 Linux是一个操作系统; Apache 是一个网络服务器; MariaDB/MySQL 是数据库服务器,PHP 是服务器端脚本语言,负责创建动态网页。 在本指南中,我们以 root 用户身份安装,如果您有普通用户,请使用 sudo 命令。


预配置的服务器配置可在订购单上获得。

1. 更新软件包

在我们安装 LAMP 堆栈之前,建议更新存储库和软件包。 在 Ubuntu 20.04 上运行以下命令。

apt update
apt upgrade

2. 安装 Apache Web 服务器

输入以下命令以安装 Apache Web 服务器。 apache2-utils 包将安装一些有用的实用程序,例如 HTTP 服务器测试工具 Apache (ab).

apt install -y apache2 apache2-utils


安装后,Apache 应该会自动启动。 检查其状态 systemctl.

systemctl status apache2

如果它没有运行,请使用 systemctl 启动它。

systemctl start apache2

还建议使 Apache 在系统启动时自动启动。

systemctl enable apache2

现在在浏览器的地址栏中输入 Ubuntu 20.04 服务器的公共 IP 地址。 你应该看到题词“It works!” 网页,这意味着 Apache Web 服务器工作正常。 如果您在本地 Ubuntu 20.04 计算机上安装 LAMP,请在浏览器的地址栏中输入 127.0.0.1 或 localhost。

如果连接被拒绝或无法建立,防火墙可能会阻止 TCP 端口 80 上的传入请求。如果您使用的是 iptables 防火墙,则需要运行以下命令来打开 TCP 端口 80。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

如果您使用的是 UFW 防火墙,请运行此命令以打开 TCP 端口 80。

ufw allow http

现在我们需要将 www-data(Apache 用户)设置为文档根目录(也称为 Web 根目录)的所有者。 默认情况下,它由 root 用户拥有。

chown www-data:www-data /var/www/html/ -R

默认情况下,Apache 使用系统主机名作为其全局服务器名称。 如果无法在 DNS 中解析系统主机名,运行命令后您可能会看到以下错误 #apache2ctl -t.

AH00558: apache2: 无法可靠地解析使用 127.0.0.1 的服务器的 FQDN。 全局设置“ServerName”指令以抑制此消息。


为了解决这个问题,我们可以在Apache中设置全局服务器名。 使用 Nano 命令行文本编辑器创建一个新的配置文件。 将以下行添加到此文件:

nano /etc/apache2/conf-available/servername.conf

ServerName localhost

保存并关闭文件。 要在 Nano 文本编辑器中保存文件,请按 Ctrl+O,然后按 Enter 确认。 要退出,请按 Ctrl+X。 然后包含这个配置文件。

a2enconf servername.conf

重新启动 Apache 以使更改生效。

systemctl restart apache2

现在,如果您再次运行 #apache2ctl -t 命令,您将不会看到上述错误消息。

3. 安装 MariaDB 数据库服务器

MariaDB 是 MySQL 的替代品。 它是由 MySQL 团队的前成员开发的,他们担心 Oracle 可能会将 MySQL 变成闭源产品。 输入以下命令在 Ubuntu 20.04 上安装 MariaDB。

apt install mariadb-server mariadb-client

安装后,MariaDB 服务器应该会自动启动。 使用 systemctl 检查其状态。

systemctl status mariadb

如果它没有运行,请使用以下命令启动它:

systemctl start mariadb

要允许 MariaDB 在启动时自动启动,请运行

systemctl enable mariadb

现在在安装后运行安全脚本。

mysql_secure_installation

当系统要求您输入 MariaDB root 密码时,请按 Enter 键,因为尚未设置 root 密码。 然后键入 y 为 MariaDB 服务器设置 root 密码。

然后您可以按 Enter 键回答任何剩余的问题,这将删除匿名用户、禁用远程 root 登录并删除测试数据库。 此步骤是保护 MariaDB 数据库的主要要求。 (注意 Y 是大写的,这意味着这是默认答案。)

默认情况下,Ubuntu 上的 MariaDB 包使用 unix_socket 进行用户身份验证,这基本上意味着您可以使用操作系统用户名和密码登录 MariaDB 控制台。 因此,您可以运行以下命令登录而无需提供 MariaDB root 密码.

mariadb -u root

运行退出

exit;

4. 安装PHP7.4

在撰写本文时,PHP7.4 是最新的 PHP 稳定版本,与 PHP7.3 相比具有边际性能优势。 输入以下命令安装PHP7.4和一些常用的PHP模块。

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 服务器。

a2enmod php7.4
systemctl restart apache2

要使用 Apache 服务器测试 PHP 脚本,我们需要在文档的根目录中创建一个 info.php 文件。

nano /var/www/html/info.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 服务器一起正常工作。

在 Apache Web 服务器上运行 PHP 代码主要有两种方式:

  • Apache PHP 模块
  • PHP-FPM

上面的步骤中使用了Apache PHP7.4模块来处理PHP代码,通常是没问题的。 但在某些情况下,您需要改为使用 PHP-FPM 运行 PHP 代码。 方法如下:

禁用 Apache PHP7.4 模块.

a2dismod php7.4

安装 PHP-FPM.

apt install php7.4-fpm

启用 proxy_fcgi 和 setenvif 模块。

a2enmod proxy_fcgi setenvif

包含配置文件 /etc/apache2/conf-available/php7.4-fpm.conf

a2enconf php7.4-fpm

重新启动 Apache 以使更改生效。

systemctl restart apache2

现在,如果您在浏览器中刷新 info.php 页面,您会发现服务器 API 已从 Apache 2.0 处理程序更改为 FPM/FastCGI,这意味着 Apache Web 服务器会将 PHP 请求传递给 PHP-FPM。

LAMP(Apache、MariaDB 和 PHP7.4)在 Ubuntu 20.04 上安装成功。 所有这些步骤都已经在订购单中的 VPS 服务器的 LAMP Ubuntu 20.04 预装配置中完成。




暂时没有评论