温馨提示×

ubuntu lamp如何调试

小樊
41
2026-09-25 07:20:47
栏目: 智能运维

在 Ubuntu 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境后,调试通常分为 服务状态、日志、配置、PHP、数据库、网络 几个方面。下面给你一套系统化的调试方法。


一、确认服务是否运行

1. Apache

sudo systemctl status apache2

启动 / 重启 / 停止:

sudo systemctl start apache2
sudo systemctl restart apache2
sudo systemctl stop apache2

测试是否监听:

sudo netstat -tlnp | grep :80
# 或
curl http://localhost

2. MySQL / MariaDB

sudo systemctl status mysql
# 或
sudo systemctl status mariadb

登录测试:

mysql -u root -p

3. PHP

查看版本:

php -v

Apache 是否加载 PHP:

apache2ctl -M | grep php

二、查看日志(最重要)

Apache 错误日志

sudo tail -f /var/log/apache2/error.log

访问日志:

sudo tail -f /var/log/apache2/access.log

PHP 错误

编辑 php.ini:

sudo nano /etc/php/8.x/apache2/php.ini

确保:

display_errors = On
error_reporting = E_ALL
log_errors = On

PHP 日志位置:

error_log = /var/log/php_errors.log

三、测试 PHP 是否正常工作

创建测试文件:

sudo nano /var/www/html/info.php

内容:

<?php
phpinfo();

浏览器访问:

http://localhost/info.php

如果打不开:

  • Apache 未启动
  • 文件权限问题
  • PHP 模块未启用

四、权限问题调试(非常常见)

网站目录权限

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

写文件失败

ls -ld /var/www/html

五、虚拟主机调试

查看启用站点:

ls /etc/apache2/sites-enabled/

测试配置:

sudo apache2ctl configtest

重启生效:

sudo systemctl restart apache2

六、数据库调试

无法连接数据库

常见原因:

  • 用户名/密码错误
  • 权限不足
  • 绑定地址限制

查看 MySQL 绑定:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1

授权示例:

GRANT ALL ON dbname.* TO 'user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

七、防火墙 / 端口问题

sudo ufw status

允许 HTTP:

sudo ufw allow 80
sudo ufw allow 443

八、常见问题速查

问题 可能原因
403 Forbidden 目录权限 / AllowOverride
404 Not Found DocumentRoot 错误
500 Internal PHP 语法 / .htaccess
页面空白 PHP 报错被隐藏
无法连接 DB 用户权限 / 防火墙

九、推荐调试组合命令

sudo systemctl status apache2 mysql
sudo apache2ctl configtest
tail -f /var/log/apache2/error.log

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Apache / PHP / MySQL 版本
  • 具体报错信息或现象

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

0 踩