温馨提示×

centos lamp如何调试

小樊
35
2026-10-23 19:42:30
栏目: 智能运维

在 CentOS 上调试 LAMP(Linux + Apache + MySQL/MariaDB + PHP),通常按“分层排查”的思路进行。下面按常见问题 → 调试方法 → 命令来说明。


一、系统与服务状态检查(先确认服务是否运行)

1. 查看 Apache 状态

systemctl status httpd

启动 / 重启 / 开机自启:

systemctl start httpd
systemctl restart httpd
systemctl enable httpd

2. 查看 MySQL / MariaDB

systemctl status mariadb
# 或
systemctl status mysqld

3. 查看 PHP 是否安装

php -v
httpd -M | grep php

二、Apache 调试

1. 查看 Apache 错误日志(最重要)

tail -f /var/log/httpd/error_log

访问页面时实时观察:

tail -f /var/log/httpd/access_log

2. 测试 Apache 配置

httpd -t

输出 Syntax OK 表示配置没问题。

3. 常见 Apache 问题

  • 403 Forbidden
    • 目录权限问题
    • SELinux 限制
  • 404 Not Found
    • DocumentRoot 配置错误
  • 500 Internal Error
    • PHP 报错(看 error_log)

三、PHP 调试

1. 开启 PHP 错误显示(开发环境)

编辑 php.ini:

vi /etc/php.ini

修改:

display_errors = On
error_reporting = E_ALL

重启 Apache:

systemctl restart httpd

2. 写测试文件

vi /var/www/html/info.php

内容:

<?php
phpinfo();

浏览器访问:

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

3. PHP 错误日志

tail -f /var/log/php-fpm/error.log
# 或
tail -f /var/log/httpd/error_log

四、MySQL / MariaDB 调试

1. 登录数据库

mysql -u root -p

2. 查看数据库日志

tail -f /var/log/mariadb/mariadb.log

3. PHP 连接数据库测试

<?php
$conn = new mysqli("localhost","user","pass","db");
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";

五、SELinux 与防火墙(CentOS 特有坑)

1. SELinux 导致 403

查看:

getenforce

临时关闭(不推荐生产):

setenforce 0

正确做法:

chcon -R -t httpd_sys_content_t /var/www/html

2. 防火墙

firewall-cmd --list-all
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

六、推荐调试流程(实战)

  1. 页面打不开
    • systemctl status httpd
    • tail error_log
  2. 页面 500
    • 开 display_errors
    • 看 PHP 日志
  3. 数据库连不上
    • mysql -u 测试
    • 检查用户权限
  4. 权限问题
    • ls -l /var/www
    • SELinux / firewall

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Apache 还是 Nginx
  • 具体报错信息

我可以直接帮你定位问题。

0 踩