如何快速定位Ubuntu PHP错误,高效解决网站故障问题?
- 内容介绍
- 文章标签
- 相关推荐
在 Ubuntu 上维护 PHP 网站时最常见的痛点就是"不知道从哪里找日志、权限不足导致看不到错误信息、开发和生产环境配置不一致". 下面把这些问题拆解成几个步骤,让你快速定位并解决。
一、确认 PHP 环境与版本
痛点:很多人忘记先确认 PHP 是否已安装或是哪个版本在运行,导致后续命令报错。
$ php -v
If you see a version number you're good – orwise install it first:
$ sudo apt update && sudo apt install php-{VERSION}
痛点:- 日志文件位置不一 - 权限不足导致看不到内容 - 对于不同服务器。需要不同方法判断 - 缺少实时监控手段,让排查拖延几小时。
a) Web服务器
-
Aspen/Apache :
/var/log/apache2/error.log -
Nginx+PHP‑FPM :
/var/log/nginx/error.log 或 /var/log/php7.x-fpm.log -
Nginx+FastCGI :
/usr/local/nginx/logs/error.log -
Litespeed :
/usr/local/lsws/logs/error.log
**注**的观点是。如果你没有足够权限查看 `/var/log/...` 文件,请使用 `sudo` 或切换至 root 使用者。
b) CLI 调试时查看 php.ini
bash
$ php --ini # 查看当前加载的主配置文件方法
c) 实时看日志
bash $ sudo tail -f /var/log/apache2/error.log # Apache 错误 $ sudo tail -f /var/log/php7.x-fpm.log # PHP‑FPM 错误三、开启错误显示与记录
a) 开发环境
text error_reporting = E_ALL # 报告所有级别,包括 Notice 和 Warning display_errors = On # 在浏览器中直接输出 log_errors = Off # 可选:关闭记录,只关注现场b) 生产环境
text error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT # 报告所有。但忽略废弃和严格模式警告 display_errors = Off # 不暴露给使用者 log_errors = On # 必须记录以便排查 error_log = /var/log/php.errors.log # 指定统一位置重新启动使改动生效
| 服务 | 重启命令 |
|---|---|
| Apache | sudo systemctl restart apache2 |
| Nginx + FPM | sudo systemctl restart nginx && sudo systemctl restart php7.x-fpm |
四、常见错误类型 & 快速修复方法
| 错误类型 | 典型报错信息 | 修复思路 |
|---|---|---|
| 语法错误 : Parse error: syntax error,unexpected T_STRING in file.php on line X. | 检查括号是否闭合,方括号,花括号 { },分号;是否正确放置,若是字符串拼接,请确认引号匹配。若出现 “T_STRING” 通常是未识别函数名或关键字拼写失误。 ⠕ ⠸ ▿ ▬ ▬ ▼ ▼ ▼ ▶ ◀ ◄ ▲ ▼ ▲ ◆ ★ ✎ ⚑ ⚒ ↔ ⇕ ⇧ ⇩ 🔁 🗣️ 🛠️ ➡ ➖ ✔ ✚ 💬 📦 ✅ ❌ 🔎 ⚠️ 🔐 👤 👨💻 👨🏭 📱 🖥️ 🤝 🏷️ 🔄 ☑️ ✅ ✋ ⏱️ ⌛⌚ ⏰ ⏲️ ☑︎✘🛑🛠🔧✂️🗜️🚧⚙️⚙💻⚙💻⚙🛠","⭑","⭑" "❶","❷","❸","❹","❺","❻","❼","❽","❾" "📢" "📢" "🔝" "🔜" "🤔","😅"。"" "" "" "" "" " |
在 Ubuntu 上维护 PHP 网站时最常见的痛点就是"不知道从哪里找日志、权限不足导致看不到错误信息、开发和生产环境配置不一致". 下面把这些问题拆解成几个步骤,让你快速定位并解决。
一、确认 PHP 环境与版本
痛点:很多人忘记先确认 PHP 是否已安装或是哪个版本在运行,导致后续命令报错。
$ php -v
If you see a version number you're good – orwise install it first:
$ sudo apt update && sudo apt install php-{VERSION}
痛点:- 日志文件位置不一 - 权限不足导致看不到内容 - 对于不同服务器。需要不同方法判断 - 缺少实时监控手段,让排查拖延几小时。
a) Web服务器
-
Aspen/Apache :
/var/log/apache2/error.log -
Nginx+PHP‑FPM :
/var/log/nginx/error.log 或 /var/log/php7.x-fpm.log -
Nginx+FastCGI :
/usr/local/nginx/logs/error.log -
Litespeed :
/usr/local/lsws/logs/error.log
**注**的观点是。如果你没有足够权限查看 `/var/log/...` 文件,请使用 `sudo` 或切换至 root 使用者。
b) CLI 调试时查看 php.ini
bash
$ php --ini # 查看当前加载的主配置文件方法
c) 实时看日志
bash $ sudo tail -f /var/log/apache2/error.log # Apache 错误 $ sudo tail -f /var/log/php7.x-fpm.log # PHP‑FPM 错误三、开启错误显示与记录
a) 开发环境
text error_reporting = E_ALL # 报告所有级别,包括 Notice 和 Warning display_errors = On # 在浏览器中直接输出 log_errors = Off # 可选:关闭记录,只关注现场b) 生产环境
text error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT # 报告所有。但忽略废弃和严格模式警告 display_errors = Off # 不暴露给使用者 log_errors = On # 必须记录以便排查 error_log = /var/log/php.errors.log # 指定统一位置重新启动使改动生效
| 服务 | 重启命令 |
|---|---|
| Apache | sudo systemctl restart apache2 |
| Nginx + FPM | sudo systemctl restart nginx && sudo systemctl restart php7.x-fpm |
四、常见错误类型 & 快速修复方法
| 错误类型 | 典型报错信息 | 修复思路 |
|---|---|---|
| 语法错误 : Parse error: syntax error,unexpected T_STRING in file.php on line X. | 检查括号是否闭合,方括号,花括号 { },分号;是否正确放置,若是字符串拼接,请确认引号匹配。若出现 “T_STRING” 通常是未识别函数名或关键字拼写失误。 ⠕ ⠸ ▿ ▬ ▬ ▼ ▼ ▼ ▶ ◀ ◄ ▲ ▼ ▲ ◆ ★ ✎ ⚑ ⚒ ↔ ⇕ ⇧ ⇩ 🔁 🗣️ 🛠️ ➡ ➖ ✔ ✚ 💬 📦 ✅ ❌ 🔎 ⚠️ 🔐 👤 👨💻 👨🏭 📱 🖥️ 🤝 🏷️ 🔄 ☑️ ✅ ✋ ⏱️ ⌛⌚ ⏰ ⏲️ ☑︎✘🛑🛠🔧✂️🗜️🚧⚙️⚙💻⚙💻⚙🛠","⭑","⭑" "❶","❷","❸","❹","❺","❻","❼","❽","❾" "📢" "📢" "🔝" "🔜" "🤔","😅"。"" "" "" "" "" " |

