我想开始在PHP中使用memcache (在Ubuntu9.10上)。有很多信息在线似乎表明如何做到这一点。然而,令人惊讶的是,没有一篇文章(我到目前为止已经看到)明确说明在尝试使用memcache进程之前是否需要运行它,或者仅仅通过通过process库调用新的MemCache()来生成一个进程(如果不是已经运行的话)。
从我迄今所读到的关于这个问题的各种文档中,我认为这些步骤是有意义的:
第三部分是我需要确认的部分,因为到目前为止,我所看到的文档中没有一个提到memcache进程的生存期。
在这方面经验丰富的人能确认这是否是正确的步骤吗?还有,如果我错过了一步,让我知道。
顺便说一句,由于我对Linux还比较陌生,如果有人能发布一个运行memcache守护进程所需的init脚本示例,我将不胜感激(假设我前面描述的步骤是正确的)。
发布于 2010-03-06 09:06:18
最初,memcached和Apache+PHP是两个完全不相关的东西。唯一的事情是PHP是连接到memcached守护进程。
所以,是的,memcached (请注意,最后的'd
‘)必须在尝试使用它之前启动:当memcached服务器不运行时,它尝试连接到memcached服务器,您将无法连接--它不会产生新的守护进程或任何东西。
使用一个简单的比较:您的Apache服务器没有启动,您尝试使用浏览器访问它,您将得到一个“无法连接”错误;与PHP试图连接memcached完全一样:它将无法连接。
现在,对于安装过程,这里有几个注意事项,用于您所说的那些看起来不太好的部分:
apt-get install memcached
或aptitude install memcached
。
memcache
扩展--因此PHP具有连接到memcached的函数。php5-memcache
包来完成。pecl install memcache
命令,它将从pecl.php.net下载源代码并编译它们--这意味着您需要编译软件所需的一切。
编辑:在这里回答比在评论中更容易
我说过安装memcached应该可以--在Ubuntu上,似乎有一个陷阱:
使用此方法:
ps -Alf | grep memcached
我没有看到任何正在运行的守护进程。
当我尝试启动守护进程时,我会得到以下内容:
$ sudo /etc/init.d/memcached start
Starting memcached: memcached disabled in /etc/default/memcached.
因此,在Ubuntu上,您必须编辑/etc/default/memcached
并对其进行更改;而不是这样:
# Set this to yes to enable memcached.
ENABLE_MEMCACHED=no
它应包含以下内容:
# Set this to yes to enable memcached.
ENABLE_MEMCACHED=yes
那么,启动memcached应该是可能的:
$ 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已经启用,那么每次重新启动它时,都应该用您的系统自动启动它。
发布于 2013-05-03 00:10:57
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
https://stackoverflow.com/questions/2393300
复制相似问题