要检验您的 PHP 构建是否已安装,请单击左侧的 phpinfo() 链接。您应当会看到类似图 2 中所示的统计信息。PHP 的版本应当是 4.4.6,构建选项应当包括 --enable-memcache,并且 php.ini 的工作版本应当驻留在 /opt/lampp/lib 中。
图 2. 检验 PHP 的自定义构建是否替换了 XAMPP 附带的 PHP 构建
图 2. 检验 PHP 的自定义构建是否替换了 XAMPP 附带的 PHP 构建
构建 PHP Memcache 扩展
新的 PHP 就绪后,下一步是构建和安装 PHP Memcache 扩展。该扩展将提供访问 Memcache 守护程序的服务所需的 API。首先将检索 Memcache 扩展的源代码。您可以再次使用 wget 来获得源代码,请使用以下命令:
新的 PHP 就绪后,下一步是构建和安装 PHP Memcache 扩展。该扩展将提供访问 Memcache 守护程序的服务所需的 API。首先将检索 Memcache 扩展的源代码。您可以再次使用 wget 来获得源代码,请使用以下命令:
$ wget http://pecl.php.net/get/memcache-2.1.0.tgz
构建 Memcache 扩展的过程与构建其他 PHP 扩展的过程完全相同:
切换到源代码的目录
运行 phpize,后接 ./configure、make 和 make install。
确保使用新版本的 phpize。
把 /opt/lampp/bin 放到 shell 的 PATH 中,位于包含其他版本的 phpize 的所有目录之前:
切换到源代码的目录
运行 phpize,后接 ./configure、make 和 make install。
确保使用新版本的 phpize。
把 /opt/lampp/bin 放到 shell 的 PATH 中,位于包含其他版本的 phpize 的所有目录之前:
$ cd memcache-2.1.0
$ export PATH=/opt/lampp/bin:$PATH
$ phpize
$ ./configure
$ make
...
$ sudo make install
Installing shared extensions:
/opt/lampp/lib/php/extensions/no-debug-non-zts-20020429/
构建将把一个名为 memcache.so 的新文件放入扩展目录。要加载并应用扩展,您必须编辑 php.ini。打开 XAMPP PHP 配置文件 /opt/lampp/etc/php.ini 并添加清单 3 中的代码行。
清单 3. 编辑 php.ini
清单 3. 编辑 php.ini
extension=memcache.so
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
第 1 行将加载 Memcache 扩展。其他四行是用于控制扩展的参数。按顺序,从顶部到底部:
memcache.allow_failover
一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。
memcache.max_failover_attempts
一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。
memcache.chunk_size
一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。
memcache.default_port
另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。
要确定构建现在是否能够完全运行,请使用以下命令重新启动 XAMPP Apache Web 服务器:
memcache.allow_failover
一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。
memcache.max_failover_attempts
一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。
memcache.chunk_size
一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。
memcache.default_port
另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。
要确定构建现在是否能够完全运行,请使用以下命令重新启动 XAMPP Apache Web 服务器:
$ sudo /opt/lampp/bin/apachectl restart
如果重新访问 XAMPP phpinfo() 页面,您应当会看到类似图 3 中的 Memcache 部分。
图 3. 通过 phpinfo() 查看 Memcache 设置
图 3. 通过 phpinfo() 查看 Memcache 设置
构建 Memcache 守护程序
此过程(表面上有些冗长)还有一个额外的步骤:构建和部署为数据管理 RAM 缓存的 Memcache 守护程序。守护程序依赖于 libevent,因此必须构建和部署该库,然后再编译 memcached:
此过程(表面上有些冗长)还有一个额外的步骤:构建和部署为数据管理 RAM 缓存的 Memcache 守护程序。守护程序依赖于 libevent,因此必须构建和部署该库,然后再编译 memcached:
$ wget http://www.monkey.org/~provos/libevent-1.3b.tar.gz
$ wget http://www.danga.com/memcached/dist/memcached-1.2.1.tar.gz
接下来,解压缩 tarball 来为每个包生成一个目录:
$ tar xzf memcached-1.2.1.tar.gz
$ tar xzf libevent-1.3b.tar.gz
要继续执行操作,请依次构建每个包,从库开始。要使所有文件包含在 /opt 中,请在运行配置时使用 --prefix 选项。下面的指令将构建和安装 libevent。
清单 4. 编辑 php.ini
清单 4. 编辑 php.ini
$ cd ../libevent-1.3b
$ ./configure --prefix=/opt/lampp
...
$ make
$ sudo make install
...
/usr/bin/install -c .libs/libevent.lai /opt/lampp/lib/libevent.la
/usr/bin/install -c .libs/libevent.a /opt/lampp/lib/libevent.a
chmod 644 /opt/lampp/lib/libevent.a
ranlib /opt/lampp/lib/libevent.a
PATH="$PATH:/sbin" ldconfig -n /opt/lampp/lib
----------------------------------------------------------------------
Libraries have been installed in:
/opt/lampp/lib
接下来的命令将构建和安装 memcached 二进制。
清单 5. 编辑 php.ini
清单 5. 编辑 php.ini
$ cd ../memcached-1.2.1
$ ./configure --prefix=/opt/lampp
...
$ make
$ sudo make install
...
/usr/bin/install -c memcached /opt/lampp/bin/memcached
/usr/bin/install -c memcached-debug /opt/lampp/bin/memcached-debug
启动 memcached 十分简单:
./memcached -d -m 2048 -l ip-address -p 11211
-d 选项将把 memcached 作为一个守护程序而不是在最显著的位置中运行。-m number 将把 number 兆字节分配给此过程实例。(在某些系统中,可能会要求您运行多个 memcached 实例以访问可用于进行缓存的所有内存。有关更多信息,请参阅 Memcache 文档)。-l ip-address -p 11211 将使守护程序分别侦听 IP 地址 ip-address 和端口 11211。替换您的 IP 地址。如果为 memcached 选择其他端口,请确保 php.ini 将反映该端口。