Solaris PHPの引っ越し
- 2008.09.08
- Solaris
イントラネットの引っ越しで、PHPを新しいSolarisにインストールする。
■古いサーバで、PHPのバージョンと、インストールオプションを調べる
サーバーAにインストールされているPHP
$ php -i
バージョン: 4.4.2
コンフィグ: ’./configure’ ‘–with-mysql’ ‘–with-apxs=/usr/apache/bin/apxs’ ‘–enable-mbstring’ ‘–with-gd’ ‘–with-zlib’
設定ファイル: /usr/local/lib/php.ini
MySQLのAPI: 3.23.49
MySQLのソケット: /tmp/mysql.sock
というようなことが分かる。
サーバーBにインストールされているPHP
$ php -i PHP Version => 5.2.0 System => SunOS bdj-intra2.bdjapan.com 5.10 Generic_118833-24 sun4u Build Date => Jan 22 2007 16:08:54 Configure Command => './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' ' --enable-zend-multibyte' '--enable-mbstring=shared' '--with-oci8=shared' '--enab le-sigchild'
■前準備をしておく
apxsの場所をfindコマンドで探した。
/usr/apache/bin/apxs
/usr/apache2/bin/apxs
■新しいサーバで、PHPをコンパイルしてインストールする
サーバーAの代わりの新しいサーバCにインストール。
せっかくの機会なので、PHP5を用意した。上手く動かないものがあればPHP4にすればいいや…と。
$ cd /usr/local/src $ tar zxvf php-5.2.6.tar.gz $ cd php-5.2.6 $ ./configure --help (オプションを確認しておく) $ ./configure --with-mysql=/usr/sfw --with-apxs=/usr/apache/bin/apxs --enable-mbstring --with-gd --with-zlib $ make (最後にこのメッセージが表示されれば成功。) Build complete. Don't forget to run 'make test'. $ make test
–with-mysqlで、パスを指定しないとこのようなエラーが表示される。
configure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!
/usr/sfw/mysql/の下にはlibとincludeが無いので、一つ上のディレクトリ/usr/sfw/を指定した。
rootユーザでインストールを実行する。 メッセージをメモしておくとよい。
# make install Installing PHP SAPI module: apache [activating module `php5' in /etc/apache/httpd.conf] cp libs/libphp5.so /usr/apache/libexec/libphp5.so chmod 755 /usr/apache/libexec/libphp5.so cp /etc/apache/httpd.conf /etc/apache/httpd.conf.bak cp /etc/apache/httpd.conf.new /etc/apache/httpd.conf rm /etc/apache/httpd.conf.new Installing PHP CLI binary: /usr/local/bin/ Installing PHP CLI man page: /usr/local/man/man1/ Installing build environment: /usr/local/lib/php/build/ Installing header files: /usr/local/include/php/ Installing helper programs: /usr/local/bin/ program: phpize program: php-config Installing man pages: /usr/local/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/lib/php/ [PEAR] Console_Getopt - installed: 1.2.3 [PEAR] Archive_Tar - installed: 1.3.2 [PEAR] Structures_Graph- installed: 1.0.2 pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0) [PEAR] PEAR - installed: 1.7.1 Wrote PEAR system config file at: /usr/local/etc/pear.conf You may want to add: /usr/local/lib/php to your php.ini include_path Installing PDO headers: /usr/local/include/php/ext/pdo/
Apacheを停止、起動させて、PHPを有効にする。
サーバーBの代わりの新しいサーバーDにインストールする。
Oracle実行ユーザーで./configureを実行したときのメモ。(実際には一行で実行する)
./configure --with-mysql=/usr/sfw --with-apxs2=/usr/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-gd --with-zlib --with-oci8=shared,/u01/app/oracle/product/10.2.0 --enable-sigchild
オプションの詳細。
apache2の場合は、–with-apxs2を指定する。
shared指定: shared extension としてコンパイルされる。
./configure –help | less で調べた情報。Oracleインスタントクライアントの場合の参考に。
–with-oci8[=DIR] Include Oracle (OCI8) support. DIR defaults to $ORACLE_HOME.
Use –with-oci8=instantclient,/path/to/oic/lib
for an Oracle Instant Client installation
–enable-sigchild Enable PHP’s own SIGCHLD handler
ちなみに –with-oracle[=DIR] は、oci7用らしい。
Oracle実行ユーザで./configureしなかった場合、$ORACLE_HOME以下へのアクセス権限が無くてこのようなエラーが発生する。
checking OCI8 libraries dir... configure: error: Oracle (OCI8) required libraries not found
make test したときに、You may have found a problem in PHP. というメッセージが最後に出たが、make installのメッセージを見たところ、まあ大丈夫かな…。
# make install Installing PHP SAPI module: apache2handler /var/apache2/build/instdso.sh SH_LIBTOOL= '/var/apache2/build/libtool' libphp5.la /usr/apache2/libexec /var/apache2/build/libtool --mode=install cp libphp5.la /usr/apache2/libexec/ cp .libs/libphp5.so /usr/apache2/libexec/libphp5.so chmod +x /usr/apache2/libexec/libphp5.so cp .libs/libphp5.lai /usr/apache2/libexec/libphp5.la libtool: install: warning: remember to run `libtool --finish /usr/local/src/php-5.2.6/libs' chmod 755 /usr/apache2/libexec/libphp5.so [activating module `php5' in /etc/apache2/httpd.conf] Installing PHP CLI binary: /usr/local/bin/ Installing PHP CLI man page: /usr/local/man/man1/ Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/ Installing build environment: /usr/local/lib/php/build/ Installing header files: /usr/local/include/php/ Installing helper programs: /usr/local/bin/ program: phpize program: php-config Installing man pages: /usr/local/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/lib/php/ [PEAR] Console_Getopt - installed: 1.2.3 [PEAR] Archive_Tar - installed: 1.3.2 [PEAR] Structures_Graph- installed: 1.0.2 pear/PEAR can optionally use package "pear/XML_RPC" (version >= 1.4.0) [PEAR] PEAR - installed: 1.7.1 Wrote PEAR system config file at: /usr/local/etc/pear.conf You may want to add: /usr/local/lib/php to your php.ini include_path Installing PDO headers: /usr/local/include/php/ext/pdo/
■php.iniを用意する
インストールが終わったら引き続き、php.iniを設置する。
php.iniの設置場所を確認する。
# /usr/local/bin/php -i | grep php.ini Configuration File (php.ini) Path => /usr/local/lib
php.ini-dist または php.ini-recommendedを/usr/local/libにphp.iniとファイル名を変更してコピーする。(2つのファイルの違いはdiffコマンドで確認)
# cp php.ini-dist /usr/local/lib/php.ini
以前のサーバで利用していた/usr/local/lib/php.iniの内容をチェックして、必要であればこのサーバのphp.iniの内容を変更する。
php.iniの設置を確認する。
# /usr/local/bin/php -i | grep php.ini Configuration File (php.ini) Path => /usr/local/lib Loaded Configuration File => /usr/local/lib/php.ini
■httpd.confを設定する
追加されたPHPモジュールを確認する。
LoadModule php4_module libexec/libphp4.so
AddModule mod_php4.c
*.phpファイルが、PHPを実行できるように設定を追加する。
AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps
設定後、apacheを再起動する。
-
前の記事
Solaris10にプリインストールされているMySQLを設定する 2008.09.05
-
次の記事
Solaris Apache1.3の引っ越し 2008.09.08