Zabbix 首页提示PHP A session had already been started – ignoring session_start()

摘要

Zabbix 首页提示PHP A session had already been started – ignoring session_start()

Zabbix 首页提示PHP A session had already been started - ignoring session_start()

zabbix


在一个阳光明媚的早上,我打开了我的zabbix(平常没啥事我是不打开的,因为做好了zabbix报警,还是微信的)

突然: please see 下图
zabbix.png-127.1kB


我这小心脏(因为阿里云的快照7.1就开始收费,我现在服务器已经没有设置快照。所以比较紧张)
1.jpg-18.6kB

说时迟,那时快。 我赶紧百度了一下error

A session had already been started - ignoring session_start()

如果这后面没有任何文件,你需要这样去解决

找到 php.ini 中,查看 session.auto_start = 1 是否为1 ,如果是1,请更改为0,然后重启IIS(或Apache、nginx)服务器,原因是是1的话,服务器会自动启动session,在php中使用session_start() 就多余了,所有会报错,如果你不想更改php.ini文件你可以这样去做

if(!isset($_SESSION)){<br />
   session_start();<br />
}<br />

如果出现

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头!

设置完之后重启nginx
zabbix1.png-121.5kB


设置完以后我去PHP官方查看了一下session.auto_start参数,原因可能是我安装禅道的时候开启了php的session共享,没有关闭。所以操作zabbix乱码

zabbix2.JPG-14.4kB
官方参考:http://php.net/manual/zh/session.configuration.php#ini.session.auto-start

2.jpg-6.4kB