某天,登陆zabbix的时候突然首页显示PHP A session had already been started - ignoring session_start()
网上查找了下相关的error,排查为php配置文件导致的,问题处理如下:
情况一,A session had already been started - ignoring session_start()
找到 php.ini 中,查看 session.auto_start = 1 是否为1 ,如果是1,请更改为0,然后重启nginx(或Apache)服务器,原因是是1的话,服务器会自动启动session,在php中使用session_start() 就多余了,所有会报错,如果你不想更改php.ini文件你可以这样去做 if(!isset($_SESSION)){ session_start(); }
情况二,A session had already been started - ignoring session_start() - in xxx.php line 1
1.查看 xxx.php 的session_start() 之前是否有字符输出,如果有,请将session_start() 移到最前面或者删除前面的字符
2. 如果前面没有字符,检查文件编码是否为UTF-8,如果是请用DW 或则其他编辑器将文件的DOM去掉,在这里强烈警告不要用Windows的记事本编辑,因为他会自动添加DOM头
修改完成后记得重启zabbix
问题原因,具体可参考PHP session.auto_start参数
官方文档:http://php.net/manual/zh/session.configuration.php#ini.session.auto-start
错误信息