PHPのインストール(Apache2.0 Linux編)
Webメールとして、SquirrelMailというPHPベースのものを入れることにしたので、ApacheもPHP対応することにしました。PHPについては、これから勉強していく状況ですので、取りあえずSquirrelMailを動かす最低限のことしかしてありませんのであしからず。
■Apacheの再コンパイル
まず、ApacheでDSOモジュールとしてPHPを組み込むため、再コンパイルします。改めて書くほどのこともないのですが、
Apache+SSLか
Apacheのページを参考に、./configure時に「--enable-so」オプションをつけて再コンパイルするだけです。コンパイル後、make、make
installしてApacheを再起動すれば、DSOモジュールを組み込めるようになります。
■PHP関係
ここでは、PHPのインストールと設定を行います。
◆PHP関係のrpmの削除
RedHat8.0のRPMは、mbstring付きでコンパイルされていないため使えないのでソースから入れなおすことにしました。まず、PHPのrpmパッケージがインストールされているか確認し、インストールされていたら削除します。
# rpm -qa | grep
php php-4.2.2-8.0.5 php-imap-4.2.2-8.0.5 php-ldap-4.2.2-8.0.5 php-pgsql-4.2.2-8.0.5 # rpm -qa | grep php | xargs rpm
-e |
◆PHPのインストール
PHPのソースファイルを、初め
本家からダウンロードしてきましたが、PHP 4.3.2 のprintf/sprintf/vprintf/vsprintf関数に問題があるとのことなので、
こちらからダウンロードしなおしました。ダウンロードしたのは、php4-STABLE-200306300130.tar.gzです。ソースファイルを展開し、configureを実行し、Makeしてインストールします。
少し調査不足ですが、環境によってMySQL関係でconfigureがうまくいかないことがあります。本質的な対処ではないですがMySQLをインストールして、シンボリックリンクを張っておくことで回避しました。
$ tar zxfv php4-STABLE-200306300130.tar.gz $
cd php-4.3.2 $ ln -s /usr/include/mysql /usr/mysql $ ./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \ --enable-mbstring
\ --enable-mbregex \ --enable-zend-multibyte
\ --with-gd \ --enable-gd-native-ttf \
--with-freetype-dir=/usr \ --with-png-dir=/usr \
--with-zlib \ --with-jpeg-dir=/usr \
--with-pgsql=/usr \
--with-mysql=/usr $
make $ su # make
install |
configureのオプションは、以下を選択しました
- --with-apxs2=/usr/local/apache2/bin/apxs (Apache 2.0DSO用。オプションで、Apache
apxsツールへのパス名を指定)
- --enable-mbstring (マルチバイト文字列のサポートを有効)
- --enable-mbregex (マルチバイト正規表現のサポートを有効)
- --enable-zend-multibyte (PHPスクリプトがShift_JISで記述可能になる)
- --with-gd (GDサポートを追加)
- --enable-gd-native-ttf (TrueType文字列関数をgdで使用可能にする)
- --with-freetype-dir=/usr (freetype2インストール接頭辞にパスを設定)
- --with-png-dir=/usr (libpngインストール接頭辞にパスを設定)
- --with-zlib (PNGで使用)
- --with-jpeg-dir=/usr (libjpegインストール接頭辞にパスを設定)
- --with-pgsql=/usr (PostgresSQLサポートを有効。PostgresSQLベースインストー ルディレクトリを指定)
- --with-mysql=/usr (MySQLサポートを有効。MySQLベースインストールディレクトリへのシンボリックリンクを指定)
◆PHPの設定
PHPの設定は、下記のようにソースディレクトリにあるphp.ini-distを/usr/local/lib/php.iniにコピーし設定します。設定変更したところ(大半はコメントアウトを外すだけ)を中心に記載します。
# cp php.ini-dist
/usr/local/lib/php.ini # vi
/usr/local/lib/php.ini
output_buffering = On
output_handler = mb_output_handler default_charset =
Shift_JIS session.save_path = /tmp/php
[mbstring] mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On mbstring.detect_order =
auto mbstring.substitute_character =
none; mbstring.script_encoding =
auto
[Esc]、[:]、[w]、[q]で保存。
|
php.iniの設定の概要は、以下のとおりです。
- output_buffering = On : 出力バッファリングを有効
- output_handler = mb_output_handler : 出力の変換を有効にするためにmb_output_handlerを指定
- default_charset = Shift_JIS : PHPがContent-type:ヘッダで character
encodingを出力するコードを指定
- session.save_path = /tmp/php : セッションのデータが保存されるディレクトリ
- mbstring.language = Japanese : mbstringで使用される言語のデフォルト値
- mbstring.internal_encoding = EUC-JP : 内部文字エンコーディングのデフォルト値
- mbstring.http_input = auto : HTTP入力文字エンコーディングのデフォルト値
- mbstring.http_output = SJIS : HTTP出力文字エンコーディングのデフォルト値
- mbstring.encoding_translation = On : HTTP入力文字エンコーディング検出および内部文字エンコーディングへの変換
- mbstring.detect_order = auto : 文字コード検出のデフォルト値
- mbstring.substitute_character = none; : 無効な文字を代替する文字
- mbstring.script_encoding = auto :
PHPスクリプトのエンコーディングを指定(ASCII,JIS,UTF-8,EUC-JP,SJISに展開)
■ApacheのPHP関連の設定
ここで、ApacheのPHP関係の設定を行います。/usr/local/apache2/conf/httpd.confを開き、下記を設定します。通常なら、LoadModuleに関してはインストール時にDSOモジュールのところに追加されているはずなので、AddTypeのみ追加すれば大丈夫です。
また、DirectoryIndexにindex.phpを追加しておきます。なお、inde.htmは、おやじが基本でを.htmを使用しているため追加しています。設定が完了したらApacheを再起動しておきます。
# vi
/usr/local/apache2/conf/httpd.conf
LoadModule php4_module
modules/libphp4.so AddType application/x-httpd-php
.php
DirectoryIndex index.html index.htm index.html.var index.php
[Esc]、[:]、[w]、[q]で保存。
#
/etc/rc.d/init.d/httpd2
restart |
◆PHPの動作確認
ここで、PHPが正常に動作しているか確認しておきます。下記のように適当な名前のphpファイルを作成しDocumentrootに置き、ブラウザで
http://www.aconus.com/test.php
とアクセスすると、PHPが使えるようになっていればサーバのPHP関係の情報が表示されます。
# vi /home/test.php
<?php phpinfo();
?>
[Esc]、[:]、[w]、[q]で保存。 |
Top Pageへ