在 Ubuntu 上 PHP 登录失败,通常不是 PHP 本身的问题,而是环境、配置或代码逻辑导致的。下面按最常见原因给你一个排查清单,你可以逐条对照。
php -v
如果报错,说明 PHP 没装好。
检查 Web 服务:
systemctl status apache2
# 或
systemctl status nginx
libapache2-mod-php 已安装sudo apt install libapache2-mod-php
php-fpmsystemctl status php8.1-fpm
ls -ld /var/lib/php/sessions
修复:
sudo chmod 1733 /var/lib/php/sessions
登录代码最前面必须有:
session_start();
systemctl status mysql
常见错误:
localhost vs 127.0.0.1测试:
mysql -u用户名 -p
错误示例:
if ($pwd == $row['password']) {}
正确(假设用 password_hash):
password_verify($pwd, $row['password'])
不要用:
"SELECT * FROM user WHERE name='$user'"
用 预处理。
打开错误显示:
ini_set('display_errors', 1);
error_reporting(E_ALL);
或查看日志:
tail -f /var/log/apache2/error.log
Ubuntu 上 PHP 登录失败,90% 是:
- Session 权限
- 数据库连不上
- 密码验证方式不对
如果你愿意,可以把:
发出来,我可以直接帮你定位。