温馨提示×

怎样调试ubuntu lamp

小樊
44
2026-10-18 17:01:16
栏目: 智能运维

调试 Ubuntu 下的 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境,通常按“分层排查”的思路进行。下面给你一套实用调试流程,从最常见的问题到进阶排查。


一、确认服务是否运行

1. Apache

systemctl status apache2

启动 / 重启 / 开机自启:

sudo systemctl start apache2
sudo systemctl restart apache2
sudo systemctl enable apache2

测试 Apache 是否正常:

curl http://localhost

或浏览器访问 http://服务器IP


2. MySQL / MariaDB

systemctl status mysql
# 或
systemctl status mariadb

启动:

sudo systemctl start mysql

登录测试:

mysql -u root -p

3. PHP

查看 PHP 版本:

php -v

确认 Apache 是否加载 PHP:

apache2ctl -M | grep php

(应看到 php7_module 或 php8_module)


二、查看日志(最关键)

Apache 错误日志

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

Apache 访问日志

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

PHP 错误

编辑 php.ini:

php --ini

常见位置:

/etc/php/8.1/apache2/php.ini

开启错误显示(开发环境):

display_errors = On
error_reporting = E_ALL

重启 Apache:

sudo systemctl restart apache2

三、测试 PHP 是否正常工作

创建测试文件:

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

内容:

<?php
phpinfo();

访问:

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

✅ 能看到 PHP 信息页 → PHP + Apache 正常
❌ 下载文件 / 空白页 → PHP 未正确加载


四、虚拟主机(VirtualHost)调试

示例配置文件:

sudo nano /etc/apache2/sites-available/example.conf

基本内容:

<VirtualHost *:80>
    ServerName example.local
    DocumentRoot /var/www/example

    <Directory /var/www/example>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用站点:

sudo a2ensite example.conf
sudo systemctl reload apache2

检查配置语法:

apache2ctl configtest

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

目录权限

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

.htaccess 不生效

sudo a2enmod rewrite
sudo systemctl restart apache2

六、数据库连不上

PHP 连 MySQL 测试

<?php
$conn = new mysqli("localhost", "root", "密码");
if ($conn->connect_error) {
    die("失败: " . $conn->connect_error);
}
echo "成功";

常见问题:

  • MySQL 没启动
  • 用户无权限
  • 用了 localhost 但走了 socket

解决:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

七、防火墙 / 端口

UFW

sudo ufw allow 80
sudo ufw allow 443
sudo ufw status

端口监听

sudo netstat -tulnp | grep :80

八、快速自检清单 ✅

  • [ ] Apache 能访问默认页
  • [ ] phpinfo 能显示
  • [ ] error.log 无致命错误
  • [ ] MySQL 能本地登录
  • [ ] 网站目录属于 www-data
  • [ ] rewrite 模块已开启

如果你愿意,可以把具体报错信息或现象(比如 500 错误、白屏、连不上数据库)贴出来,我可以帮你精准定位。

0 踩