*Cube-Host – 完整的雲端服務!

如何在Linux VPS上安装和配置LAMP

How to install and configure LAMP on Linux VPS

准备工作

  • 运行Ubuntu 20.04/22.04/24.04或Debian 11/12的VPS。
  • 具备sudo权限的用户,SSH访问权限。
  • 域名(可选)及在访问服务商控制面板中开放80/443端口。

Apache:安装、自动启动及验证。

				
					sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2
sudo systemctl enable --now apache2
curl -I http://127.0.0.1
				
			
Linux vps

等待HTTP/1.1 200 OK状态码。默认网页位于/var/www/html/目录下。

UFW防火墙对HTTP/HTTPS的状态及服务状态

				
					sudo systemctl status apache2 --no-pager
sudo ufw allow 'Apache Full'   # opens 80 и 443
sudo ufw enable
sudo ufw status
				
			
Linux vps

若未使用 UFW,请确保在访问提供商的云防火墙中允许 80/443 端口。

MySQL 服务器:安装与基础防护

				
					sudo apt -y install mysql-server
sudo systemctl enable --now mysql
sudo mysql_secure_installation
				
			

安全响应:

  • 启用密码强度控制()。
  • 删除匿名用户()。
  • 禁止远程root连接()。
  • 删除测试数据库()。
  • 重新加载权限()。
Linux vps

为应用程序创建数据库和用户

				
					sudo mysql -u root -p
				
			

在 MySQL 控制台中:

				
					CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'S3cureP@ss!';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
				
			
Linux vps

对于远程访问,请指定主机名:「appuser」@「%」,并单独配置链接地址/防火墙。

PHP:模块安装与测试页面

				
					sudo apt -y install php libapache2-mod-php php-mysql php-cli php-curl php-xml php-zip
php -v
echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/info.php
				
			

在浏览器中打开 http://<IP>/info.php 以显示 phpinfo() 页面(随后请将其删除)。

Linux vps

Apache虚拟主机生产目录

创建网站结构和配置文件:

				
					sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com
sudo nano /var/www/example.com/public_html/index.php

index.php (verification PHP):
<?php echo "Hello from LAMP!"; ?>
				
			

创建配置文件 /etc/apache2/sites-available/example.com.conf

				
					<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/public_html

  <Directory /var/www/example.com/public_html>
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/example_error.log
  CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
				
			
Linux vps

若使用.htaccess(重写、缓存等),则需设置AllowOverride All。

启用网站、mod_rewrite模块,并重新读取配置。

				
					sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
sudo a2enmod rewrite
sudo apache2ctl configtest   # Syntax OK
sudo systemctl reload apache2
				
			
Linux vps

使用域名或IP地址访问网站:应显示“Hello from LAMP!”。

检查PHP ↔ MySQL(PDO)连接

创建/var/www/example.com/public_html/dbtest.php

				
					<?php
try {
  $pdo = new PDO('mysql:host=localhost;dbname=appdb;charset=utf8mb4','appuser','S3cureP@ss!', [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
  ]);
  echo $pdo->query('SELECT 1')->fetchColumn();
} catch (Throwable $e) { echo $e->getMessage(); }
				
			

打开《http://example.com/dbtest.php》→ 你将看到 1.

Linux vps

2分钟搞定HTTPS(额外福利)

若域名已指向服务器,我们将为您安装免费证书:

				
					sudo apt -y install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com

				
			

Certbot会自动启用HTTPS和自动续期功能。

生产环境PHP配置(简要说明)

修改/etc/php/*/apache2/php.ini文件:

  • expose_php = Off
  • memory_limit = 256M(根据负载调整)
  • upload_max_filesize和post_max_size根据您的CMS系统设置
  • date.timezone = Europe/Kyiv
  • 重启 Apache:sudo systemctl reload apache2。

AlmaLinux/Rocky/CentOS(RHEL)的类似操作

Certbot 会自动激活 HTTPS 和自动更新。

生产环境的 PHP 配置(简要说明)

修改 /etc/php/*/apache2/php.ini:

  • expose_php = Off
  • memory_limit = 256M (根据负载情况)
  • upload_max_filesize 和 post_max_size 根据您的 CMS
  • date.timezone = Europe/Kyiv
  • 重新启动 Apache:sudo systemctl reload apache2。

适用于 AlmaLinux/Rocky/CentOS (RHEL)

				
					sudo dnf -y install httpd mariadb-server php php-mysqlnd php-cli php-xml php-zip php-curl
sudo systemctl enable --now httpd mariadb
sudo mysql_secure_installation
# дальше — те же шаги: создать БД/пользователя, vhost в /etc/httpd/conf.d/site.conf,
# включить firewalld: sudo firewall-cmd --add-service=http --add-service=https --permanent && sudo firewall-cmd --reload
				
			

启动LAMP环境检查清单

  • Apache运行正常,80/443端口已开放,mod_rewrite模块已启用。
  • MySQL已安全配置,appdbappuser已创建。
  • PHP已安装必要模块,info.php已删除。
  • 虚拟主机已启用,AllowOverride All已设置。
  • dbtest.php返回1(PDO功能正常)。
  • HTTPS已启用(若域名可用),cron/auto-renew已激活。