php-memcache安装问题(已解决+方法)

php-memcache安装问题(已解决+方法)

我的PHP-memcache安装过程如下:

一、下载相关软件
Memcached下载地址 http://www.danga.com/memcached/
memcache PHP模块下载地址 http://pecl.php.net/package/memcache 推荐使用1.5版
libevent 下载地址 http://www.monkey.org/~provos/libevent/

# tar vxzf libevent-1.1a.tar.gz
# cd libevent-1.1a
# ./configure
# make
# make install
建立一个符号连接:#ls -s /usr/local/lib/libevent-1.1.so.1 /usr/lib
2、安装Memcached
# tar vxzf memcached-1.1.12.tar.gz
# cd memcached-1.1.12
# ./configure --prefix=/usr/local/memcached
--with-libevent=/usr
# make
# make install

# cd /usr/local/php/modules/memcached/bin
# ./memcached -d -m 50 -p 11211 -u root
参数说明 -m 指定使用多少兆的缓存空间;-p 指定要监听的端口; -u 指定以哪个用户来运行

3、安装memcache PHP模块

# tar vxzf memcache-2.0.4.tgz
# cd memcache-2.0.4
# /usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
--with-apxs=/usr/local/apache/bin/apxs
--enable-memcache

# make
# make install
提示:/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613

然后修改php.ini

extension_dir = "./"
修改为
extension_dir = "/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613"
并添加一行
extension=memcache.so

写一个测试脚本:
<?php
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
$memcache->set('key', 'test'); //设置一个变量到内存中,名称是key 值是test
$get_value = $memcache->get('key'); //从内存中取出key的值
echo $get_value;
?>

IE中提示:
Fatal error: Class 'Memcache' not found in /usr/local/apache2/htdocs/test12.php on line 2

我估计是memcache没有安装好。PHP模块里也没有看到。
我的系统是AS5和RH9
在二个系统的PHP安装目录下分别执行:
[root@server3 root]# cd php-5.2.4
[root@server3 php-5.2.4]# ./configure --help |grep memcache
无任何提示,我更换了版本和系统都不行。重新装也不行。

我在公司里已安装好memcache的服务器上:
[root@server3 root]# cd php-5.2.4
[root@server3 php-5.2.4]# ./configure --help |grep memcache
  --enable-memcache       Enable memcache support
  --disable-memcache-session       Disable memcache session handler support
  --with-zlib-dir=DIR   memcache: Set the path to ZLIB install prefix.

却能看到相关的信息。这是为什么?


我的PHP编译参数为:
./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-gd --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local --enable-mbstring --with-libxml-dir=/usr/local/libxml2 --enable-memcache
。。。。
。。。。
。。。。

Thank you for using PHP.

Notice: Following unknown configure options were used:

--enable-memcache
--enable-apc

Check './configure --help' for available options


结果就成这样子了。实在是想不到办法了。上来求救!

没人给我解决。哎。

我产用了最原始的方法。把 memcache 放到php的ext目录,再重新生成configure文件,重新编译PHP。。。现在终于OK 了。

我还是不死心啊。phpize 为什么就不行呢?官网的方法啊,别人却可以。我晕晕晕!
memcache 放到php的ext目录,再重新生成configure文件,重新编译PHP
这个方法可不可以写一下


QUOTE:
原帖由 txnet 于 2007-12-21 11:09 发表
memcache 放到php的ext目录,再重新生成configure文件,重新编译PHP
这个方法可不可以写一下

谢谢 你的方法可用.

我一直用这个方法了.
包括APC 的安装.


QUOTE:
原帖由 txnet 于 2007-12-21 11:09 发表
memcache 放到php的ext目录,再重新生成configure文件,重新编译PHP
这个方法可不可以写一下

方法如下面所述
摘自http://php.chinaunix.net/manual/zh/install.pecl.static.php


将 PECL 扩展库静态编译入 PHP

有时可能需要将扩展库静态编译到 PHP 中。这需要将扩展库源程序放入 php-src/ext/ 目录中去并告诉 PHP 编译系统来生成其配置脚本。

$ cd /your/phpsrcdir/ext
$ pear download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

   

这将产生以下目录:

    /your/phpsrcdir/ext/extname
   

此时强制 PHP 重新生成配置脚本,然后正常编译 PHP:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install
   

Note: 要运行“buildconf”脚本,需要 autoconf 2.13 和 automake 1.4+(更新版本的 autoconf 也许能工作,但不被支持)。

是否用 --enable-extname 或 --with-extname 取决于扩展库。通常不需要外部库文件的扩展库使用 --enable。要确认的话,在 buildconf 之后运行:

$ ./configure --help | grep extname