Fedora では、PHPライブラリの追加は非常に簡単だ。 中にはPHPへライブラリを追加する度にPHPのリコンパイルが必要だと信じきっている人もいるようだが、実際にはダイナミックライブラリ(動的ライブラリ)として存在するため、パッケージャから読み込むだけでよい。また、設定ファイル自体も分割されているため、固有情報が無い限り他にすることが無いと言って良いほどだ。

 

そこで、今回はPHPライブラリの追加方法を紹介してみようと思う。

 

※ PHPのインストールやパラメータの確認はココを参考にして下さい。
※ Fedora14 では、パッケージャからインストールするだけで Apache の再起動なども必要ない。(HUPシグナルが発生しているようだ。)
※ yumコマンドでインストールする場合も同様である。
※ RHELや CentOS も基本的に同じハズだが、PHPのバージョンが古い場合は同じとは言えないかもしれない。
※ このページの PHP バージョンは 5.3.6 である。
※ Fedora15 & 16 PHP 5.3.8 でも動作確認しました。

 

※ ココでの設定は Apache に対するモノです。Nginx はコチラもご覧下さい。

 

 

MySQL用モジュールの追加

まずはココを確認してもらおう。

 

以前はPHPをコンパイルする方法が主流でしたが、現在の Linux 環境では、パッケージ経由でインストールする方法が、一般的です。

 

※ インストールする前に、ココの方法で組み込まれているライブラリを確認して下さい。(MySQL関連のモジュールは、幾つかがデフォルトで組み込まれています。)

 

そこで、PHPのMySQLなので、『php-mysql』で検索してみる。

 

※ Fedora22 からは DNF を用いてインストールを行います。詳しくはコチラをご覧下さい。

 

PHP MySQLnd ライブラリの追加

 

『php-mysqlnd』を選択し、右上の『Apply Changes』をクリックし、インストールする。

 

※ 『php-mysql』は現在では非推奨になっています。代わりに『php-mysqlnd』を利用して下さい。
※ 『php-mysqlnd』… PHP MySQL Native Driver(ネイティブ化されたMySQLドライバー)

 

インストールした後は、設定ファイルを確認しよう。(確認方法はココを参照)

 

PHPモジュール設定ファイルの確認

 

『/etc/php.d/』配下に設定ファイルが存在する事がわかる。中身を確認してみれば分かることだが、通常はダイナミックライブラリを指定してあるだけなので、編集の必要はない。

『mysqlnd.ini』の内容

 

; Enable mysql extension module
extension=mysqlnd.so

 

mbstrig モジュールの追加

まずはココを参照

 

内容的にもMySQLと同じようなモノなので『php-mbstring』で検索

 

mbstring モジュールの追加

 

インストールした後は、設定ファイル『/etc/php.ini』を確認。

※ 以前は『/etc/php.d/mbstring.ini』で設定を行なっていたのですが、今では『/etc/php.ini』で設定を行うようになっています。

※ 『/etc/php.d/20-mbstring.ini』が存在すれば優先され、無ければ『/etc/php.ini』で設定を行うようになっています。

 

[mbstring]
; language for internal character representation.
; http://php.net/mbstring.language
;mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
;mbstring.internal_encoding = EUC-JP
; http input encoding.
; http://php.net/mbstring.http-input
;mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
; http://php.net/mbstring.http-output
;mbstring.http_output = SJIS; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
; http://php.net/mbstring.encoding-translation
;mbstring.encoding_translation = Off; automatic encoding detection order.
; auto means
; http://php.net/mbstring.detect-order
;mbstring.detect_order = auto

; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
;mbstring.substitute_character = none;

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
; http://php.net/mbstring.func-overload
;mbstring.func_overload = 0

; enable strict encoding detection.
;mbstring.strict_detection = Off

; This directive specifies the regex pattern of content types for which mb_output_handler()
; is activated.
; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
;mbstring.http_output_conv_mimetype=

 

※ これらの設定は、デフォルトでの振る舞いを決定するものであり、特に設定する必要はありません。(詳細はココを参照)

 

 

国際化用拡張モジュールの追加

何のモジュールかと思われるかも知れませんが、端的に言ってしまえばロケール関連のモジュールです。日時や通貨単位など、日本語利用する場合は利用する事も多いかと思います。

 

まずはココを参照。

 

そこで、『php-intl』で検索

 

国際化関数モジュール追加

 

※ 設定ファイルは『/etc/php.d/20-intl.ini』ですが、変更の必要は無い様です。

 

 

ImageMagick モジュール追加

まずはココを参照。

 

もうお分かりかと思いますが、PECL 拡張モジュール内に存在します。しかも『この拡張モジュールの正式な名前は imagick です。』との注意がありますので、『php-pecl-imagick』で検索。

 

PHP ImageMagick モジュール追加

 

※ 設定ファイルは『/etc/php.d/20-imagick.ini』ですが、変更の必要はなさそうです。

 

 

モジュールパッケージを探すには…

ここまで見ればもう気づいたかと思いますが、モジュールを追加する場合は、『php-』から始まり、あとはマニュアルから判断すれば、大抵のモジュールは見つかります。

 

意外と簡単だとは思いませんか?

 

※ どうしても GUI 環境が使えない場合は、yum コマンドを使用します。検索『yum list ‘php-intl*’』(シングルコーテーションで囲めばワイルドカードも使えます)、インストール『yum install ‘php-intl’』など。