温馨提示×

ubuntu php为何登录失败

小樊
38
2026-10-04 10:14:42
栏目: 编程语言

在 Ubuntu 上 PHP 登录失败,通常不是 PHP 本身的问题,而是环境、配置或代码逻辑导致的。下面按最常见原因给你一个排查清单,你可以逐条对照。


一、Web 服务 / PHP 环境问题

1. PHP 没有正常运行

php -v

如果报错,说明 PHP 没装好。

检查 Web 服务:

systemctl status apache2
# 或
systemctl status nginx

2. PHP 与 Web 服务器未关联

  • Apache:确认 libapache2-mod-php 已安装
sudo apt install libapache2-mod-php
  • Nginx:确认使用了 php-fpm
systemctl status php8.1-fpm

二、Session 问题(最常见)

1. Session 目录无权限

ls -ld /var/lib/php/sessions

修复:

sudo chmod 1733 /var/lib/php/sessions

2. 没调用 session_start()

登录代码最前面必须有:

session_start();

三、数据库连接失败

1. 数据库服务未启动

systemctl status mysql

2. 账号/密码错误

常见错误:

  • localhost vs 127.0.0.1
  • 用户无远程或本地权限

测试:

mysql -u用户名 -p

四、登录逻辑错误

1. 密码未加密对比

错误示例:

if ($pwd == $row['password']) {}

正确(假设用 password_hash):

password_verify($pwd, $row['password'])

2. SQL 写法错误

不要用:

"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 权限
  • 数据库连不上
  • 密码验证方式不对

如果你愿意,可以把:

  • 登录代码片段
  • 报错信息
  • Ubuntu / PHP 版本

发出来,我可以直接帮你定位。

0 踩