eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。
eAccelerator通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上。
参照linode安装指南上的方法,默认是没有安装eAccelerator的,得自己把这功能加上。安装前先了解下另一个东东:phpize。
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块。比如你想在原来编译好的php中加入eAccelerator或者memcached等扩展模块,可以使用phpize。
基础知识了解完了后,开始安装:
# 安装phpize yum install php-devel # 下载eaccelerator wget http://soft.vpser.net/web/eaccelerator/eaccelerator-0.9.6.1.zip unzip eaccelerator-0.9.6.1.zip cd eaccelerator-0.9.6.1 phpize ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config make make install
如果在make时出现:error: "zend_property_info" has no member named "ce" 错误,做如下修改:
vi ea_store.c #用//注释掉683行return (child_info->ce != from) #然后重新make 和 make install
编辑php.ini:
vi /etc/php.ini # 在结尾加入 zend_extension="/usr/lib/php/modules/eaccelerator.so" 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"
创建eAccelerator缓存目录:
mkdir /tmp/eaccelerator chmod 0777 /tmp/eaccelerator
重启php-fastcgi:/etc/init.d/php-fastcgi restart
查看一下phpinfo吧 :-)
如果您觉得PHP能像JAVA、Visual Studio等IDE一样进行代码调试很重要,就继续往下看。
半年前的“eclipse+pdt+xdebug PHP集成开发环境”是上次重装系统时,方便自己下次重装系统时快速搭建PHP集成开发环境时记录的。
现在看来,似乎没起到一点方便的作用。反而成了目前日志中浏览量最高的一篇日志了,但内容却极其简单。
现在又准备重装系统了,再为了方便下次重装,详细的记录一下。
在上一篇文章中PDT有一点小问题,在调试时显示Variables时有问题。
现在PDT1.0.2已经Release了,刚简单的试了下,上述问题已经修正,语法提示功能也有增强。
为了方便重装系统时尽量做最小的改动,选择了XAMPP解压缩版(重装后,只需运行一次setup_xampp.bat即可),现在最新版是1.6.6
下面记下安装及设置调试过程:
软件:
注意xdebug的版本必须和XAMPP中的PHP版本兼容,XAMPP 1.6.6中PHP版本是5.2.5,所以使用XDebug 2.0.2 | Windows modules PHP 5.2.1-5.2.7
安装:
后台使用了phpmailer,支持mail,smtp,sendmail等方式发送、html格式邮件、附件、暗送,密送等等。
中间遇到的一些问题记录下:
Q: Mailer Error: Language string failed to load: connect_host
A: 加入phpmailer的语言文件存放路径
$mail->SetLanguage("en", ABSPATH . EXINC . "/3party/phpmailer/language/");
Q: Mailer Error: The following From address failed: example@163.com
A: 返回这个要分几步走,最好就是开启phpmailer的debug功能,看服务端返回什么值。
假如是553 authentication is required
请确认您的$mail->Username和$mail->Password是正确的。
假如是553 You are not authorized to send mail
请确认$mail->Username和$mail->From相同,应该是smtp邮件服务器反垃圾邮件功能进行了判断,要Username和From一致.
PS:如果有这个世界上有男士最没个性奖的话,那么一定非我莫数了。不要问偶为什么,突然想到这个词了。