首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将memcache与PHP结合使用

将memcache与PHP结合使用
EN

Stack Overflow用户
提问于 2010-03-06 17:02:12
回答 2查看 11.1K关注 0票数 7

我想开始在PHP中使用memcache (在Ubuntu9.10上)。有很多信息在线似乎表明如何做到这一点。然而,令人惊讶的是,没有一篇文章(我到目前为止已经看到)明确说明在尝试使用memcache进程之前是否需要运行它,或者仅仅通过通过process库调用新的MemCache()来生成一个进程(如果不是已经运行的话)。

从我迄今所读到的关于这个问题的各种文档中,我认为这些步骤是有意义的:

  1. 在您的计算机上安装memcache (有几个文档显示了如何做到这一点)
  2. 修改您的php.ini文件并将与memcache相关的consts/标志设置为对您的环境有意义的值
  3. 在ini.d中创建init脚本,将memcache作为守护进程启动
  4. 重新启动Apache守护进程

第三部分是我需要确认的部分,因为到目前为止,我所看到的文档中没有一个提到memcache进程的生存期。

在这方面经验丰富的人能确认这是否是正确的步骤吗?还有,如果我错过了一步,让我知道。

顺便说一句,由于我对Linux还比较陌生,如果有人能发布一个运行memcache守护进程所需的init脚本示例,我将不胜感激(假设我前面描述的步骤是正确的)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-06 17:06:18

最初,memcached和Apache+PHP是两个完全不相关的东西。唯一的事情是PHP是连接到memcached守护进程。

所以,是的,memcached (请注意,最后的'd‘)必须在尝试使用它之前启动:当memcached服务器不运行时,它尝试连接到memcached服务器,您将无法连接--它不会产生新的守护进程或任何东西。

使用一个简单的比较:您的Apache服务器没有启动,您尝试使用浏览器访问它,您将得到一个“无法连接”错误;与PHP试图连接memcached完全一样:它将无法连接。

现在,对于安装过程,这里有几个注意事项,用于您所说的那些看起来不太好的部分:

  • 在您的计算机上安装memcached
    • 如果您安装在使用您的发行版机制中,它应该已经在/etc/init.d/中创建了脚本
    • 它应该启动守护进程
    • 作为提醒,要使用Ubuntu安装一些东西,应该使用apt-get install memcachedaptitude install memcached

  • 在修改php.ini之前,必须安装PHP的memcache扩展--因此PHP具有连接到memcached的函数。
    • 这可以使用发行版的php5-memcache包来完成。
    • 或者使用pecl install memcache命令,它将从pecl.php.net下载源代码并编译它们--这意味着您需要编译软件所需的一切。

编辑:在这里回答比在评论中更容易

我说过安装memcached应该可以--在Ubuntu上,似乎有一个陷阱:

使用此方法:

代码语言:javascript
运行
复制
ps -Alf | grep memcached

我没有看到任何正在运行的守护进程。

当我尝试启动守护进程时,我会得到以下内容:

代码语言:javascript
运行
复制
$ sudo /etc/init.d/memcached start
Starting memcached: memcached disabled in /etc/default/memcached.

因此,在Ubuntu上,您必须编辑/etc/default/memcached并对其进行更改;而不是这样:

代码语言:javascript
运行
复制
# Set this to yes to enable memcached.
ENABLE_MEMCACHED=no

它应包含以下内容:

代码语言:javascript
运行
复制
# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes

那么,启动memcached应该是可能的:

代码语言:javascript
运行
复制
$ sudo /etc/init.d/memcached start
Starting memcached: memcached.
test@tests: ~/temp
$ ps -Alf | grep mem
4 S nobody    3813     1  0  80   0 - 30025 ep_pol 00:17 pts/4    00:00:00 /usr/bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
0 R test      3819  2690  0  80   0 -  1834 -      00:17 pts/4    00:00:00 grep --color=auto mem

注意:既然memcached已经启用,那么每次重新启动它时,都应该用您的系统自动启动它。

票数 11
EN

Stack Overflow用户

发布于 2013-05-03 08:10:57

代码语言:javascript
运行
复制
sudo apt-get install memcached
If you do not have a compiler on your server, you can download build-essential in order to install memcache: 
sudo pecl install memcache
Finally use PECL (PHP Extension Community Library) to install memcache
sudo pecl install memcache
Once you have completed the installation of memcache with PECL on the VPS, add memcached to memcache.ini
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2393300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档