ubuntu lamp故障排查怎么做
导读:Ubuntu LAMP故障排查指南 1. 确认问题现象 首先明确故障的具体表现(如无法访问网站、页面显示500错误、MySQL无法连接等),记录错误消息(如浏览器提示、命令行输出),这有助于快速定位问题范围(如Web服务、数据库、PHP配置...
Ubuntu LAMP故障排查指南
1. 确认问题现象
首先明确故障的具体表现(如无法访问网站、页面显示500错误、MySQL无法连接等),记录错误消息(如浏览器提示、命令行输出),这有助于快速定位问题范围(如Web服务、数据库、PHP配置或权限问题)。
2. 检查服务运行状态
使用systemctl
命令确认LAMP核心服务是否正常运行:
sudo systemctl status apache2 # 检查Apache状态
sudo systemctl status mysql # 检查MySQL状态
sudo systemctl status php7.x-fpm # 检查PHP-FPM状态(根据PHP版本调整,如php8.1-fpm)
若服务未运行,使用sudo systemctl start <
服务名>
启动;若启动失败,需进一步查看对应日志(如Apache的error.log
)。
3. 查看错误日志
日志是故障排查的关键,常见日志路径及查看方式:
- Apache错误日志:
sudo tail -f /var/log/apache2/error.log
(实时查看最新错误) - MySQL错误日志:
sudo tail -n 50 /var/log/mysql/error.log
(查看最近50条错误) - PHP错误日志:若使用Apache,日志通常在
/var/log/apache2/error.log
;若使用PHP-FPM,检查/var/log/php7.x-fpm.log
(需提前开启PHP错误日志功能)。
4. 验证网络与端口连通性
- 测试网络连通性:
ping www.baidu.com
(若无法ping通,可能是服务器网络故障或DNS问题); - 检查DNS解析:
nslookup www.baidu.com
(若解析失败,修改/etc/resolv.conf
添加可用DNS服务器,如nameserver 8.8.8.8
); - 确认端口监听:
sudo netstat -tuln | grep -E '80|3306|9000'
(检查Apache(80端口)、MySQL(3306端口)、PHP-FPM(9000端口)是否正常监听); - 测试端口访问:从本地机器使用
telnet < 服务器IP> 80
(若无法连接,可能是防火墙或安全组阻止了端口)。
5. 检查配置文件语法
- Apache配置:
sudo apachectl configtest
(检查/etc/apache2/apache2.conf
及/etc/apache2/sites-available/
下的虚拟主机配置是否有语法错误); - MySQL配置:
sudo mysqld --validate-config
(验证/etc/mysql/my.cnf
或/etc/my.cnf
的配置合法性); - PHP配置:
php -m
(检查所需PHP模块是否启用,如mysqli
、gd
;若未启用,编辑/etc/php/7.x/apache2/php.ini
取消对应模块前的注释,如extension=mysqli.so
)。
6. 确认文件权限
Web服务器(如www-data
用户)需要对网站目录和文件有正确的访问权限:
sudo chown -R www-data:www-data /var/www/html # 将网站目录所有者设为www-data
sudo chmod -R 755 /var/www/html # 设置目录权限为755(可读可执行),文件权限为644(可读可写)
7. 排查端口冲突
使用netstat
或ss
命令检查端口是否被其他进程占用:
sudo netstat -tulnp | grep ':80' # 检查80端口是否被占用
sudo netstat -tulnp | grep ':3306' # 检查3306端口是否被占用
若端口被占用,可通过kill -9 <
进程ID>
终止占用进程,或修改对应服务的端口(如修改Apache端口,在/etc/apache2/ports.conf
中更改Listen 80
为Listen 8080
)。
8. 测试基础功能
- 测试Apache:在
/var/www/html
下创建info.php
文件,内容为< ?php phpinfo(); ?>
,访问http://服务器IP/info.php
(若能显示PHP信息页面,说明Apache和PHP集成正常); - 测试MySQL:登录MySQL控制台
mysql -u root -p
(输入root密码),执行SHOW DATABASES;
(若能显示数据库列表,说明MySQL连接正常)。
9. 重启服务
完成配置更改或修复后,重启相关服务使更改生效:
sudo systemctl restart apache2
sudo systemctl restart mysql
sudo systemctl restart php7.x-fpm
10. 其他常见问题排查
- 依赖问题:若安装或启动时出现依赖错误,运行
sudo apt-get install -f
修复依赖; - 磁盘空间:使用
df -h
检查磁盘空间(若/
分区使用率超过80%,清理无用文件,如/var/log
下的旧日志); - SELinux(若启用):使用
sestatus
检查SELinux状态,若为Enforcing
,可能需要调整策略(如setenforce 0
临时关闭,或修改/etc/selinux/config
永久关闭)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp故障排查怎么做
本文地址: https://pptw.com/jishu/715979.html