在 Linux 中搭建的 WordPress 打不开,可能由多种原因导致。以下是一个系统性的排查和解决步骤,帮助你定位并解决问题:
一、检查服务是否正常运行
-
检查 Web 服务器(Apache/Nginx)是否运行
sudo systemctl status apache2 # Debian/Ubuntu 上 Apache sudo systemctl status nginx # Nginx sudo systemctl status httpd # CentOS/RHEL 上 Apache- 如果未运行,请启动:
sudo systemctl start apache2 # 或 nginx / httpd - 设置开机自启:
sudo systemctl enable apache2
- 如果未运行,请启动:
-
检查数据库服务(MySQL/MariaDB)是否运行
sudo systemctl status mysql # 或 mariadb- 启动数据库:
sudo systemctl start mysql
- 启动数据库:
二、检查端口监听情况
确保 Web 服务器监听了 80 端口(HTTP)或 443(HTTPS):
sudo netstat -tulnp | grep :80
或使用 ss:
sudo ss -tulnp | grep :80
如果没有输出,说明 Web 服务没有监听 80 端口。
三、检查防火墙设置
Linux 防火墙(如 ufw、firewalld)可能阻止了访问。
-
Ubuntu 使用 ufw:
sudo ufw status sudo ufw allow 'Apache Full' # 或允许 80 端口 sudo ufw allow 80/tcp -
CentOS/RHEL 使用 firewalld:
sudo firewall-cmd --state sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
四、检查 WordPress 文件权限和路径
确保 WordPress 文件放在正确的目录中(通常是 /var/www/html 或 /var/www/wordpress),并且权限正确:
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
注意:
www-data是 Apache 的默认用户,Nginx 可能也是。如果使用其他用户请替换。
五、检查配置文件
-
Apache 虚拟主机配置 或 Nginx Server Block 是否正确?
- 检查是否有语法错误:
sudo apache2ctl configtest # Apache sudo nginx -t # Nginx - 确保 DocumentRoot 指向 WordPress 目录。
- 确保
index.php在DirectoryIndex中。
- 检查是否有语法错误:
-
WordPress 配置文件
wp-config.php- 检查数据库连接信息是否正确:
define('DB_NAME', 'your_db_name'); define('DB_USER', 'your_db_user'); define('DB_PASSWORD', 'your_password'); define('DB_HOST', 'localhost'); - 确保数据库存在且用户有权限。
- 检查数据库连接信息是否正确:
六、检查数据库连接
登录 MySQL 测试连接:
mysql -u your_db_user -p
然后查看数据库是否存在:
SHOW DATABASES;
USE your_db_name;
SHOW TABLES; -- 应该看到 wp_posts, wp_users 等表
如果没有表,可能是 WordPress 安装不完整。
七、查看日志文件(关键!)
日志是诊断问题的关键。
-
Web 服务器日志
- Apache:
tail -f /var/log/apache2/error.log - Nginx:
tail -f /var/log/nginx/error.log
- Apache:
-
PHP 错误日志
tail -f /var/log/php_errors.log # 或查看 Apache/Nginx 日志中的 PHP 错误
常见错误:
- “Error establishing a database connection” → 数据库连接失败
- “Permission denied” → 文件权限问题
- “File not found” → 路径配置错误
八、测试访问方式
-
本地测试:
curl http://localhost如果本地能访问,但外部不能,可能是防火墙或网络问题。
-
从浏览器访问:
- 输入你的服务器 IP 或域名:
http://your-server-ip - 如果显示“建立数据库连接时出错”,重点检查数据库配置。
- 输入你的服务器 IP 或域名:
九、SELinux(仅限 CentOS/RHEL)
SELinux 可能阻止 Apache 访问文件:
getenforce
如果是 Enforcing,尝试临时关闭测试:
sudo setenforce 0
如果此时可以访问,需要配置 SELinux 策略:
sudo setsebool -P httpd_can_network_connect_db 1
sudo restorecon -R /var/www/html
十、其他常见问题
- WordPress 地址设置错误:检查
wp_options表中的siteurl和home字段。 - 缺少 PHP 模块:确保安装了
php-mysql,php-gd,php-curl等。sudo apt install php-mysql php-gd php-curl php-zip # Ubuntu/Debian sudo yum install php-mysql php-gd php-curl # CentOS - PHP-FPM 未运行(如果使用 Nginx + PHP-FPM):
sudo systemctl status php-fpm
总结排查流程:
| 步骤 | 操作 |
|---|---|
| 1 | 检查 Apache/Nginx 是否运行 |
| 2 | 检查 MySQL 是否运行 |
| 3 | 检查防火墙是否放行 80 端口 |
| 4 | 查看错误日志(最重要) |
| 5 | 检查 wp-config.php 数据库配置 |
| 6 | 检查文件权限和路径 |
💡 建议:打开浏览器开发者工具(F12),查看 Network 标签页,看请求返回的是 403、404 还是 500 错误,这能快速定位问题类型。
如果你提供具体的错误信息(比如页面提示、日志内容、使用的 Linux 发行版等),我可以给出更精准的解决方案。
CLOUD云知道