一、编译安装php-fpm
什么是PHP-FPMPHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以查看这里。安装前准备centos下执行yum -y install gcc automake autoconf libtool makeyum -y install gcc gcc-c++ glibcyum -y install libmcrypt-devel mhash-devel libxslt-devel \libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \krb5 krb5-devel libidn libidn-devel openssl openssl-devel#使用wget可以通过以下路径下载
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
#解压 tar -zxvf libmcrypt-2.5.7.tar.gz #进入目录 cd libmcrypt-2.5.7 #编译(默认安装到/usr/local/lib/) ./configure --prefix=/usr/local/libmcrypt #执行安装 make && make installyum install libXpm-devel
wget http://cn2.php.net/distributions/php-5.4.7.tar.gz
tar zvxf php-5.4.7.tar.gzcd php-5.4.7./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath \--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dirmake all install
安装后内容放在/usr/local/php目录下下面是对php-fpm运行用户进行设置cd /usr/local/phpcp etc/php-fpm.conf.default etc/php-fpm.confvi etc/php-fpm.conf修改user = www-datagroup = www-data如果www-data用户不存在,那么先添加www-data用户groupadd www-datauseradd -g www-data www-data二、编译安装nginx三、修改nginx配置文件以支持php-fpmnginx安装完成后,修改nginx配置文件为,nginx.conf其中server段增加如下配置,注意标红内容配置,否则会出现No input file specified.错误# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000#location ~ \.php$ { root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}四、创建测试php文件创建php文件在/usr/local/nginx/html下创建index.php文件,输入如下内容<?php echo phpinfo();?>五、启动服务启动php-fpm和nginx /usr/local/php/sbin/php-fpm/usr/local/nginx/nginx
php 5.4.7 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
master进程可以理解以下信号INT, TERM 立刻终止 QUIT 平滑终止 USR1 重新打开日志文件 USR2 平滑重载所有worker进程并重新载入配置和二进制模块示例:php-fpm 关闭:kill -INT `cat /usr/local/php/var/run/php-fpm.pid`php-fpm 重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`查看php-fpm进程数:ps aux | grep -c php-fpm附:
php gd库的安装与配置。
完整步骤如下,大家参考下。
1,安装zlib,一般Centos系统自带已经安装好,可以用以下命令去查看:
代码示例:
[root@xxx ~]# rpm -qa | grep zlib
zlib-1.2.1.2-1.2zlib-devel-1.2.1.2-1.2You have new mail in /var/spool/mail/root不存在的话,请手动下载编译:http://ishare.iask.sina.com.cn/f/15275772.html
代码示例:
tar zxvf zlib-1.2.2.tar.gz
cd zlib-1.2.2 ./configure make make install2,安装libpng http://sourceforge.net/projects/libpng/
代码示例:
tar zxvf libpng-1.4.2.tar.tar
cd libpng-1.4.2./configure make make install3.安装freetype http://sourceforge.net/projects/freetype/
代码示例:
tar zxvf freetype-2.3.12.tar.gz
cd freetype-2.3.12./configure
make make install4,安装Jpeg http://www.ijg.org/
代码示例:
tar zxvf jpegsrc.v8b.tar.gz
cd jpeg-8b/./configure --enable-shared
make make test make install注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库。
5,安装GD https://bitbucket.org/pierrejoye/gd-libgd/downloads
代码示例:
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33 ./configure --with-png --with-freetype --with-jpegmake
make install6,安装PHP php-5.2.11.tar.gz
代码示例:
tar zxvf php-5.2.11.tar.gz
cd php-5.2.11./configure选项见下方make
make install注:
代码示例:
/usr/local/include/freetype2/freetype
freetype/usr/local/include/include
t1lig/usr/local/include/libpng14/
png/usr/local/include
jpeg[root@xxx php-5.2.11]# ./configure --help | grep t1lib
--with-t1lib[=DIR] GD: Include T1lib support. T1lib version >= 5.0.0 required[root@xxx php-5.2.11]# ./configure --help | grep png --with-png-dir[=DIR] GD: Set the path to libpng install prefix[root@xxx php-5.2.11]# ./configure --help | grep jpeg --with-jpeg-dir[=DIR] GD: Set the path to libjpeg install prefix[root@xxx php-5.2.11]# ./configure --help | grep freetype --with-freetype-dir[=DIR] GD: Set the path to FreeType 2 install prefix[root@xxx php-5.2.11]#./configure --prefix=/opt/php5 --with-apxs2=/opt/apache/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/opt/php5/lib --with-gd --with-zlib --with-png-dir=/usr/local/include/libpng14/ --with-jpeg-dir=/usr/local/include --with-freetype-dir=/usr/local/include/freetype2/freetype (--with-t1lib --with-t1lib-dir=/usr/local/include/include)
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --with-pdo-mysql --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --enable-opcache=no --enable-zip=no --with-gd=/usr/local/include/ --with-png-dir=/usr/local/include/libpng16/ --with-freetype-dir=/usr/local/include/freetype2/ --with-jpeg-dir=/usr/local/include/ --with-xpm-dir=/usr/lib64
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --with-pdo-mysql --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --enable-opcache=no --enable-zip=no --with-gd=/usr/local/include/ --with-png-dir=/usr/local/include/libpng16/ --with-freetype-dir=/usr/local/include/freetype2/ --with-jpeg-dir=/usr/local/include/ --with-xpm-dir=/usr/lib64 --with-openssl
最后只有T1Lib Support没有启用。
GD库支持最终如下:
gd
GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.3.12 GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XBM Support enabled在apache配置文件中添加:
代码示例:
Listen 81
## Dynamic Shared Object (DSO) Support## To be able to use the functionality of a module which was built as a DSO you# have to place corresponding `LoadModule' lines at this location so the# directives contained in it are actually available _before_ they are used.# Statically compiled modules (those listed by `httpd -l') do not need# to be loaded here.## Example:# LoadModule foo_module modules/mod_foo.soLoadModule php5_module modules/libphp5.soAddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps#<IfModule !mpm_netware_module>
在htdocs目录中创建测试文件info.php:
代码示例:
[root@xxx apache]# cat htdocs/info.php
<?php echo phpinfo();?>然后,在浏览器中访问该文件,可查询GD库支持的情况。