我已经阅读了很多关于信号量问题的帖子,但似乎没有一个与这个特定问题有关。我正在运行 Apache 2.4 和 PHP 7.1 作为 Zend Server CE 的一部分,当启动 Apache 服务时,Apache 错误日志中显示以下致命错误:
ZShmStorage(): Fatal error: failed to allocate semaphore. Permission denied
我猜这与共享内存存储有关,但我不清楚......
- 它实际上试图为什么分配信号量
- 在哪里寻找与所述信号量相关的配置
我想这可能与 Zend 缓存有关,所以我确保权限对于[ZendServerPath]/tmp/datacache
.
我还认为它可能与 PHP 会话有关,因此我确保为文件中指定的目录session.save_path
也[ZendServerPath]/etc/php.ini
具有适当的权限。
我不确定还有什么地方可以看,因为似乎没有任何与此相关的讨论(我发现),而是所有关于可用空间之类的东西。万一它与分配过程中出现的问题有关,我继续执行ipcs -s
并注意到在 Zend 服务器运行时存在大约 20 个信号量数组。我停止了服务并ipcs -s
再次运行——没有留下任何信号量数组。重新启动 Zend Server 服务并再次遇到错误,并且还重新分配了大约 20 个信号量数组。
任何可以为我指明正确方向的帮助或信息将不胜感激。