如何在Ubuntu上连接单独的memcache服务器和从其他服务器使用?

时间:2016-04-29 08:42:31

标签: php mysql ubuntu caching memcached

我有基于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输出到任何地方。

我已经尝试了很多谷歌搜索,但它没有帮助我任何事情。

1 个答案:

答案 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' 最后,重启服务器。