可以从 3 个层面检查:osTicket 后台检查、命令行检查、Web 环境检查。
目前 osTicket 官网下载页显示:osTicket Core v1.18.3 要求 PHP 8.2–8.4,MySQL 5.5+;官方安装文档也写明 PHP 8.2–8.4,推荐 PHP 8.4。(osticket.com) (docs.osticket.com)
1. 最简单:在 osTicket 后台看系统信息
登录 osTicket 管理后台:
Admin Panel → Dashboard → Information
这里会显示:
Server Information PHP Extensions PHP Settings Database Information Usage
官方文档说明这个页面会展示服务器信息、PHP 扩展、PHP 设置、数据库信息等。(docs.osticket.com)
重点看:
PHP Version mysqli mbstring intl gd imap apcu xml json fileinfo phar
如果某些扩展未启用,页面一般会提示。
2. 命令行检查 PHP 版本
在服务器执行:
php -v
正常建议看到:
PHP 8.2.x PHP 8.3.x PHP 8.4.x
如果是:
PHP 7.x PHP 8.0 PHP 8.1
对于新版 osTicket 1.17+ / 1.18+ 就不建议继续使用。官方发布说明提到,v1.17 及更新版本要求 PHP 8.2–8.4。(forum.osticket.com)
3. 检查 PHP 扩展是否安装
执行:
php -m
然后检查是否包含这些扩展:
mysqli mbstring intl gd imap apcu xml json fileinfo phar openssl curl zip
也可以用一条命令快速筛选:
php -m | egrep "mysqli|mbstring|intl|gd|imap|apcu|xml|json|fileinfo|phar|openssl|curl|zip"
重点说明:
| 扩展 | 作用 |
|---|---|
mysqli |
连接 MySQL,必须 |
mbstring |
多字节字符,中文环境必须 |
intl |
国际化、语言处理 |
gd |
图片、验证码、附件缩略图相关 |
imap |
邮件收取相关 |
apcu |
缓存加速,建议安装 |
xml |
XML 解析 |
fileinfo |
附件 MIME 类型识别 |
phar |
语言包 .phar 文件需要 |
openssl |
HTTPS、邮件 TLS/SSL |
curl |
外部请求、插件可能需要 |
zip |
压缩包、附件处理相关 |
4. 检查 Web 使用的 PHP 版本
注意:命令行 PHP 和 Nginx/Apache 使用的 PHP 可能不是同一个版本。
新建一个测试文件:
vim /www/wwwroot/你的站点/phpinfo.php
内容:
<?php phpinfo();
然后浏览器访问:
https://你的域名/phpinfo.php
重点看:
PHP Version Loaded Configuration File Scan this dir for additional .ini files mysqli mbstring intl gd imap apcu
看完后一定删除:
rm -f /www/wwwroot/你的站点/phpinfo.php
因为 phpinfo() 会暴露服务器路径、扩展、配置等敏感信息。
5. 宝塔面板检查方式
如果你用的是宝塔 Linux 面板,可以这样看:
检查 PHP 版本
宝塔面板 → 网站 → 对应站点 → PHP版本
确认站点绑定的是:
PHP 8.2 / PHP 8.3 / PHP 8.4
检查扩展
宝塔面板 → 软件商店 → PHP-8.2 / PHP-8.3 / PHP-8.4 → 设置 → 安装扩展
建议安装:
mysqli fileinfo imap intl opcache apcu redis 可选
其中 mysqli 很关键。osTicket 官方论坛里也有安装问题被指出通常与 mysqli 扩展未安装或未启用有关。(forum.osticket.com)
6. 检查 PHP 配置参数
执行:
php -i | egrep "memory_limit|upload_max_filesize|post_max_size|max_execution_time|max_input_vars|date.timezone"
建议配置:
memory_limit = 256M upload_max_filesize = 20M post_max_size = 25M max_execution_time = 300 max_input_vars = 2000 date.timezone = Asia/Shanghai
如果你在台湾,也可以用:
date.timezone = Asia/Taipei
7. Nginx + PHP-FPM 检查
如果你是 Nginx 环境,检查 PHP-FPM 是否运行:
ps -ef | grep php-fpm
查看监听端口:
ss -lntp | grep php
常见结果:
127.0.0.1:9000 /run/php/php8.2-fpm.sock /tmp/php-cgi-82.sock
如果 Nginx 配置指向了错误版本,比如站点以为用 PHP 8.2,实际走的是 PHP 7.4 的 sock,就会出现兼容问题。
检查 Nginx 站点配置:
grep -R "fastcgi_pass" /etc/nginx/
宝塔环境常见路径:
grep -R "fastcgi_pass" /www/server/panel/vhost/nginx/
8. 一键检查脚本
你可以在服务器上执行这个脚本:
cat > check_osticket_env.sh <<'EOF'
#!/bin/bash
echo "========== PHP Version =========="
php -v
echo
echo "========== PHP Extensions =========="
for ext in mysqli mbstring intl gd imap apcu xml json fileinfo phar openssl curl zip; do
if php -m | grep -qi "^$ext$"; then
echo "[OK] $ext"
else
echo "[MISSING] $ext"
fi
done
echo
echo "========== PHP Config =========="
php -i | egrep "memory_limit|upload_max_filesize|post_max_size|max_execution_time|max_input_vars|date.timezone"
echo
echo "========== PHP Loaded Config =========="
php --ini
echo
echo "========== PHP-FPM Process =========="
ps -ef | grep php-fpm | grep -v grep
echo
echo "========== Listening PHP Ports/Sockets =========="
ss -lntp | grep php || true
EOF
chmod +x check_osticket_env.sh
./check_osticket_env.sh
9. 推荐的 osTicket PHP 环境
如果你是新部署或准备正式推广,建议:
Web Server:Nginx / Apache PHP:8.2 或 8.3 MySQL:5.7 / 8.0 字符集:utf8mb4 PHP 运行模式:PHP-FPM
虽然官方当前写的是 PHP 8.2–8.4,但生产环境我更建议优先用:
PHP 8.2 或 PHP 8.3
原因是插件、语言包、历史兼容性通常比直接上 8.4 更稳。 如果你的 osTicket 是 v1.18.3,可以再考虑 PHP 8.4。