PHP exec():为什么我可以访问共享内存,但不能访问命名信号量?(错误号=13)

PHP exec():为什么我可以访问共享内存,但不能访问命名信号量?(错误号=13),php,c,ipc,shared-memory,semaphore,Php,C,Ipc,Shared Memory,Semaphore,我正在使用phpexec()命令运行,get\u value.cget_value.c读取一个值并将其返回到我的PHP脚本。在我最初测试连接到共享内存时,它工作得很好 然后,当我添加信号量**时,sem\u open()返回errno=13 我在errno上放置了一个开关块,并从sem\u openman页面列出了所有错误案例。错误13没有被捕获,它只是落入了默认情况 错误13是什么 **我创建了带有权限的信号灯(0666 | O|u CREAT | O|u EXCL) 编辑:一切都可以从命令行

我正在使用php
exec()
命令运行,
get\u value.c
<附加到共享内存的code>get_value.c读取一个值并将其返回到我的PHP脚本。在我最初测试连接到共享内存时,它工作得很好

然后,当我添加信号量**时,
sem\u open()
返回errno=13

我在
errno
上放置了一个开关块,并从
sem\u open
man
页面列出了所有错误案例。错误13没有被捕获,它只是落入了默认情况

错误13是什么

**我创建了带有权限的信号灯(0666 | O|u CREAT | O|u EXCL)

编辑:一切都可以从命令行运行。

使用PHP
exec(“whoami”)
要确定用户,很可能是
www-data

这将让您知道apache试图访问系统资源的用户。然后您需要允许该用户访问这些资源

此用户通常位于:
/etc/apache2/envvars