*PHP [#o754150a]
[[PHP:+http://php.net/]]
色々なWebアプリを動かすのに必須なミドルウェア。LAMPの"P"たる所以。
PHP5.4以下とPHP5.5以上の間に開発の壁があり、5.4だと動いた物が5.5だと動かなかったりする。
また、現在のPHPオフィシャルメンテナー期間はメジャーバージョンリリースがされた2世代前までなので、
PHP5.7が公開されたら、オフィシャル版PHP5.4も終息となる予定。
~
ただし、CentOSプロジェクトとか他メンテナーが絡んでいる物は、そっち側の意向によって変化する。
例:CentOSのyumのBaseリポジトリで提供しているPHP5.3はCentOS6が終了するまでメンテナンスする予定 --> [[メモ記事>+http://www.ns-lab.org/digiloog/2014/09/article_2613/]]
~
*インストール [#pb63c1ab]
&size(16){&font(b){0. ビルドオプション};};
長いオプションを使うので、オプションの意味は割愛。大体は『$ ./configure --help』打てば出る。
以下は改行してあるが、実際には一行化した上でconfigure.optionとかに出力しておき、
『$ ./configure `cat ../configure.option`』とかにすると楽。
 --prefix=/usr/local/php \
 --sysconfdir=/etc \
 --with-apxs2=/usr/local/apache/bin/apxs \
 --with-mysql=/usr/local/mysql \
 --with-mysqli=mysqlnd \
 --with-pdo-mysql=mysqlnd \
 --with-libdir=lib64 \
 --with-curl=/usr/lib64 \
 --with-jpeg-dir=/usr/lib64 \
 --with-png-dir=/usr/lib64 \
 --with-vpx-dir=/usr/lib64 \
 --with-xpm-dir=/usr/lib64 \
 --with-bz2 \
 --with-gd \
 --with-gettext \
 --with-gmp \
 --with-iconv \
 --with-kerberos \
 --with-layout \
 --with-openssl \
 --with-pic \
 --with-xmlrpc \
 --with-zlib \
 --without-pspell \
 --without-unixODBC \
 --enable-bcmath \
 --enable-calendar \
 --enable-cli \
 --enable-exif \
 --enable-ftp \
 --enable-gd-native-ttf \
 --enable-intl \
 --enable-mbstring \
 --enable-pcntl \
 --enable-pdo \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvmsg \
 --enable-sysvsem \
 --enable-sysvshm \
 --enable-xml \
 --enable-xmlreader \
 --enable-xmlwriter \
 --enable-zip \
 --disable-dba \
 --disable-debug \
 --disable-dom \
 --disable-fileinfo \
 --disable-phar \
 --disable-posix \
 --disable-rpath \
 --disable-sysvmsg \
 --disable-sysvsem \
 --disable-sysvshm \
 --disable-wddx
~
&size(16){&font(b){1. ビルド};};
上記のconfigureオプションを別ファイル化した場合のビルド例
 # tar jxvf php-5.6.1.tar.bz2
 # cd php-5.6.1
 # ./configure `cat ../configure.option`
 # make
 # make test
 # make install
~
&size(16){&font(b){2. 設定};};
ソースコードの中にphp.iniが入っているので、それを/etcにコピーして使用する。
また、apacheとの連携をしている場合はhttpd.confにPHPのLoadModuleが追記されているかも確認する
 # cp {$PHP_SrcDIR}/php.ini-development /etc/php.ini
~
『$ ./configure --sysconfdir=/etc』を外した場合はコンフィグの場所が変わる
&font(b){/usr/local/php/etcでは無い};ので注意
 # cp {$PHP_SrcDIR}/php.ini-development /usr/local/php/lib/php.ini