Home Knowledge base Skyline Cloud 如何在 Ubuntu 上安装 LAMP 环境 KNOWLEDGE BASE

如何在 Ubuntu 上安装 LAMP 环境

一份完整的分步指南,教你在 Ubuntu 24.04 LTS 上安装并加固 LAMP 环境(Linux、Apache、MySQL、PHP)——涵盖防火墙、加固后的 MySQL 配置、PHP,以及一个可在几分钟内测试通过的 Apache 虚拟主机。

如何在 Ubuntu 上安装 LAMP 环境

一份完整的分步指南,教你在 Ubuntu 24.04 LTS 上安装并加固 LAMP 环境(Linux、Apache、MySQL、PHP)——涵盖防火墙、加固后的 MySQL 配置、PHP,以及一个可在几分钟内测试通过的 Apache 虚拟主机。

什么是 LAMP 环境?

LAMP 环境是用于托管动态网站和 Web 应用的经典开源平台。这个缩写代表四个协同工作的层次:

  • Linux —— 操作系统(本指南中为 Ubuntu)
  • Apache —— 负责处理 HTTP 请求的 Web 服务器
  • MySQL —— 用于存储数据的关系型数据库
  • PHP —— 用于生成动态页面的编程语言

本教程将带你在 Ubuntu 24.04 LTS 上完成一次完整且加固的安装(这些步骤同样可以顺畅地应用于 22.04 LTS 和更新的 26.04 LTS)。完成之后,你将拥有一台可正常运行的 Web 服务器,包括一个已测试通过的虚拟主机、一个已加固的数据库,以及一个可处理页面的 PHP。

如果你是在沙特境内的 VPS 或云服务器上进行操作,将数据保留在境内有助于满足 PDPL 的数据驻留要求,同时为利雅得、吉达和达曼的用户提供低延迟访问。

前置条件

  • 一台 Ubuntu 24.04 服务器(Skyline Cloud VPS 就很合适)。
  • 一个拥有 sudo 权限的非 root 用户。
  • 服务器的 SSH 访问权限。

首先刷新软件包索引:

sudo apt update
sudo apt upgrade -y

第 1 步 —— 安装 Apache 并配置防火墙

安装 Apache Web 服务器:

sudo apt install apache2 -y

Ubuntu 自带 UFW 防火墙,而 Apache 在安装时会向其注册应用配置文件。列出它们:

sudo ufw app list

你会看到 ApacheApache FullApache Secure。允许 Apache Full 以同时开放 HTTP(80)和 HTTPS(443)。如果 UFW 尚未启用,请先允许 SSH,以免把自己锁在外面:

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable

确认 Apache 正在运行:

sudo systemctl status apache2

现在在浏览器中访问 http://your_server_ip。你应该会看到默认的 Apache 欢迎页面。

第 2 步 —— 安装 MySQL 并对其加固

安装 MySQL 数据库服务器:

sudo apt install mysql-server -y

服务会自动启动。接下来运行内置的加固脚本,它会移除不安全的默认设置:

sudo mysql_secure_installation

该脚本会提示你:

  1. (可选)启用 VALIDATE PASSWORD 组件(如果你想强制实施密码复杂度要求,可选择一个策略级别)。
  2. 移除匿名用户 —— 回答 Y
  3. 禁止远程 root 登录 —— 回答 Y
  4. 移除测试数据库 —— 回答 Y
  5. 重新加载权限表 —— 回答 Y

在全新安装时,root 账户使用 auth_socket 认证,因此你可以无需密码直接从 shell 登录:

sudo mysql

对于应用程序,切勿使用 root。应改为创建一个专用的用户和数据库:

CREATE DATABASE app_db;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'a_strong_password';
GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

第 3 步 —— 安装 PHP

安装 PHP、Apache 的 PHP 模块以及 MySQL 连接器:

sudo apt install php libapache2-mod-php php-mysql -y

大多数应用程序还需要几个常用的扩展:

sudo apt install php-cli php-curl php-gd php-mbstring php-xml php-zip -y

检查已安装的版本:

php -v

第 4 步 —— 让 Apache 优先使用 PHP 文件

默认情况下,Apache 会优先于 index.php 提供 index.html。为了让 PHP 应用按预期工作,需要提高 index.php 的优先级。打开目录索引配置文件:

sudo nano /etc/apache2/mods-enabled/dir.conf

index.php 移到列表的最前面:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

保存,然后重新加载 Apache:

sudo systemctl reload apache2

第 5 步 —— 创建虚拟主机

虚拟主机让一台服务器可以托管多个站点。为你的域名创建一个文档根目录和一个配置文件(请替换 example.com):

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com
sudo nano /etc/apache2/sites-available/example.com.conf

添加以下内容:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>

启用你的站点,禁用默认站点,然后重新加载:

sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

如果你打算使用简洁 URL(在 WordPress 和 Laravel 中很常见),请启用 rewrite 模块:

sudo a2enmod rewrite
sudo systemctl restart apache2

第 6 步 —— 测试 PHP 处理

在你的文档根目录中创建一个测试文件:

nano /var/www/example.com/info.php

添加:

<?php
phpinfo();

访问 http://example.com/info.php(或你的服务器 IP)。你应该会看到 PHP 信息页面,这表明 Apache 已将 .php 文件交给 PHP 处理。测试完毕后请立即删除此文件 —— 它会暴露服务器的详细信息:

rm /var/www/example.com/info.php

快速命令参考

任务 命令
重启 Apache sudo systemctl restart apache2
重新加载 Apache 配置 sudo systemctl reload apache2
测试 Apache 配置语法 sudo apache2ctl configtest
重启 MySQL sudo systemctl restart mysql
登录 MySQL sudo mysql
查看 Apache 错误日志 sudo tail -f /var/log/apache2/error.log

后续步骤

你的 LAMP 服务器已就绪。推荐的后续操作:

  • 添加 HTTPS。 使用 Certbot 签发免费的 Let's Encrypt 证书,或采用托管式 SSL 方案,以加密流量。
  • 指向一个域名。 通过托管 DNS 接入一个 .sa 或其他域名,让用户可以通过名称访问你的站点。
  • 设置企业邮箱。 为你的站点搭配使用基于自有域名的可靠企业邮箱托管服务。
  • 安排备份。 自动对 /var/www 进行云备份,并定期对数据库执行 mysqldump 导出。

想要一台预装好该环境、具备境内数据驻留、并提供本地阿拉伯语支持的服务器吗?注册 Skyline Cloud,几分钟即可启用你的 VPS。

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.