星期一, 四月 19, 2010, 10:16 PM
有了php,一个加速器也是需要的。
所谓加速器,就是通过缓存方式把已编译好php字节码放在内存里,以便提高程序的执行、响应效率.
总之,速度是绝对上去了。
我选择的是开源的eAccelerator,而不是广泛使用的Zend Optimizer.
首先,下载最新的svn snapshots 版本,http://snapshots.eaccelerator.net/
解压,进入目录.
运行 phpize,生成安装文件.
我的configure:
$ ./configure --prefix=/usr/local/eaccel --bindir=/usr/local/bin --sbindir=/usr/local/sbin --sysconfdir=/etc/sysconfig --enable-eaccelerator
更多参数见:http://www.eaccelerator.net/wiki/CompileConfiguration
如果系统里安装有多个php版本,可能要指定php-config 路径
检查依赖没有问题,之后 make && make install.OK了
eAccelerator安装成功.
然后,打开源码目录下的 eaccelerator.ini,把里面的内容通通复制到 php.ini 里面.
稍加编辑,如
; eAccelerator extension.
extension="eaccelerator.so"
(作为php 扩展安装)
;zend_extension="/usr/lib/php/modules/eaccelerator.so"
(作为Zend 扩展安装)
;zend_extension_ts="/usr/lib/php/modules/eaccelerator.so"
(作为Zend 扩展安装,适用于 php 的线程安全版)
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
更多设置见:http://www.eaccelerator.net/wiki/Settings
保存之后,确保 php 对缓存目录/tmp/eaccelerator 有读写权限后.
chmod 0777 /tmp/eaccelerator
重启php-cgi 进程 或者 web server,即可启用加速器了.
运行 php -v 查看版本,
有 "by eAccelerator" 字样说明启用成功.
如:
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
更多介绍见:http://www.eaccelerator.net/wiki/InstallFromSource
[ ] ( 2325 次浏览 ) 永久链接 ( 3 / 2496 )
编译安装 PHP 5.3.2 + php-fpm 通过
星期一, 四月 19, 2010, 04:12 AM
真的是好事成双。
刚刚写完上一篇文章,就收到了PHP Bug Database的提醒,我提交的问题被解决了
原来是因为 我既启用了 php 内置的 mysqli,又自己编译了mysqli扩展.
导致php 遭遇Segmentation fault....
以后这个问题要注意呀,呵呵
为什么要用php-fpm ,因为fastcgi已经很久不更新了.
而且从 php 5.3.x 分支开始,php-fpm 已经成为了php内部项目了。
可见其前景无限.
下载 php 5.3.2源码包,解压,进入目录.
检出php-fpm 源码:
svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm
并重新生成configure文件,
./buildconf --force
我的configure:
$ ./configure --prefix=/usr/local/php --bindir=/usr/local/bin --sbindir=/usr/local/sbin --sysconfdir=/etc/sysconfig --enable-embed=static --enable-fpm --enable-debug --enable-safe-mode --enable-sigchild --enable-magic-quotes --enable-fd-setsize=100 --enable-calendar --enable-dba=shared --enable-exif --enable-ftp --enable-gd-native-ttf --enable-intl --enable-mbstring --enable-pcntl --disable-phar --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-zip --enable-zend-multibyte --with-libxml-dir --with-libevent-dir=/usr/local/libevent --with-fpm-user=http --with-fpm-group=web --with-config-file-path=/etc --with-exec-dir=/usr/local/bin --with-openssl --with-kerberos --with-pcre-regex --with-zlib --with-bz2 --with-curl --with-gd --with-mhash --with-imap --with-imap-ssl --with-ldap --with-ldap-sasl --with-mcrypt --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-mysqli=/usr/local/bin/mysql_config --with-pdo-mysql=/usr/local/bin/mysql_config --with-xmlrpc --without-pear
检查依赖,报错:
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing
yum install libc-client-devel.i386
解决.
接下了,make && make install.
如果编译通过,make 报错,make: *** [ext/phar/phar.php] Error 139
那是因为没有禁用掉 phar.
这是个php已知的bug(http://bugs.php.net/bug.php?id=51216),只有等下一个版本修复了.
安装OK后,复制源码包下sapi/fpm/php-fpm.conf 到 /etc/sysconfig/ 下,
稍加编辑,即可
运行 php-fpm,成功跑起来.
[ ] ( 2623 次浏览 ) 永久链接 ( 3 / 2377 )
<< <上一页 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 下一页> >>