Posts Tagged ‘php-fpm

在PHP5.3.X中的php-fpm,配置文件 php-fpm.conf 对于进程管理有三种方法,一种是静态(static),一种是动态(dynamic)和需求模式(ondemand)模式。 static: 子进程的数量是固定的(pm.max_children)。 ondemand: 进程在有需求时才产生(当请求时,与 dynamic 相反,pm.start_servers 在服务启动时即启动。) dynamic: 子进程的数量在下面配置的基础上动态设置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers。 如果设置成 static,进程数始终都是 pm.max_children 指定的数量。 如果设置成 dynamic,则进程数是动态的,最开始是 pm.start_servers 指定的数量,如果请求较多,则会自动增加,保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理,保证进程数不多于 pm.max_spare_servers。 当php-fpm启动后,一个php-fpm进程处理过一些请求后,有些内存是释放不掉的 ...

php 5.3.3 源码中开始包含 php-fpm,不用专门再打补丁了,只需要解开源码直接configure,关于php-fpm的编译参数有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。 这个php-fpm 不再支持 php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制: master进程可以理解以下信号 SIGINT, SIGTERM 立刻终止 SIGQUIT 平滑终止 SIGUSR1 重新打开日志文件 SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块 示例: php-fpm 关闭: kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid` php-fpm 重启: kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid` 其次配置文件不再使用的xml 格式,改为了INI,但是配置参数几乎和以前一样,可参照xml格式的格式配置。 —————-补充内容——— ...

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。 漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } 的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就 ...