OCS Inventory NG 2.12.1配置LDAP+SSO后空白页问题求助
OCS Inventory NG 2.12.1 LDAP+SSO配置空白页问题排查
环境信息
- OCS Inventory NG 版本:2.12.1
- Active Directory 版本:2012
关于LDAP+SSO支持说明
OCS Inventory NG 2.12.1支持LDAP+SSO(Kerberos/mod_auth_gssapi)认证,define('AUTH_TYPE', 4);正是对应SSO认证模式的配置项。
空白页问题排查步骤
1. 查看Apache错误日志定位根源
空白页多数是服务器端报错导致,优先检查Apache错误日志:
tail -f /var/log/apache2/error.log
刷新空白页,查看是否有PHP致命错误、权限异常或SSO相关报错,比如文件读取权限不足、变量未定义等。
2. 验证OCS配置文件完整性与权限
- 确认
/usr/share/ocsinventory-reports/ocsreports/var.php中仅设置了define('AUTH_TYPE', 4);,无其他冲突的认证配置项 - 确保Apache运行用户(通常为
www-data)拥有该文件的读取权限:chown www-data:www-data /usr/share/ocsinventory-reports/ocsreports/var.php chmod 644 /usr/share/ocsinventory-reports/ocsreports/var.php
3. 确认Apache正确传递认证用户信息
OCS需要从Apache获取SSO认证后的用户名,检查虚拟主机配置是否包含以下内容:
<Location /ocsreports> AuthType GSSAPI AuthName "OCS Inventory SSO" GssapiCredStore keytab:/etc/apache2/httpd.keytab GssapiNegotiateOnce On Require valid-user # 确保用户名传递给PHP SetEnv REMOTE_USER %{REMOTE_USER}s </Location>
可创建测试文件验证用户信息传递:在/var/www/html下新建test_sso.php,内容为:
<?php echo $_SERVER['REMOTE_USER']; ?>
访问该文件,确认能输出当前AD用户名(格式如DOMAIN\username或username@domain.com)。
4. 检查OCS用户映射匹配
- 确保AD用户名已在OCS系统中存在,或在OCS后台(管理→配置→LDAP配置)开启了自动创建用户选项
- 注意用户名格式一致性,比如OCS内用户名是小写,AD返回大写可能导致匹配失败,进而引发空白页
5. 临时开启PHP错误显示
修改对应PHP版本的php.ini文件(如/etc/php/7.4/apache2/php.ini):
display_errors = On error_reporting = E_ALL
重启Apache后刷新空白页,直接查看具体错误信息,快速定位问题。
内容的提问来源于stack exchange,提问作者Timur
相关产品推荐
相关产品推荐

