本教程适用于以下操作系统版本
- Ubuntu 24.04(Noble Numbat)
- Ubuntu 22.04(Jammy Jellyfish)
- Ubuntu 18.04(Bionic Beaver)
- Ubuntu 16.04(Xenial Xerus)
- Ubuntu 15.10(Wily Werewolf)
- Ubuntu 15.04(Vivid Vervet)
本页内容
- 准备工作
- 安装 Apache 网页服务器
- 安装 MariaDB 数据库服务器
- 安装 PHP
- Apache 与 PHP 集成
- 在 Apache 中创建虚拟主机
- 测试 Apache 虚拟主机
LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)是一套用于构建网站和 Web 应用的开源技术组合。LAMP 栈中的每个组件都是免费的,你可以将其安装在开发环境和生产环境中使用。
在本指南中,你将学习如何在 Ubuntu 24.04「Noble Numbat」服务器上安装 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)。你还将学习如何加固 MariaDB 安全,以及如何使用 Apache 网页服务器创建虚拟主机。
准备工作
在开始本指南之前,请确保你拥有一台运行 Ubuntu 24.04「Noble Numbat」的服务器,并且拥有 root 用户或具备管理员权限的普通用户。
安装 Apache 网页服务器
Apache 是互联网上最流行的网页服务器软件之一。许多大型网站都运行在 Apache 之上,包括维基百科(Wikipedia)、Slack、LinkedIn、《纽约时报》以及众多其他站点。
Apache 网页服务器以其模块化特性而闻名,用户可以通过模块来扩展其功能。在本节中,你将在 Ubuntu 24.04 服务器上安装 Apache 网页服务器。
首先,运行以下命令更新 Ubuntu 软件包列表并获取最新的软件包信息。
sudo apt update

现在使用下面的 apt install 命令安装 Apache 网页服务器。输入 Y 确认进行安装。
sudo apt install apache2

安装完成后,apache2 服务将启动并在系统开机时自动运行。使用以下命令检查 apache2 服务的状态。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
你会看到 apache2 服务的状态为「enabled(已启用)」,并将在开机时自动运行。当前 apache2 服务的状态为「active (running)(运行中)」。

如果你的 Ubuntu 上已启用 UFW(Uncomplicated Firewall,简易防火墙),你需要通过 UFW 允许访问 Apache 网页服务器的流量。
运行以下 ufw 命令,通过「Apache Full」配置文件允许访问 Apache 网页服务器的流量。UFW 上的「Apache Full」配置文件会同时开放 HTTP 和 HTTPS 端口。
sudo ufw allow 'Apache Full'
现在运行以下命令验证 UFW 上的规则列表。你将看到「Apache Full」配置文件的状态为「ALLOW(允许)」。
sudo ufw status

最后,打开你的网页浏览器并访问服务器的 IP 地址,例如 http://192.168.5.30/。如果一切顺利,你将看到类似如下的 Apache 网页服务器 index.html 页面:

如果你不确定 Ubuntu 服务器的 IP 地址,请运行以下命令查看服务器 IP 地址。
ip a
安装 MariaDB 数据库服务器
MariaDB 是 MySQL 的一个免费开源关系型数据库管理系统(RDBMS)分支。它由 MySQL 的原创开发人员打造,但拥有更多功能、更高的查询速度以及更好的可扩展性。
在本次 LAMP 技术栈安装中,你将使用 MariaDB 而非 MySQL。现在,你将在 Ubuntu 24.04 上安装并加固 MariaDB 数据库服务器。
要在 Ubuntu 上安装 MariaDB 服务器,请运行以下 apt install 命令。输入 Y 继续执行安装。
sudo apt install mariadb-server

安装完成后,MariaDB 服务应该已经在运行并在系统中启用。使用以下命令检查 MariaDB 服务的状态。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
当 mariadb 服务已启用时,你会看到「enabled」的输出。同时你还会看到当前 mariadb 服务的状态为「active (running)(运行中)」。

