不能';t store key:在cgi bin下运行c程序时出现系统错误

不能';t store key:在cgi bin下运行c程序时出现系统错误,c,apache,memcached,libmemcached,C,Apache,Memcached,Libmemcached,当我在CentOS 6.4上从命令行运行以下程序时,我得到了预期的结果,但当我以Apache cgi运行它时,我的错误无法存储key:SYSTEM errorerror。我通过同一个用户运行Memcached、Apache和program 我可能做错了什么 #include<stdio.h> #include<string.h> #include <libmemcached/memcached.h> int main(int

当我在CentOS 6.4上从命令行运行以下程序时,我得到了预期的结果,但当我以Apache cgi运行它时,我的错误
无法存储key:SYSTEM error
error。我通过同一个用户运行Memcached、Apache和program

我可能做错了什么

    #include<stdio.h>
    #include<string.h>
    #include <libmemcached/memcached.h>

    int main(int argc, char **argv) {
        memcached_server_st *servers = NULL;
        memcached_st *memc;
        memcached_return rc;
        char *key= "keystring";
        char *value= "keyvalue";
        char *key1= "keystring1";
        char *value1= "keyvalue1    ";

        memc= memcached_create(NULL);
        servers= memcached_server_list_append(servers, "localhost", 11211, &rc);
        rc= memcached_server_push(memc, servers);

        printf("Content-Type: text/plain;charset=us-ascii\n\n");

        if (rc == MEMCACHED_SUCCESS)
            printf("Added server successfully\n");
        else
            printf("Couldn't add server: %s\n",memcached_strerror(memc, rc));

        rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);

        if (rc == MEMCACHED_SUCCESS)
            printf("Key stored successfully\n");
        else
        printf("Couldn't store key: %s\n",memcached_strerror(memc, rc));

        char *keys[]= {"keystring", "keystring1"};
        size_t key_length[]= {9, 10};
        unsigned int x;
        uint32_t flags;

        char return_key[MEMCACHED_MAX_KEY];
        size_t return_key_length;
        char *return_value;
        size_t return_value_length;

        rc= memcached_mget(memc, keys, key_length, 2);

        x= 0;

     if (rc == MEMCACHED_SUCCESS)
      {
            while ((return_value= memcached_fetch(memc, return_key, &return_key_length,
                                              &return_value_length, &flags, &rc)))
            {
                if (rc == MEMCACHED_SUCCESS)
                {
                  printf("Key %s returned %s\n",return_key, return_value);
                }
            }
        }

        return 0;
    }
#包括
#包括
#包括
int main(int argc,字符**argv){
memcached_server_st*servers=NULL;
memcached_st*memc;
memu返回rc;
char*key=“keystring”;
char*value=“keyvalue”;
char*key1=“keystring1”;
char*value1=“keyvalue1”;
memc=memcached_create(NULL);
servers=memcached\u server\u list\u append(服务器,“localhost”、11211和rc);
rc=memcached\u server\u push(memc,服务器);
printf(“内容类型:text/plain;charset=us ascii\n\n”);
if(rc==MEMCACHED\u SUCCESS)
printf(“已成功添加服务器\n”);
其他的
printf(“无法添加服务器:%s\n”,memcached_strerror(memc,rc));
rc=memcached_集(memc,key,strlen(key),value,strlen(value),(time_t)0,(uint32_t)0);
if(rc==MEMCACHED\u SUCCESS)
printf(“密钥已成功存储\n”);
其他的
printf(“无法存储密钥:%s\n”,memcached_strerror(memc,rc));
char*keys[]={“keystring”,“keystring1”};
大小键长[]={9,10};
无符号整数x;
uint32_t标志;
char return_key[MEMCACHED_MAX_key];
大小\返回\键\长度;
char*返回_值;
大小\返回值\长度;
rc=memcached_mget(memc,key,key长度,2);
x=0;
if(rc==MEMCACHED\u SUCCESS)
{
而((return_value=memcached_fetch)(memc、return_key和return_key长度,
&返回值(长度、标志和rc)))
{
if(rc==MEMCACHED\u SUCCESS)
{
printf(“键%s返回%s\n”,返回\u键,返回\u值);
}
}
}
返回0;
}

最终通过禁用SELINUX摆脱了错误