由于原来http服务配置是apache2+php5 在prefork下用mod_php运行的,效率非常的低,当httpd进程达到1024以上就变得非常的缓慢。后来我尝试了装nginx,但是在远程服务器上传附件上显示空白,其实后来在配置apache2的worker模式下的fastcgid时也出现这个问题,就发现了并不是nginx的配置问题,而是问题出在php上。
首先安装了 apache2.2.9 编译用了worker方式。模块用动态加载,全装了进去,再一个个加,我并不确定到底要多少模块,这也是对apache的模块并不很熟悉,它的定制性高。
然后装php5,装的时候碰到2个问题
第一个是碰到 liconv 什么open的问题,就是找不到吧。
这个解决方法,vi Makefile ,修改下Makefile文件
在大概90行左右EXTRA_LIBS = 最后面加-liconv
EXTRA_LIBS = ...................-lcrypt -liconv
第二个问题,discuz的论坛上传空白,这个就是在nginx里碰到的,后来发现非远程附件是可以上传的,其实就是php在使用ftp上传的时候出的错,php也真是的,函数不检测模块存在不存在,报错都不报,display error都是打开的。再重新编译,来回折腾了好几次。
./configure --prefix=/usr/servers/php5 --with-config-file-path=/usr/servers/php5/etc --with-mysql=/usr/servers/mysql --with-mysqli=/usr/servers/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf
后面加上了- -enable-ftp.
还有这里如果在worker下编译选项加了ssl的话,会出现php is not safethread的错误。
第三个问题,在使用apc的时候,php加载不了,查了下,原来apc和zend冲突,无法解决。
只要继续用eaccelerator,装上,OK。非常好。
第四个问题,eaccelerator-0.9.5.3用上后,ecmall的后台登陆是空白的。
没办法,只能给这个网站独立一个php.ini
FCGIWrapper "/usr/servers/php5/bin/php-cgi -c /usr/servers/php5/etc/php.ini" .php
接下来观察,worker模式是否稳定,暂时出现了fastcgi死掉的情况。
实在不行再换nginx
这里非常感谢 上汤宝箭 帮我一起检查错误问题。
在 线 人