存档

文章标签 ‘php-fpm’

VPS nginx+php-fpm+apc优化

2010年9月29日 eric 4 条评论

我的VPS,内存是 512的,开始的时候呢php-fpm 开的进程是20个,后来加上APC,重启之后访问速度蛮快的,但没有过几天,访问blog的时候,感觉相应速度比较慢,就连访问纯静态的页面也是,登录VPS,键入top命令查看,显示 Mem 还是有 free的,但是 Swap used 也是有波动的,肯定是内存的问题,之前我设置的 APC 占用 64的内存的,打开 apc的监控页面,发现 Used 很少,Free很多,因为我只是一个blog没有多少动态页面需要缓存的。所以分配这么内存是浪费的。至于php-fpm的进程也没有必要20个进程,只要优化的合理 12个进程就可以(访问量也小么),好了,现在开始优化

shell $> vim /usr/local/php/etc/php-fpm.conf

<value name="max_children">20</value>

改为

<value name="max_children">12</value>
shell $> vim /usr/local/php/etc/php.ini
添加
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
分类: nginx 标签: , , ,

转发:Nginx文件类型错误解析漏洞

2010年5月24日 eric 没有评论

其实此漏洞并不是Nginx的漏洞,而是PHP PATH_INFO的漏洞,详见:http://bugs.php.net/bug.php?id=50852&edit=1 例如用户上传了一张照片,访问地址为http://www.domain.com/images/test.jpg,而test.jpg文件内的内容实际上是PHP代码时,通过http://www.domain.com/images/test.jpg/abc.php就能够执行该文件内的PHP代码。 网上提供的临时解决方法有:   方法①、修改php.ini,设置cgi.fix_pathinfo = 0;然后重启php-cgi。此修改会影响到使用PATH_INFO伪静态的应用,例如我以前博文的URL:http://blog.s135.com/read.php/348.htm 就不能访问了。   方法②、在nginx的配置文件添加如下内容后重启:if ( $fastcgi_script_name ~ \..*\/.*php ) {return 403;}。该匹配会影响类似 http://www.domain.com/software/5.0/test.php(5.0为目录),http://www.domain.com/goto.php/phpwind 的URL访问。   方法③、对于存储图片的location{…},或虚拟主机server{…},只允许纯静态访问,不配置PHP访问。例如在金山逍遥网论坛、SNS上传的图片、附件,会传送到专门的图片、附件存储服务器集群上(pic.xoyo.com),这组服务器提供纯静态服务,无任何动态PHP配置。各大网站几乎全部进行了图片服务器分离,因此Nginx的此次漏洞对大型网站影响不大。 本人再提供一种修改nginx.conf配置文件的临时解决方法,兼容“http://blog.s135.com/demo/0day/phpinfo.php/test”的PATH_INFO伪静态,拒绝“http://blog.s135.com/demo/0day/phpinfo.jpg/test.php”的漏洞攻击: location ~* .*\.php($|/) { if ($request_filename ~* (.*)\.php) { set $php_url $1; } if (!-e $php_url.php) { return 403; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; }   也可将以下内容写在fcgi.conf文件中,便于多个虚拟主机引用: if ($request_filename ~* (.*)\.php) { set $php_url [...]

分类: nginx 标签: , ,

phpMyAdmin – 错误

2010年5月19日 eric 1 条评论

今天,安装了一个 nginx +php-fpm 的环境,安装上了 phpmyadmin,发生了错误。找了好久原因,才找到,因为自己的大意,才会成这样,错误如下: phpMyAdmin – 错误 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。 当时看到这个错误,第一感觉 mysql 没有起来吗?检查起来了,然后检查 mysql.sock 的路径与php 的路径,也没有问题。 随后想到,也许是php没有编译好吗?创建一个 phpinfo(); ,访问没有问题,那好,那就看看 info 哪里有问题,看了一圈没发现什么问题,php.ini 加载路径没错。 最后看看 phpmyamdin 的配置文件吧。看到他要建立 session。然后去 session 保存目录看一下。问题就找到了。。我的 php-fpm 设置的 session 保存目录是 /home/www/sessions, 我创建的目录是 /home/www/session 少了一个 s 大家也要注意权限。要给 php-fpm 写的权限。 PS:以后配置环境的时候一定要细心。。一个问题纠缠了我 2个多小时,很是郁闷。

分类: nginx 标签: , ,

php-fpm with php-5.3.2 + APC

2010年5月17日 eric 7 条评论

php-fpm 现在php官方内部已经出版本了,据说以后会出现在 php core 里,如果现在安装的话,可以svn得到最新代码,我抢先为快。

至于缓存,我用的facebook 试用的apc 测试了一段时间还很,满意。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.bz2

wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz

wget http://pecl.php.net/get/APC-3.1.3p1.tgz
tar zxvf pcre-8.02.tar.bz2

cd pcre-8.02

./configure --enable-utf8 --enable-pcregrep-libbz2

make

make install
分类: nginx 标签: , , ,