在 Debian 上部署 WordPress 的 LAMP 实操指南
一 准备与系统要求
二 安装与验证 LAMP 环境
sudo apt update
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
sudo systemctl enable --now apache2 mariadb
sudo mysql_secure_installation
按向导设置 root 密码、移除匿名用户、禁止远程 root 登录、删除测试库并刷新权限。echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问 http://服务器IP/info.php,看到 PHP 信息页即正常。完成后可删除测试文件:sudo rm /var/www/html/info.php。三 创建数据库与用户
sudo mysql -u root -p
CREATE DATABASE wpdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPass!';
GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
四 部署 WordPress 文件与权限
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo cp -a /tmp/wordpress/. /var/www/html/
sudo chown -R www-data:www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
修改以下关键项(与上文数据库保持一致):define('DB_NAME', 'wpdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'StrongPass!');
define('DB_HOST', 'localhost');
define('FS_METHOD', 'direct'); // 允许 WordPress 直接写入文件(可选)
完成后保存退出。五 配置 Apache 与可选 HTTPS
sudo a2enmod rewrite
sudo systemctl reload apache2
sudo nano /etc/apache2/sites-available/000-default.conf
在 VirtualHost 内添加:ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
sudo a2ensite default-ssl.conf
sudo nano /etc/apache2/sites-available/default-ssl.conf
确保包含:SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
# 如使用中间证书,可添加:
# SSLCertificateChainFile /path/to/chain.pem
sudo systemctl reload apache2
sudo ufw allow in "Apache Full"
sudo ufw enable && sudo ufw status
六 常见问题与优化
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 300
memory_limit = 256M
sudo systemctl restart apache2
sudo nano /etc/apache2/apache2.conf
# 在 <Directory /var/www/> 内:
# AllowOverride All
sudo systemctl reload apache2