Phpize是什么 PHP-FPM是什么

2013-08-12   来源:站长日记       编辑:沧海桑田   类别:PHP 教程    转载到:    发表评论

phpize是什么
安装php(fastcgi模式)的时候,常用命令/usr/local/webserver/php/bin/phpize
phpize 是做什么工作的 //php.net/manual/en/install.pecl.phpize.php
phpize 用来扩展php扩展模块,通过phpize建立php的外挂模块,想在原来编译好的php中加入memcached或者ImageMagick等扩展模块,可以使用phpize


如何使用phpize
php编译完成后,php的bin目录下生成phpize脚本文件。编译要添加的扩展模块之前,执行phpize,比如在php中加入memcache扩展模块:
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
编译就完成后在php.ini文件中加入extension值
extension = “memcache.so”


PHP-FPM是什么
PHP-FPM是PHPFastCGI管理器,只用于PHP,是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须patch到PHP解释器源代码中编译安装PHP后才可以使用。
5.3.2源码整合了PHP-FPM的分支,相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制更胜一筹,Spawn-FCGI容易崩溃,必须用crontab进行监控,PHP-FPM则没有这种烦恼。
PHP-FPM提供了更好的PHP进程管理方式,有效控制内存和进程、平滑重载PHP配置,被PHP官方收录了

在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,使用PHP-FPM来控制PHP-CGI的FastCGI进程
/usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}
--start 启动php的fastcgi进程
--stop 强制终止php的fastcgi进程
--quit 平滑终止php的fastcgi进程
--restart 重启php的fastcgi进程
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件

特色功能
所有特性是“不打断”的方式实现的。既如果不使用,它们的存在不影响php的功能性 是“透明”的。

FAQ
Q:php-fpm 可以和 ZendOptimize 一起用吗?
A:完全可以。
Q:php-fpm 可以和 ZendPlatform、xcache、eAccelerator、APC 等的优化器一起用吗?
A:是的。php-fpm 的架构和任何一种用于高速 opcode 缓存的共享内存都适用。唯一的限制是:所有的 worker 进程只能适用一个缓存,即使它们用不同的 uid/gid 运行

Q:为什么要给php打补丁呢?spawn-fcgi 不需要这样!
A:php-fpm 的创建是为了增强方便管理。没有打过补丁的php不能做到:平滑重启php而不丢失请求,包括升级 php二进制文件以及/或者 扩展。
用不同的 uid / gid / chroot 环境运行 worker 进程所有的设置只有一个配置文件 根据负载动态请求对php请求实时统计性能

Q:为什么要用 root 运行php-fpm 呢?这安全吗?
A:用 root 启动php-fpm 只有在打算用不同 uid/gid 的 php 来处理请求时才有意义。比如,在共享主机上的不同站点。因为只有在 master 进程用 root 运行的时候,才可以建立不同 uid/gid 的子进程。这是相当安全的。master 进程自己从来不会去处理请求。在任何情况下,php-fpm 都不会用 root 身份来处理请求

Q:php-fpm 可以加速 php 脚本处理速度吗?
A:不,不会影响处理速度。不过,如果你使用一些特殊特性,对于一些特定的请求还是可以有性能提升的

Q:如果把网站从 mod_php迁移到php-fpm ,我会得到性能提升吗?
A:通常,当有服务器上有大量空闲内存可用时,能从迁移到 php-fpm 中得到的性能提升可能不大。但是如果内存并不充裕,性能提升还是很可观的,在某些情况下可以达到 300-500%。这可能是由于 nginx +php-fpm 一般会比 Apache + mod_php 使用更少的内存。而且 VFS 缓存会由于更多的空余内存而更有效地工作

下载最小的 php 和php-fpm
$ bzip2 -cdphp-5.2.5.——tar.——bz2 | tar xf -
$ gzip -cdphp-5.2.5-fpm-0.5.7.diff.gz | patch -d php-5.2.5 -p1
$ cdphp-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进程并重新载入配置和二进制模

21

1
21|1 | 鲜花 VS 砸蛋 | 68阅读 0评论