【发布时间】:2016-08-24 08:04:20
【问题描述】:
我在新加坡地区的 digitalocean 独立服务器上托管了基于 LAMP 的 PHP 和 MySql Web 应用程序。一台 PHP 服务器 + 一台远程 MySql DB 服务器,两者都工作正常。因为应用程序必须读取多于写入,所以我想添加一个 memcache 服务器。
到目前为止我已经尝试过: - 使用此 tutorial 中的这些步骤 在 2gb 液滴上。
现在我有一个带有公共ip:129.x.x.x 和私人ip:10.x.x.x 的memcache 服务器,
1-p 11211
2.-m 2048
3.-c 1024
4.-l 127.0.0.1
memcached 服务器成功安装并缓存了本地主机上的测试数据。但我想在其他远程 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 错误页面,“页面在 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。
我已经尝试了很多谷歌搜索,但它对我没有任何帮助。
【问题讨论】:
标签: php mysql ubuntu caching memcached