非根用户时Semget权限被拒绝,服务器配置问题? 我有一个C++应用程序,它使用我试图通过PHP“Excel”命令调用的信号量。当从终端以“root”身份登录时,我可以成功运行应用程序,但是当apache尝试运行它(以用户apache身份)时,它会失败,并出现“权限被拒绝”错误

非根用户时Semget权限被拒绝,服务器配置问题? 我有一个C++应用程序,它使用我试图通过PHP“Excel”命令调用的信号量。当从终端以“root”身份登录时,我可以成功运行应用程序,但是当apache尝试运行它(以用户apache身份)时,它会失败,并出现“权限被拒绝”错误,c++,configuration,centos,semaphore,C++,Configuration,Centos,Semaphore,我做了一个“chwon-apache:apache-prog”和777的权限测试,它仍然失败 奇怪的是,这个应用程序通过apache在我的本地开发环境中运行得非常好。这两种环境都是Centos 6.4(最终版)x86_64,并以同一用户的身份运行PHP 我没有主意了,我不知道还能做什么 下面是我代码的相关部分 void landw(char* path, char* retType) { startLocking: int semid,count; struct sembuf o

我做了一个“chwon-apache:apache-prog”和777的权限测试,它仍然失败

奇怪的是,这个应用程序通过apache在我的本地开发环境中运行得非常好。这两种环境都是Centos 6.4(最终版)x86_64,并以同一用户的身份运行PHP

我没有主意了,我不知道还能做什么

下面是我代码的相关部分

void landw(char* path, char* retType)
{
startLocking:
    int semid,count;
    struct sembuf op;
    semid = semget((key_t)KEY,10,0666|IPC_CREAT);//Fails here
    if(semid==-1)
    {
      perror("error in creating semaphore, Reason:");
    }
...
我甚至把这句话改成了“semget”,作为一个测试,仍然是不允许的

semid = semget((key_t)KEY,10,0666|IPC_CREAT|S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);

谢谢

我终于解决了这个问题,问题是SELinux


SELinux在我的两台开发机器上都被禁用,但在生产服务器上被启用。

我最终解决了这个问题,问题是SELinux

SELinux在我的两台开发机器上都已禁用,但在生产服务器上已启用