温馨提示×

ubuntu apache2怎么排错

小樊
37
2026-09-11 04:40:41
栏目: 智能运维

在 Ubuntu 上排查 Apache2 问题,通常可以按照下面这个“由浅入深”的流程来做。


一、先看 Apache 是否在运行

systemctl status apache2

常见状态:

  • active (running) ✅ 正常
  • inactive (dead) ❌ 没启动
  • failed ❌ 启动失败

启动 / 重启:

sudo systemctl start apache2
sudo systemctl restart apache2

二、看错误日志(最重要)

1️⃣ Apache 错误日志

sudo tail -n 50 /var/log/apache2/error.log

常见错误:

  • 端口被占用
  • 配置文件语法错误
  • 权限不足
  • PHP 模块问题

三、检查配置文件语法

sudo apache2ctl configtest

输出:

  • Syntax OK
  • 有报错 ❌(会指出哪一行)

修复后:

sudo systemctl reload apache2

四、确认端口监听

sudo ss -tulnp | grep :80
# 或
sudo netstat -tulnp | grep apache

如果 80 端口被 nginx / 其他程序占用

sudo lsof -i :80

五、检查虚拟主机(站点)

列出已启用站点:

ls /etc/apache2/sites-enabled/

测试某个站点配置:

sudo apache2ctl -S

常见问题:

  • DocumentRoot 不存在
  • 权限不足(chmod / chown
  • ServerName 未设置

六、权限问题(非常常见)

网站目录建议权限:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www

SELinux 在 Ubuntu 一般关闭,不用管。


七、模块相关问题

查看已启用模块:

apache2ctl -M

启用模块(如 rewrite):

sudo a2enmod rewrite
sudo systemctl restart apache2

八、PHP 不解析?

检查:

php -v
sudo a2enmod php8.1   # 根据实际版本
sudo systemctl restart apache2

测试:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

访问:http://服务器IP/info.php


九、防火墙问题

sudo ufw status

允许 HTTP:

sudo ufw allow 80
sudo ufw allow 443

十、快速自检清单 ✅

  • [ ] systemctl status apache2
  • [ ] apache2ctl configtest
  • [ ] tail /var/log/apache2/error.log
  • [ ] 端口未被占用
  • [ ] 网站目录权限正确
  • [ ] 防火墙放行 80/443

如果你愿意,可以把 具体报错信息你想实现的功能(比如 HTTPS、反向代理、WordPress)发出来,我可以直接帮你定位问题。

0