公司最近把一個項目交給外包做了,那叫一個坑啊!簡直氣得我吐血,文檔裡面只提到用php5,我就裝了php5.6。什麼都搞好之後告訴我說php版本要5.2.6。我只能呵呵了···5.2.6預設不支援php-fpm。所以還要打補丁各種問題,下面是安裝記錄,免得下次再重蹈覆轍···
依賴安裝
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel mysql mysql-devel -y
下載安裝包
cd /opt/wget http://php-fpm.org/downloads/php-5.2.6-fpm-0.5.9.diff.gzwget http://museum.php.net/php5/php-5.2.6.tar.gz
解壓和打補丁
tar zxvf php-5.2.6.tar.gzgzip -cd php-5.2.6-fpm-0.5.9.diff.gz | patch -d php-5.2.6 -p1
打完補丁後編譯參數就支援
註:--enable-fastcgi \ 需要在--enable-fpm \的前面,否則,fpm不能編譯上。
--enable-fpm
編譯及安裝
cd php-5.2.6./configure \--prefix=/data/php-5.2.6 \--with-config-file-path=/data/php-5.2.6/etc \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \--enable-fastcgi \--enable-fpm \--with-mysql=/usr/bin/mysql \--with-mysqli=/usr/bin/mysql_config \--with-pdo-mysql=/usr/bin/mysql \--with-gettext \--enable-mbstring \--with-iconv \--with-mcrypt \--with-mhash \--enable-bcmath \--enable-soap \--with-libxml-dir \--enable-pcntl \--enable-shmop \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-sockets \--with-curl \--with-zlib \--enable-zip \--with-bz2 \--with-readlinemake -j4 && make install
配置
cp php.ini-dist /data/php-5.2.6/etc/php.inicd /data/php-5.2.6/vim etc/php-fpm.conf
需要注意下面幾處配置127.0.0.1:9100這個表示php的fastcgi進程監聽的ip地址以及連接埠。因為本地已經有一個5.6版本了所以這裡改成9100nobodynobody表示php的fastcgi進程以什麼使用者以及使用者組來運行,預設該行是注釋掉的,需要開啟0是否顯示php錯誤資訊5最大的子進程數目運行php-fpm:php-fpm用一個程式來控制fastcgi進程,這個檔案在$PREFIX/sbin/php-fpm
nginx 配置
location ~ \.php$ { root /data/www/yydb; fastcgi_pass 127.0.0.1:9100; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; }
這裡把fastcgi_pass 改到本地的9100連接埠
啟動
/data/php-5.2.6/sbin/php-fpm startecho "/data/php-5.2.6/sbin/php-fpm start" >> /etc/rc.local