Php-fpm中文说明
What is FastCGI
From PHP-FPM
Jump to: navigation, search
FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站和Wikipedia看到。
FastCGI 被许多脚本语言所支持,包括 php,如果用 --enable-fastcgi 选项编译的话。
多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。
FastCGI 的主要优点是把动态语言和 web server 分离开来。这种技术允许 web server 和动态语言运行在不同的主机上。这可以改进可扩展性和安全性而没有大的效率损失。
php-fpm 可以和任何支持外部 FastCGI 技术的 web server 一起使用。
Retrieved from "http://php-fpm.org/wiki/CN:What_is_FastCGI"
What is PHP-FPM
From PHP-FPM
Jump to: navigation, search
很不幸,官方网站 php.net 上的 php 在将 FastCGI SAPI 用于生产环境方面有许多已知的问题。
下面是关于启用 FastCGI SAPI 时的问题和 php-fpm 是如何解决他们的对比列表。
描述 php 自带的 spawn-fcgi + spawn-php.sh + daemontools php-fpm
php 守护进程: pid file, log file, setsid(), setuid(), setgid(), chroot() (-) (+) (+)
进程管理。可以用 "graceful" 来停止并启动 php worker 进程而不会丢失请求。能够平滑地升级配置和二进制程序而不丢失任何请求。 php4 (-), php5 (只有 graceful) (-) (+)
严格限制来源请求的 web server 的 ip 地址 php4 (-), php5 (+) (从 5.2.2 开始) (-) (+)
根据负载动态调整进程数 (-) (-) TODO
用不同的 uid/gid/chroot/environment 和不同的 php.ini 选项启动 worder 进程。你不需要 safe mode 了! (-) (-) (+)
记录业务进程 stdout 和 stderr 日志 (-) (-) (+)
如果使用优化器,在共享内存意外破坏的情况下紧急重启所有的进程 (-) (-) (+)
如果 set_time_limit() 失败,确保进程会结束 (-) (-) (+)
特性
Error header
(+)
支持加速上传
(+)
fastcgi_finish_request()
(+)
SlowLog
(+)
下载地址:
http://php-fpm.org/downloads/
Documentation
From PHP-FPM
Jump to: navigation, search
邮件列表
如果你有问题的话,请不要犹豫在邮件组里写邮件。
• English: highload-php-en
• Russian: highload-php-ru
简要说明
php-fpm 已经在 Linux、MacOSX、Solaris 和 FreeBSD 上测试通过。
确信 libxml2(在某些系统上叫做libxml2-devel)已经安装。
下载最小的 php 和 php-fpm
$ bzip2 -cd php-5.2.5.tar.bz2 | tar xf -
$ gzip -cd php-5.2.5-fpm-0.5.7.diff.gz | patch -d php-5.2.5 -p1
$ cd php-5.2.5 && ./configure --enable-fastcgi --enable-fpm
$ make all install
编辑 $prefix/etc/php-fpm.conf
运行 $prefix/bin/php-cgi --fpm
仔细检查 $prefix/logs/php-fpm.log
运行 phpinfo() 检查你的网站是否还正常运行
master 进程的 pid 被存放在 $prefix/logs/php-fpm.pid
master进程可以理解以下信号
SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块
Retrieved from "http://php-fpm.org/wiki/CN:Documentation"
FAQ
From PHP-FPM
Jump to: navigation, search
Contents
[hide]
• 1 php-fpm 可以和 ZendOptimize 一起用吗?
• 2 php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
• 3 为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
• 4 为什么要用 root 运行 php-fpm 呢?这安全吗?
• 5 php-fpm 可以加速 php 脚本处理速度吗?
• 6 如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
• 7 php-fpm 将来会被官方的 php 包含吗?
php-fpm 可以和 ZendOptimize 一起用吗?
完全可以。
php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
是的。php-fpm 的架构和任何一种用于高速 opcode 缓存的共享内存都适用。唯一的限制是:所有的 worker 进程只能适用一个缓存,即使它们用不同的 uid/gid 运行。
为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
php-fpm 的创建是为了增强方便管理。没有打过补丁的 php 不能做到:
• 平滑重启 php 而不丢失请求,包括升级 php 二进制文件 以及/或者 扩展。
• 用不同的 uid / gid / chroot 环境运行 worker 进程
• 所有的设置只有一个配置文件
• 根据负载动态请求 (TODO)
• 对 php 请求实时统计性能 (TODO)
如果你自己不能为PHP打补丁,那么例如spawn-fcgi之类的其他工具更适合你,尽管它仅仅有有限的可选功能;如果你需要多个FastCGI池,还需要定制脚本。
为什么要用 root 运行 php-fpm 呢?这安全吗?
用 root 权限启动 php-fpm 只有在你打算用不同 uid/gid 的 php 来处理请求时才有意义。比如,在共享主机上的不同站点。因为只有在 master 进程用 root 运行的时候,才可以建立不同 uid/gid 的子进程。这是相当安全的。master 进程自己从来不会去处理请求。在任何情况下,php-fpm 都不会用 root 身份来处理请求。
php-fpm 可以加速 php 脚本处理速度吗?
不,它不会影响处理速度。不过,如果你使用一些特殊特性,对于一些特定的请求还是可以有性能提升的。
如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
通常,当有服务器上有大量空闲内存可用时,能从迁移到 php-fpm 中得到的性能提升可能不大。但是如果内存并不充裕,性能提升还是很可观的,在某些情况下可以达到 300-500%。这可能是由于 nginx + php-fpm 一般会比 Apache + mod_php 使用更少的内存。而且 VFS 缓存会由于更多的空余内存而更有效地工作。
php-fpm 将来会被官方的 php 包含吗?
我希望如此。目前,php-fpm 代码的协议是 GPL 。所以现在 php-fpm 的代码与 php 协议(类似 bsd)并不匹配。这是临时性措施。这样的选择是为了简化开发过程。一旦代码的功能完备,比如自适应生成子进程和其他一些东西,协议会改为一个相匹配的。之后,php-fpm 会正式发布给 php 开发团队,并被建议包含。 现在许可证已经修改成类BSD的许可证。这意味着它能包含到PHP或者PECL。我们已经接触了PHP小组和PECL小组,努力尝试把它包含或部分包含进PHP核心(并且可能进程管理部分有hooks和程序存在于PHP核心之外,这样它就能更快,并且独立于PHP各版本)
Retrieved from "http://php-fpm.org/wiki/CN:FAQ"
About
From PHP-FPM
Jump to: navigation, search
嗨,我的名字叫 Andrei Nigmatulin, 我是 php-fpm 的作者。
从 2004 年开始,我就在等有什么人让 PHP FastCGI 能满足产品环境,但我等不下去了。
php-fpm 是在数个项目种使用 PHP 的 FastCGI SAPI 中的知识、经验和想法的产物。
php-fpm 可以在 GPL 协议下用在公共用途。和 php-fpm 绑定的修改版的 libevent 是在 BSD 协议下发布的。
我需要得到您的反馈——新的想法和建议——来改进和优化 php FastCGI SAPI。 如果您有什么想法、意见、补充和建议,我会很高兴,很原意听取,也许还会实现他们。给给我发邮件吧。(地址在本页的末尾)。
如果你想支持 php-fpm 的开发,可以作一些捐赠: Paypal Yandex.Money
本文内容来自于:wiki
http://php-fpm.org/wiki/CN:Home
What is FastCGI
From PHP-FPM
Jump to: navigation, search
FastCGI 是一个可伸缩、高速的在web server和脚本语言间通迅的接口。关于FastCGI技术的更多信息可以在官方网站和Wikipedia看到。
FastCGI 被许多脚本语言所支持,包括 php,如果用 --enable-fastcgi 选项编译的话。
多数流行的web server都支持 FastCGI。包括Apache(mod_fastcgi和mod_fcgid),Zeus,nginx和lighttpd。
FastCGI 的主要优点是把动态语言和 web server 分离开来。这种技术允许 web server 和动态语言运行在不同的主机上。这可以改进可扩展性和安全性而没有大的效率损失。
php-fpm 可以和任何支持外部 FastCGI 技术的 web server 一起使用。
Retrieved from "http://php-fpm.org/wiki/CN:What_is_FastCGI"
What is PHP-FPM
From PHP-FPM
Jump to: navigation, search
很不幸,官方网站 php.net 上的 php 在将 FastCGI SAPI 用于生产环境方面有许多已知的问题。
下面是关于启用 FastCGI SAPI 时的问题和 php-fpm 是如何解决他们的对比列表。
描述 php 自带的 spawn-fcgi + spawn-php.sh + daemontools php-fpm
php 守护进程: pid file, log file, setsid(), setuid(), setgid(), chroot() (-) (+) (+)
进程管理。可以用 "graceful" 来停止并启动 php worker 进程而不会丢失请求。能够平滑地升级配置和二进制程序而不丢失任何请求。 php4 (-), php5 (只有 graceful) (-) (+)
严格限制来源请求的 web server 的 ip 地址 php4 (-), php5 (+) (从 5.2.2 开始) (-) (+)
根据负载动态调整进程数 (-) (-) TODO
用不同的 uid/gid/chroot/environment 和不同的 php.ini 选项启动 worder 进程。你不需要 safe mode 了! (-) (-) (+)
记录业务进程 stdout 和 stderr 日志 (-) (-) (+)
如果使用优化器,在共享内存意外破坏的情况下紧急重启所有的进程 (-) (-) (+)
如果 set_time_limit() 失败,确保进程会结束 (-) (-) (+)
特性
Error header
(+)
支持加速上传
(+)
fastcgi_finish_request()
(+)
SlowLog
(+)
下载地址:
http://php-fpm.org/downloads/
Documentation
From PHP-FPM
Jump to: navigation, search
邮件列表
如果你有问题的话,请不要犹豫在邮件组里写邮件。
• English: highload-php-en
• Russian: highload-php-ru
简要说明
php-fpm 已经在 Linux、MacOSX、Solaris 和 FreeBSD 上测试通过。
确信 libxml2(在某些系统上叫做libxml2-devel)已经安装。
下载最小的 php 和 php-fpm
$ bzip2 -cd php-5.2.5.tar.bz2 | tar xf -
$ gzip -cd php-5.2.5-fpm-0.5.7.diff.gz | patch -d php-5.2.5 -p1
$ cd php-5.2.5 && ./configure --enable-fastcgi --enable-fpm
$ make all install
编辑 $prefix/etc/php-fpm.conf
运行 $prefix/bin/php-cgi --fpm
仔细检查 $prefix/logs/php-fpm.log
运行 phpinfo() 检查你的网站是否还正常运行
master 进程的 pid 被存放在 $prefix/logs/php-fpm.pid
master进程可以理解以下信号
SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块
Retrieved from "http://php-fpm.org/wiki/CN:Documentation"
FAQ
From PHP-FPM
Jump to: navigation, search
Contents
[hide]
• 1 php-fpm 可以和 ZendOptimize 一起用吗?
• 2 php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
• 3 为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
• 4 为什么要用 root 运行 php-fpm 呢?这安全吗?
• 5 php-fpm 可以加速 php 脚本处理速度吗?
• 6 如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
• 7 php-fpm 将来会被官方的 php 包含吗?
php-fpm 可以和 ZendOptimize 一起用吗?
完全可以。
php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
是的。php-fpm 的架构和任何一种用于高速 opcode 缓存的共享内存都适用。唯一的限制是:所有的 worker 进程只能适用一个缓存,即使它们用不同的 uid/gid 运行。
为什么我要给 php 打补丁呢?spawn-fcgi 不需要这样!
php-fpm 的创建是为了增强方便管理。没有打过补丁的 php 不能做到:
• 平滑重启 php 而不丢失请求,包括升级 php 二进制文件 以及/或者 扩展。
• 用不同的 uid / gid / chroot 环境运行 worker 进程
• 所有的设置只有一个配置文件
• 根据负载动态请求 (TODO)
• 对 php 请求实时统计性能 (TODO)
如果你自己不能为PHP打补丁,那么例如spawn-fcgi之类的其他工具更适合你,尽管它仅仅有有限的可选功能;如果你需要多个FastCGI池,还需要定制脚本。
为什么要用 root 运行 php-fpm 呢?这安全吗?
用 root 权限启动 php-fpm 只有在你打算用不同 uid/gid 的 php 来处理请求时才有意义。比如,在共享主机上的不同站点。因为只有在 master 进程用 root 运行的时候,才可以建立不同 uid/gid 的子进程。这是相当安全的。master 进程自己从来不会去处理请求。在任何情况下,php-fpm 都不会用 root 身份来处理请求。
php-fpm 可以加速 php 脚本处理速度吗?
不,它不会影响处理速度。不过,如果你使用一些特殊特性,对于一些特定的请求还是可以有性能提升的。
如果我把我的网站从 mod_php 迁移到 php-fpm ,我会得到性能提升吗?
通常,当有服务器上有大量空闲内存可用时,能从迁移到 php-fpm 中得到的性能提升可能不大。但是如果内存并不充裕,性能提升还是很可观的,在某些情况下可以达到 300-500%。这可能是由于 nginx + php-fpm 一般会比 Apache + mod_php 使用更少的内存。而且 VFS 缓存会由于更多的空余内存而更有效地工作。
php-fpm 将来会被官方的 php 包含吗?
我希望如此。目前,php-fpm 代码的协议是 GPL 。所以现在 php-fpm 的代码与 php 协议(类似 bsd)并不匹配。这是临时性措施。这样的选择是为了简化开发过程。一旦代码的功能完备,比如自适应生成子进程和其他一些东西,协议会改为一个相匹配的。之后,php-fpm 会正式发布给 php 开发团队,并被建议包含。 现在许可证已经修改成类BSD的许可证。这意味着它能包含到PHP或者PECL。我们已经接触了PHP小组和PECL小组,努力尝试把它包含或部分包含进PHP核心(并且可能进程管理部分有hooks和程序存在于PHP核心之外,这样它就能更快,并且独立于PHP各版本)
Retrieved from "http://php-fpm.org/wiki/CN:FAQ"
About
From PHP-FPM
Jump to: navigation, search
嗨,我的名字叫 Andrei Nigmatulin, 我是 php-fpm 的作者。
从 2004 年开始,我就在等有什么人让 PHP FastCGI 能满足产品环境,但我等不下去了。
php-fpm 是在数个项目种使用 PHP 的 FastCGI SAPI 中的知识、经验和想法的产物。
php-fpm 可以在 GPL 协议下用在公共用途。和 php-fpm 绑定的修改版的 libevent 是在 BSD 协议下发布的。
我需要得到您的反馈——新的想法和建议——来改进和优化 php FastCGI SAPI。 如果您有什么想法、意见、补充和建议,我会很高兴,很原意听取,也许还会实现他们。给给我发邮件吧。(地址在本页的末尾)。
如果你想支持 php-fpm 的开发,可以作一些捐赠: Paypal Yandex.Money
本文内容来自于:wiki
http://php-fpm.org/wiki/CN:Home
全批处理自动安装win7 win2008系统II
Nginx+iptables屏蔽访问Web页面过
2010/04/30 08:29 | by


