PHPの構築

Squirrelmailを導入するにあたって、PHPが必要になりますがRedHat9.0以前のPHPパッケージが、Squirrelmailを動かすphpのマルチバイト対応のものが必要になる。日本語環境で使用するには、PHP 4.1.2以上でmbstringが有効になっているものが必要になります。
RedHat用の日本語版のRPMパッケージがあるスコット ヒューズさんのページからダウンロードできます。(RedHat9.0は、php-4.2.2-19_rh9.i386)、Fedora Core1以上はCDからインストールされているもので動作します。
補足
PHPで日本語を使用するには、FedoraCore3、4、5、6 Fedora7、8の場合にPHPを標準でインストールした状態ですとマルチバイトが使用が有効になっておりません。新たに php-mbstringパッケージを追加してインストールする必要があります。これをインストールしないとエラーとなって真っ白な画面になってなにも表示できません。例えば、FedoraCore6の場合にはGUI画面の「Gnome」 を使用できるのでしたら「パッケージソフトの追加と削除」からphp-mbstring-5.1.6-3.7.fc6.i386.rpmのパッケージをインストールします。またはCDの5枚目の中 php-mbstring-5.1.6-3.7.fc6.i386.rpm のパッケージからもインストールできます。(PHP5.x.xのバージョンの場合には使用時に白画面のエラーなどがでるようなので後で修正する必要があります。)

RedHat9の場合
PHPのインストール状況を確認します。
#] rpm -qa | grep php
php-4.2.2-17.2
php-imap-4.2.2-17.2
php-ldap-4.2.2-17.2
php-xxxxxx-4.2.2-17.2 (mysqlなど)

現在インストールされているPHPを削除します。
#] rpm -e php-ldap-4.2.2-17.2
#] rpm -e php-imap-4.2.2-17.2
#] rpm -e php-xxxxx.4.2.2-17.2
#] rpm -e php-xxxxx.4.2.2-17.2
#] rpm -e php-4.2.2-17.2 ←php本体は最後に削除します。

ダウンロードしたものをインストールします。
#] rpm -ivh php-4.2.2-19_rh9.i386.rpm
#] rpm -ivh php-imap-4.2.2-19_rh9.i386.rpm
#] rpm -ivh php-ldap-4.2.2-19_rh9.i386.rpm
#] rpm -ivh php-xxxx-4.2.2-19_rh9.i386.rpm

インストール後は、必要に応じてphp.iniのファイルを開き設定します。
自分の環境に合わせて mbstring を必要に応じて#を外したりオプッションを追加したりして設定します。
どうしても真っ白画面しか表示できない場合に 「display_errors = Off → ON」にすることでエラー内容が表示できるのでエラー内容から解決できます。私の経験上から意外とパーミッションなどの権限で引っかかる場合が多いようです。
vi /etc/php.ini

mbstring 設定オプション
名前 デフォルト 変更可能な範囲 変更履歴
mbstring.language "Japanese" PHP_INI_PERDIR PHP 4.3.0 から利用可能です。
mbstring.detect_order NULL PHP_INI_ALL PHP 4.0.6 から利用可能です。
mbstring.http_input "pass" PHP_INI_ALL PHP 4.0.6 から利用可能です。
mbstring.http_output "pass" PHP_INI_ALL PHP 4.0.6 から利用可能です。
mbstring.internal_encoding NULL PHP_INI_ALL PHP 4.0.6 から利用可能です。
mbstring.script_encoding NULL PHP_INI_ALL PHP 4.3.0 から利用可能です。
mbstring.substitute_character NULL PHP_INI_ALL PHP 4.0.6 から利用可能です。
mbstring.func_overload "0" PHP_INI_PERDIR PHP 4.2.0 から利用可能で、PHP <= 4.2.3 は PHP_INI_SYSTEM です。
mbstring.encoding_translation "0" PHP_INI_PERDIR PHP 4.3.0 から利用可能です。
mbstring.strict_detection "0" PHP_INI_ALL PHP 5.1.2 から利用可能です。


EUC-JP ユーザ用の php.ini の設定例
;; 出力バッファリングを無効にする
output_buffering = Off

;; HTTP charsetヘッダを設定
default_charset = EUC-JP

;; デフォルトの言語を日本語にする
mbstring.language = Japanese

;; HTTP 入力変換を有効にする
mbstring.encoding_translation = On

;; HTTP 入力エンコーディング変換を auto に設定
mbstring.http_input = auto

;; HTTP 出力を EUC-JP に設定
mbstring.http_output = EUC-JP

;; 内部エンコーディングを EUC-JP に設定
mbstring.internal_encoding = EUC-JP

;; 無効な文字を出力しない
mbstring.substitute_character = none


SJIS ユーザ用の php.iniの 設定
;; 出力のバッファリングを有効に
output_buffering = On

;; 出力の変換を有効にするために mb_output_handler を設定
output_handler = mb_output_handler

;; HTTPヘッダ charset を設定
default_charset = Shift_JIS

;; デフォルトの言語を日本語に設定
mbstring.language = Japanese

;; HTTP 入力変換を有効にする
mbstring.encoding_translation = On

;; HTTP 入力エンコーディング変換を auto に設定
mbstring.http_input = auto

;; SJIS に変換
mbstring.http_output = SJIS

;; 内部エンコーディングを EUC-JP に設定
mbstring.internal_encoding = EUC-JP

;; 無効な文字を出力しない
mbstring.substitute_character = none

戻る          ホーム