
LAMP是一组四个开源程序,共同运行网站:Linux(操作系统)、Apache(Web服务器)、MySQL或MariaDB(数据库)和PHP(编程语言)。它是大多数PHP网站(包括WordPress)运行的基础。本指南分步介绍如何在Ubuntu VPS上安装LAMP,并解释每个层的功能。
系统要求
- Ubuntu 20.04或22.04 LTS VPS(推荐)
- 至少1 GB内存
- Root或sudo访问权限
步骤1:更新系统
SSH进入您的VPS并运行:
apt update && apt upgrade -y
步骤2:安装Apache
apt install apache2 -y
为Web流量打开防火墙:
ufw allow 'Apache Full'
ufw enable
通过在浏览器中打开http://YOUR_VPS_IP进行测试 — 您应该看到Apache默认页面。
步骤3:安装MySQL
apt install mysql-server -y
运行安全脚本:
mysql_secure_installation
按照提示操作:设置root密码、删除匿名用户、禁用远程root登录。
步骤4:安装PHP
apt install php libapache2-mod-php php-mysql php-cli php-curl php-zip php-gd -y
验证版本:php -v
创建测试文件以确认PHP正常工作:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
打开http://YOUR_VPS_IP/info.php — 您应该看到PHP信息页面。
步骤5:创建虚拟主机
为您的域设置专用目录和配置:
mkdir -p /var/www/yourdomain.com/public_html
nano /etc/apache2/sites-available/yourdomain.com.conf
粘贴以下内容:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/yourdomain.com/public_html
</VirtualHost>
启用网站:a2ensite yourdomain.com.conf && systemctl reload apache2
安全清理:确认PHP正常工作后,立即删除info.php测试文件 — 它会将您的PHP配置暴露给公众:rm /var/www/html/info.php
LAMP各组件详细安装命令
本部分深入介绍堆栈每一层的命令,以便您可以自信地在Ubuntu VPS上安装LAMP堆栈,同时了解每个包的实际作用。首先更新系统并安装Apache作为Web服务器:
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl status apache2
systemctl enable命令设置Apache在每次重启时自动启动,而systemctl status确认服务健康(您应该看到active (running))。接下来,安装数据库。在最近的Ubuntu版本中,建议使用MariaDB — 它完全与MySQL兼容且完全开源:
sudo apt install mariadb-server mariadb-client -y
sudo systemctl enable mariadb
sudo mysql_secure_installation
在mysql_secure_installation期间,脚本会提出几个问题。按以下方式回答:设置强大的root密码、删除匿名用户(Y)、禁用远程root登录(Y)、删除测试数据库(Y)并重新加载权限表(Y)。此步骤至关重要,因为它关闭了攻击者经常扫描的不安全默认值。然后安装PHP以及大多数Web应用需要的模块:
sudo apt install php libapache2-mod-php php-mysql php-cli \
php-curl php-zip php-gd php-mbstring php-xml php-intl php-bcmath -y
php -v
每个模块都有其用途:php-mysql让PHP与数据库通信,php-gd处理图像处理,php-mbstring支持Unicode和多字节文本,php-curl需要调用外部API,php-zip和php-xml是WordPress和许多插件所需的。安装后,使用sudo systemctl reload apache2重新加载Apache,使PHP模块生效。
使用info.php测试LAMP和配置虚拟主机
一旦安装了所有三层,下一步就是确认PHP与Apache配合工作。通常的方法是创建一个info.php文件,该文件调用phpinfo()来显示完整的PHP配置:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
# 在浏览器中打开http://YOUR_VPS_IP/info.php
如果您看到列出PHP版本、启用的模块和配置值的紫色表格,说明您的LAMP堆栈已完全正常工作。接下来,设置虚拟主机,以便单个VPS可以托管多个网站或域,每个都有自己的文件夹和配置文件:
sudo mkdir -p /var/www/yourdomain.com/public_html
sudo chown -R $USER:$USER /var/www/yourdomain.com/public_html
sudo nano /etc/apache2/sites-available/yourdomain.com.conf
将以下内容粘贴到文件中,调整ServerName和路径以匹配您自己的域:
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/yourdomain.com/public_html
ErrorLog ${APACHE_LOG_DIR}/yourdomain_error.log
CustomLog ${APACHE_LOG_DIR}/yourdomain_access.log combined
</VirtualHost>
启用新网站,禁用默认网站,然后重新加载Apache:
sudo a2ensite yourdomain.com.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest # 先检查语法;只有看到"Syntax OK"时才重新加载
sudo systemctl reload apache2
之后,一旦您将域的DNS指向VPS IP地址,您的网站就会立即加载。测试完成后,请记住删除info.php文件。
LAMP vs LEMP (Apache vs Nginx):有什么区别?
除了LAMP,另一个非常流行的堆栈是LEMP。主要区别是Web服务器:LAMP使用Apache,而LEMP使用Nginx(发音为"engine-x",因此是E)。两者都同样很好地托管PHP网站,但各有优势。请参见下面的比较表:
| 主题 | LAMP (Apache) | LEMP (Nginx) |
|---|---|---|
| 配置 | 更简单;支持每目录.htaccess | 集中式;每次更改都必须重新加载 |
| 高并发 | 每个连接使用更多内存 | 更有效地处理许多连接 |
| 静态文件 | 充分 | 快速轻量级服务静态文件 |
| 最佳用途 | WordPress、通用网站、初学者 | 高流量网站、反向代理、API |
对于初学者和典型的WordPress网站,LAMP非常适合,因为它易于配置并为您提供.htaccess用于在文件夹级别调整重写规则。对于预期流量非常高或需要反向代理的网站,LEMP具有性能优势。
常见问题和基本安全
安装LAMP后,会出现一些常见问题 — 都很容易修复。常见示例:
- "Apache默认页面"不断显示 — 您尚未禁用默认网站或重新加载Apache。运行
sudo a2dissite 000-default.conf && sudo systemctl reload apache2 - .php文件下载而不是运行 — 未加载PHP模块。检查
sudo a2enmod php8.* && sudo systemctl restart apache2 - 403禁止 — 文件权限错误。重置所有者和权限:
sudo chown -R www-data:www-data /var/www && sudo chmod -R 755 /var/www - 无法连接到MySQL — 验证服务是否正在运行
sudo systemctl status mariadb
安全不容忽视。设置LAMP后,至少应配置防火墙以仅打开必要的端口(80、443和SSH):
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
此外,通过每个提示运行mysql_secure_installation(如上所述)禁用远程root登录并删除匿名帐户;使用Certbot通过Let's Encrypt安装免费SSL证书以启用HTTPS;禁用ServerTokens和ServerSignature以便Apache不会泄露其版本;并定期使用sudo apt update && sudo apt upgrade保持系统包修复以获得最新安全修复。在具有完全root访问权限的VPS上运行LAMP — 例如AsiaGB,起价仅500泰铢/月 — 使您能够完全控制所有这些安全设置。
常见问题
LAMP和LEMP之间的区别是什么?
LAMP使用Apache作为Web服务器;LEMP使用Nginx(发音为"engine-x")。Nginx通常更好地处理高并发流量,而Apache更容易配置并支持.htaccess。
我需要VPS还是共享主机就足够了?
自己安装LAMP需要root访问权限,所以需要VPS。在共享主机上,提供商已经为您安装了LAMP。
设置LAMP后可以立即安装WordPress吗?
可以。LAMP准备好后,创建MySQL数据库并立即将WordPress安装到Web目录中。
我应该选择MySQL还是MariaDB?
在最近的Ubuntu版本中,建议使用MariaDB。它完全开源且几乎100%与MySQL兼容,使用相同的命令和SQL语法。WordPress等Web应用可以在MariaDB上运行,无需进行任何更改。
LAMP需要多少VPS规格?
对于中小型网站,1 GB内存足以开始,但如果您运行具有多个插件的WordPress或期望许多并发访问者,建议使用2 GB或更多。AsiaGB的Ubuntu VPS起价为500泰铢/月,具有完整的root访问权限,您可以自己安装LAMP。