How to Install a LAMP Stack on Ubuntu VPS

LAMP是一组四个开源程序,共同运行网站:Linux(操作系统)、Apache(Web服务器)、MySQL或MariaDB(数据库)和PHP(编程语言)。它是大多数PHP网站(包括WordPress)运行的基础。本指南分步介绍如何在Ubuntu VPS上安装LAMP,并解释每个层的功能。

系统要求

步骤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-zipphp-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后,会出现一些常见问题 — 都很容易修复。常见示例:

安全不容忽视。设置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;禁用ServerTokensServerSignature以便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。

需要价格合理的Ubuntu VPS?

AsiaGB Linux VPS起价500泰铢/月 — 完全root访问权限、专用IP、在泰国和新加坡可用。

查看VPS套餐