ホームページ >バックエンド開発 >PHPチュートリアル >複数のバージョンの PHP の共存を実現するための PHP 5.2.6 のインストールと fpm パッチ
会社は最近プロジェクトを外注しましたが、これが落とし穴です。血を吐くほど腹立たしかったので、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
パッチを適用した後、コンパイル パラメーターは Support になります
注: --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
需要注意下面几处配置<value name="listen_address">127.0.0.1:9100</value>这个表示php的fastcgi进程监听的ip地址以及端口。因为本地已经有一个5.6版本了所以这里改成9100<value name="user">nobody</value><value name="group">nobody</value>表示php的fastcgi进程以什么用户以及用户组来运行,默认该行是注释掉的,需要打开<value name="display_errors">0</value>是否显示php错误信息<value name="max_children">5</value>最大的子进程数目运行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