在PHP中无法连接Memcached的解决办法

Memcached 已经正确安装配置, 并且防火墙也已经打开了本机对自己所有端口的访问, telnet localhost 11211也正常, 但是通过PHP访问出现

[Sat May 17 22:02:42 2014] [error] [client 59.109.104.166] PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Permission denied (13) in /var/www/html/test.php on line 8

这是由于SELinux的配置引起的. 通过 sudo getenforce 可以看到 SELinux 处于打开状态, 这时候可以通过这个命令允许httpd对本机其他服务的访问:

sudo setsebool httpd_can_network_connect=1

用于测试memcached的PHP脚本:

connect($server);

    if ($isMemcacheAvailable) {
        $aData = $memcache->get('data');
        echo '
';
        if ($aData) {
            echo '

Data from Cache:

';
            print_r($aData);
        } else {
            $aData = array(
                'me' => 'you',
                'us' => 'them',
            );
            echo '

Fresh Data:

';
            print_r($aData);
            $memcache->set('data', $aData, 0, 300);
        }
        $aData = $memcache->get('data');
        if ($aData) {
            echo '

Memcache seem to be working fine!

';
        } else {
            echo '

Memcache DOES NOT seem to be working!

';
        }
        echo '
'; } } if (!$isMemcacheAvailable) { echo 'Memcache not available'; } ?>

25 sudo getenforce

26 sudo ifconfig

27 sudo vi /etc/rc.d/init.d/memcached

28 sudo setsebool httpd_can_network_connect=1

posted on 2014-05-17 22:20  Milton  阅读(1567)  评论(0编辑  收藏  举报

导航