2008年12月4日星期四

使用php apc模块需要注意的几点

在maillist中看到Rasmus的一段对于
php
APC模块的发言。作为APC的作者,他的见解应该是很有参考价值的。
APC will probably be 20-30% faster, but if you are writing to it frequently it can cause problems. The APC cache is best for things that change very rarely. And by very rarely I mean days, not hours or minutes.
Because of the way APC does an anonymous file-backed mmap where I unlink the file at startup to get process-death protection, it isn’t easy to get at the cache from a separate standalone command line script. That can be solved by mmap’ing slightly differently, but in the default config your approach won’t work.
-Rasmus
就是说APC不适合用于频繁写的场合,你最好只用它来保存那种几天都不会更改的内容。否则出了莫名其妙的问题就不好怎么解释了。
在以前的应用中,我确实有将apc用在频繁写的场合,偶尔会出现内存耗尽,进而引起所有http请求卡死,形式一发不可收拾整个服务器当掉。所以现在我仅仅用apc来缓存opcode的php代码,不在程序中显式的调用它,算是相安无事。
APC是什么
Alternative PHP Cache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,它能够缓存opcode的php中间码。

phpize简介与实例应用

phpize 是属于 php-devel 中的东西,主要是设定 php 外挂模块的一些设定

例如你的php不支持mysql, mbstring等

实例应用:
环境php5.2.6, 不支持mysql扩展
假如php的源码包在/usr/local/src/php-5.2.6
php安装目录是/usr/local/php

# cd /usr/local/src/php-5.2.6
# cd ./ext/mysql
# /usr/local/php/bin/phpize
# ./configure –with-php-config=/usr/local/php/bin/php-config
# make
# make install
这个时候你会看到mysql.so被拷贝到某个目录, 把mysql.so拷贝到你的extension_dir指向的路径, 在php.ini里增加extension=mysql.so
重启web服务器, 看一下phpinfo, 应该支持mysql了, 完毕!

注意: 在执行/usr/local/php/bin/phpize的时候可能会提示某些错误, 例如:Cannot find autoconf, 那就根据错误提示把相关的软件安装, RHEL系列使用yum -y install autoconf就可以了
其他错误, 请留言给我!

所以安装 php-devel 相关套件就会有 phpize 可以使用 (档案预设存放于 /usr/bin/phpize )
phpize 命令是用来准备 PHP 外挂模块的编译环境的。下面例子中,外挂模块的源程序位于 extname 目录中:
# cd extname
# phpize
# ./configure (注一)
# make
# make install
成功的安装将建立 extname.so 并放置于 PHP 的外挂模块目录中 (预设存放于 /usr/lib/php/modules/ 内) 。
需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此外挂模块。

注一:
如在执行 ./configure 时出现 not find –with-php-config 时,
可重下以下指令,因 –with-php-config 预设在 /usr/bin/php-config 可找到
./configure –with-php-config=/usr/bin/php-config
需要调整 php.ini,加入 extension=extname.so 这一行之后才能使用此扩展库。

memcache安装详细方法

一. Linux下memcached安装说明
1.安装libevent-1.1a.tar

# tar zxvf libevent-1.1a
# cd libevent-1.1a
#./configure --prefix=/usr/ali/libevent/
# make
# make install
# make clean

2. 安装memcached-1.2.4.tar.gz

# tar zxvf memcached-1.2.4.tar.gz
# cd memcached-1.2.4
#./configure --prefix=/usr/ali/memcached/ --with-libevent=/usr/ali/libevent/
# make
# make install
# make clean

注意:若 libevent 不是安装在默认位置必须在 /usr/lib 下建立一个软连接,否则 memcached 会无法运行

#ln -s /usr/ali/libevent/lib/libevent-1.1a.so.1 /usr/lib
#ln -s /usr/ali/libevent/lib/libevent.so /usr/lib

3.启动memcached

# memcached -d -p port -u admin
比如:
# memcached -d -p 11211 -u admin

4.关闭memcached



二. Window下安装安装说明
下载memcache的windows稳定版,解压缩放某个盘下面,比如在c:\memcached
在终端(也即cmd命令界面)下输入 c:\memcached\memcached.exe -d install 安装
再输入: c:\memcached\memcached.exe -d start 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
Memcached 默认监听端口: 11211

三. 对应命令参数说明

memcached的基本设置:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

2008年12月3日星期三

windows安装APC

第一步:下载php_apc.dll 在http://pecl4win.php.net/list.php

第二步:让php.ini支持apc扩展模块。
将php_apc.dll放入你的ext目录,然后打开php.ini 加入:

extension=php_apc.dll
apc.rfc1867 = on
apc.max_file_size = 100M
upload_max_filesize = 100M
post_max_size = 100M

//以上参数可自己定义

第三步:检查是否支持PHP APC

APC相关安装

今天第一次安装使用APC,把APC相关安装方法写出来
1、tar zxvf apc_x.y.tar.gz
2、cd apc_x.y
3、/PATH/TO/phpize/phpize
4、./configure --enable-apc --with-php-config、/PATH/TO/php-config/php-config
5、make
6、make install
7、编辑php.ini,加入下面命令
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.optimization=0
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
(注意extension_dir的值别搞错了。apc.so默认安装在php安装路径的lib/php/extensions/下面)

网站统计