Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Memcache和memcached:“文件”;getaddrinfo失败";_Php_Memcached_Xampp - Fatal编程技术网

Php Memcache和memcached:“文件”;getaddrinfo失败";

Php Memcache和memcached:“文件”;getaddrinfo失败";,php,memcached,xampp,Php,Memcached,Xampp,我已经在OSX Mountain Lion的XAMPP中安装了memcache和memcached。尽管它们中没有一个出现在phpinfo()中 在我的index.php文件的顶部,我只包含以下文件: include 'memcache.php' 然后,当我进入我的网站时,我会看到一个MEMCACHE信息页面,该页面显示以下错误: 错误消息:fsockopen()[function.fsockopen]:php\u network\u getaddresses:getaddrinfo失败:提供

我已经在OSX Mountain Lion的XAMPP中安装了memcache和memcached。尽管它们中没有一个出现在
phpinfo()

在我的
index.php
文件的顶部,我只包含以下文件:

include 'memcache.php'
然后,当我进入我的网站时,我会看到一个MEMCACHE信息页面,该页面显示以下错误:

错误消息:fsockopen()[function.fsockopen]:php\u network\u getaddresses:getaddrinfo失败:提供了节点名或服务名,或未知`

我做错了什么


memcache和memcached是否可以在不显示在
phpinfo()
中的情况下安装?

必须有一个memcache或memcached守护进程运行并侦听。Memcache(d)就像apache一样是一个独立的服务器进程。它在端口/套接字上侦听请求。如果没有一个正在运行,则无法连接到它。如果一个正在运行,则可能是连接详细信息出错。。。这有点像通过mysqli或PDO访问数据库的DSN字符串


我猜在“memcache.php”文件中,包括您的文件,它要求设置主机名或节点名。这也告诉我您应该尝试连接到memcached服务器(因为memcached有节点的概念)。打开它,找到它试图连接到memcache服务器的位置,并对其进行编辑,使其指向localhost或您的机器名(或ip地址)。

问题在于您为连接到memcache服务器提供的主机名不正确。您的错误本质上是DNS找不到主机名。

修复了以下问题
似乎memcache没有完全安装或其他什么,因为现在它出现在
phpinfo()
中,并且一切正常!我不知道为什么在遵循其他几个教程时它不起作用,尽管理论上是它在OSX中为内置apache安装了memcache。

我是否必须启动memcached,或者是在xampp中启动apache时启动的?这是全新的。在哪里配置主机名之类的东西?php扩展没有
memcache.php
。您正在使用某人的memcached PHP库吗?您仍然需要安装memcached和PHP memcache/memcached libs。我已经使用多个教程安装了memcache和memcached,但它们中没有一个出现在phpinfo或
PHP-m
的终端中,因此我将试着更直截了当一点:在某个地方没有指定正确的memcached服务器名称。此错误与memcached守护进程无关;这与客户端无法解析IP地址有关-如果客户端无法解析IP地址,则即使它正在运行,也无法连接到memcached服务器。(所以请不要再胡说八道了,把重点放在实际的错误消息上。)那么我应该在哪里指定memcached服务器名称呢?这不是问题所在。。。或者至少不是现在的。该错误清楚地表明这是一个名称解析问题。如何运行该问题?在哪里可以找到正确的连接详细信息?@Oskwish
memcached
在您的终端上。@Oskwish如果您不知道memcache是否正在运行,您可能有两个问题。其中一个是Brad提到的名称解析以及没有运行服务器。@Brad让我在TCP端口11211上侦听
失败:地址已在使用中
@Oskwish,这取决于您在哪里运行它!如果你在
localhost
上运行它,那么你的主机名是
localhost
。但是我只是包含
memcache.php
文件,我得到了错误。我应该在哪里输入我的主机名?@Oskwish,显然,这是你的问题。我们不知道您使用的是什么memcache类,因此如果您能填写详细信息,也许我们可以建议在何处配置它。@Brad我认为您使用的名称没有指定,但因为它提到了“节点名称”,我很确定他使用的memcache.php库正在尝试访问memcached服务器。我不确定Oskwish是否完全理解memcache(d)应该如何工作——这可能是他第一次尝试。