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

时间:2023-03-09 21:33:18
在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