MariaDB 服务器运行后,你需要通过 mariadb-secure-installation 工具来加固其安全性。该工具可以帮助你设置 MariaDB 的 root 密码、禁用 MariaDB root 用户的远程登录认证,并移除 MariaDB 服务器中的默认数据。
运行以下 mariadb-secure-installation 命令来加固你的 MariaDB 服务器部署。
sudo mariadb-secure-installation
当提示输入 MariaDB root 密码时,直接按 ENTER 键。
Enter current password for root (enter for none): OK, successfully used password, moving on...
当被问及是否切换到 unix_socket 认证时,输入 n。
Switch to unix_socket authentication [Y/n] n ... skipping.
输入 Y 来配置 MariaDB root 密码。然后,输入你的新密码并重复确认。
Change the root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success!
输入 Y 以移除 MariaDB 服务器安装中的默认匿名用户。
Remove anonymous users? [Y/n] Y ... Success!
输入 Y 以禁止 MariaDB root 用户远程登录。root 用户应始终从 localhost(本地)连接。
Disallow root login remotely? [Y/n] Y ... Success!
现在再次输入 Y,以移除 MariaDB 服务器中默认的 test 数据库及其权限。
Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!
输入 Y 以重新加载权限表,并应用你到目前为止所做的所有更改。
Reload privilege tables now? [Y/n] Y ... Success!
完成后,你将看到如下信息:
All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
安装 PHP
PHP 是一种用于 Web 开发的开源编程语言。它也为最流行的内容管理系统(CMS,如 WordPress 和 Drupal)提供支持。在本节中,你将安装 PHP 以及下面的一些扩展:
- libapache2-mod-php:该软件包用于启用 Apache 网页服务器与 PHP 之间的集成。
- php-mysql:PHP 的 MySQL/MariaDB 驱动。你必须安装此软件包,尤其是在以 MySQL/MariaDB 为数据库开发或部署 PHP Web 应用时。
- php-opcache 和 php-apcu:这些软件包可提升 PHP Web 应用的缓存性能。
首先,使用以下命令在 Ubuntu 上安装 PHP 软件包。输入 Y 确认进行安装。
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip

安装完成后,运行以下 nano 编辑器命令来修改 PHP 配置文件 php.ini。
sudo nano /etc/php/8.3/apache2/php.ini
使用以下配置修改默认 PHP 设置,并确保将 date.timezone 调整为你的服务器时区,将 memory_limit 调整为 Ubuntu 服务器的最大内存。
date.timezone = Europe/Paris memory_limit = 256M upload_max_file_size = 64M max_execution_time = 300
保存文件并退出。
最后,运行以下命令重启 apache2 服务,使你的 PHP 配置更改生效。
sudo systemctl restart apache2
Apache 与 PHP 集成
为了验证 Apache 与 PHP 的集成,你将创建一个 PHPINFO 文件,用于显示 PHP 安装的详细信息。你的 PHPINFO 文件应位于默认的 DocumentRoot 目录 /var/www/html。
使用以下命令创建一个新的 info.php 文件。
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
打开网页浏览器并访问 http://192.168.5.30/info.php。如果你的 Apache 和 PHP 安装成功,你将看到如下的 PHPINFO 页面:
如你所见,PHP 8.3 正通过 Apache Handler 与 Apache 网页服务器一起运行。

向下滚动页面,你还会看到已安装的 PHP mysql 模块。

最后,还可以查看通过 APC 实现的 PHP 缓存模块,如下所示。

在 Apache 中创建虚拟主机
虚拟主机(Virtual Host)是指在同一台服务器上托管多个网站(例如 site1.com 和 site2.com)的技术。在本节中,你将学习如何在 Apache 网页服务器上配置虚拟主机。
首先,运行以下命令创建一个新的 DocumentRoot 目录 /var/www/mysite/public_html 以及一个自定义的 index.html 页面。
mkdir -p /var/www/mysite/public_html
echo "Welcome to mysite.com" > /var/www/mysite/public_html/index.html
现在运行以下命令,将 /var/www/mysite 目录的所有权更改为 www-data 用户。
sudo chown -R www-data:www-data /var/www/mysite
之后,使用以下 nano 编辑器命令创建一个新的 Apache 虚拟主机配置文件 /etc/apache2/sites-available/mysite.conf。
sudo nano /etc/apache2/sites-available/mysite.conf
插入以下虚拟主机配置。请务必将 ServerName 选项改为你的域名,并将 DocumentRoot 目录改为路径 /var/www/mysite/public_html。
<VirtualHost *:80>
ServerAdmin
[email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite/public_html
ErrorLog ${APACHE_LOG_DIR}/mysite-error.log
CustomLog ${APACHE_LOG_DIR}/mysite-access.log combined
</VirtualHost>
保存并退出文件。
接下来,运行以下命令来启用虚拟主机文件 mysite.conf 并验证 Apache 配置语法。
sudo a2ensite mysite.conf
sudo apachectl configtest
如果你的 Apache 语法正确无误,你将看到「Syntax OK(语法正确)」的输出。
现在运行以下命令重启 apache2 服务,使新的虚拟主机配置生效。
sudo systemctl restart apache2

测试 Apache 虚拟主机
要访问你的虚拟主机域名,你可以修改本地系统的 hosts 文件。
- Windows 用户:以管理员身份编辑文件 C:\Windows\System32\drivers\etc\hosts。
- Linux 或 macOS 用户:使用 sudo/root 权限编辑 /etc/hosts 文件。
输入你的虚拟主机域名(例如 mysite.com)以及你的 Ubuntu 服务器 IP 地址。
192.168.5.30 mysite.com
保存文件并退出编辑器。
现在打开网页浏览器并访问 http://mysite.com/。如果你的虚拟主机配置成功,你将看到如下自定义的 index.html 页面:

你已完成在 Ubuntu 24.04「Noble Numbat」服务器上安装 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)。