file_get_contents(/home/wwwroot/demo.api.cn/vendor/workerman/workerman/../_home_wwwroot_demo.api.cn_service_start.php.pid): failed to open stream: No such file or directory
session_start(): Cannot send session cookie - headers already sent by (output started at /home/wwwroot/demo.api.cn/service/start.php:107)
session_start(): Cannot send session cache limiter - headers already sent (output started at /home/wwwroot/demo.api.cn/service/start.php:107)
业务里不要使用php自带的session cookie方法,php cli不支持原生session cookie接口。
用
Workerman\Protocols\Http::header
Workerman\Protocols\Http::setcookie
等方法。
http://doc.workerman.net/315182
嗯嗯 都是没有用原生的 谢谢啊,我看错误日志的时候,我发现是先报的去读取主进程id的时候( Get master process PID),报那个主进程PID的文件找不到的错误,然后接着报了这个session的错误!
但是我打开PID文件的路径(/home/wwwroot/demo.api.cn/vendor/workerman/workerman/../_home_wwwroot_demo.api.cn_service_start.php.pid)是可以找到的啊,但是文件的所属是root且可读可写,但是其他用户都有读的权限。而且我应用启动起来的都是root,很纳闷啊。
下面是具体的错误日志。
file_get_contents(/home/wwwroot/demo.api.cn/vendor/workerman/workerman/../_home_wwwroot_demo.api.cn_service_start.php.pid): failed to open stream: No such file or directory
session_start(): Cannot send session cookie - headers already sent by (output started at /home/wwwroot/demo.api.cn/service/start.php:107)
session_start(): Cannot send session cache limiter - headers already sent (output started at /home/wwwroot/demo.api.cn/service/start.php:107)
希望老大能够答疑解惑下。
谢谢
启动时这个文件是不存在的,启动后会存储这个文件。
这些报错是已知可预见的错误,并且代码里都用 @ 做了抑制,正常情况下不会报出来,可能是你的php环境有特殊设置,导致用 @ 抑制的错误报了出来。