我有基于LAMP的PHP& MySql Web应用程序托管在新加坡地区的digitalocean独立服务器上。一台PHP服务器+一台远程MySql数据库服务器,两者都运行正常。因为应用程序必须读取比写入更多,我想添加一个memcache服务器。
到目前为止我已尝试过: - 使用此 tutorial中的这些步骤 在2GB的液滴上。
现在我有一个公共ip:129.x.x.x
和私有ip:10.x.x.x
的内存缓存服务器,
1-p 11211
2.-m 2048
3.-c 1024
4.-l 127.0.0.1
memcached服务器已成功安装并缓存localhost上的测试数据。但我想在其他远程Web服务器上使用它,
所以我已将memcached.conf
文件-l 127.0.0.1
更改为此memcached服务器私有IP -l 10.x.x.x
。
现在,当我检查memcached服务器并输入ps aux | grep memcached
时,它会显示:
tcp 0 0 10.x.x.x:11211 *:* LISTEN 3742/memcached
当我检查统计信息echo "stats settings" | nc 10.x.x.x 11211
时,它会显示有关memcached服务器的所有信息并且它正在运行。
出于测试目的,我创建了一个文件test.php
并保存在PHP服务器上并尝试连接。
<?php
$mc = new Memcached();
$mc->addServer("**10.x.x.x**", 11211);
$result = $mc->get("test_key");
if($result) {
echo $result;
} else {
echo "No data on Cache. Please refresh.";
$mc->set("test_key", "test data from Cache!") or die ("Failed to save data at Memcached server");
}
?>
但它始终显示HTTP ERROR 500
错误页面,&#34;页面在PHP服务器192.x.x.x is currently unable to handle this request
上没有工作错误,但我的其他PHP和MySql应用程序在同一台服务器上运行。
相同的代码正在运行并在memcached服务器上成功缓存数据但在远程PHP服务器中无法正常工作。
当我尝试telnet 10.x.x.x 11211
它成功连接时,sudo iptables -L
将INPUT策略ACCEPT输出到任何地方。
我已经尝试了很多谷歌搜索,但它没有帮助我任何事情。
答案 0 :(得分:0)
检查Web服务器错误日志后,显示
Class 'Memcached' not found
。我必须在Web服务器中安装memcached php模块才能连接到远程memcached实例。输入
apt-get install php5-memcached
并通过添加
更改php.ini extension = memcached.so
,
比php web服务器启动连接到远程memcached服务器。如果你想使用memcached进行会话而不是打开php.ini文件并添加
session.save_handler = memcache
session.save_path = 'tcp://10.x.x.x:11211'
最后,重启服务器。