不灭的焱

革命尚未成功,同志仍须努力 下载Java21

作者:AlbertWen  添加时间:2026-06-22 11:55:33  修改时间:2026-07-07 09:46:22  分类:04.运维体系  编辑

可以从 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。