PHP へのライブラリ追加
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』を選択し、右上の『Apply Changes』をクリックし、インストールする。
※ 『php-mysql』は現在では非推奨になっています。代わりに『php-mysqlnd』を利用して下さい。
※ 『php-mysqlnd』… PHP MySQL Native Driver(ネイティブ化されたMySQLドライバー)
インストールした後は、設定ファイルを確認しよう。(確認方法はココを参照)
『/etc/php.d/』配下に設定ファイルが存在する事がわかる。中身を確認してみれば分かることだが、通常はダイナミックライブラリを指定してあるだけなので、編集の必要はない。
『mysqlnd.ini』の内容
extension=mysqlnd.so
mbstrig モジュールの追加
まずはココを参照。
内容的にもMySQLと同じようなモノなので『php-mbstring』で検索
インストールした後は、設定ファイル『/etc/php.ini』を確認。
※ 以前は『/etc/php.d/mbstring.ini』で設定を行なっていたのですが、今では『/etc/php.ini』で設定を行うようになっています。
※ 『/etc/php.d/20-mbstring.ini』が存在すれば優先され、無ければ『/etc/php.ini』で設定を行うようになっています。
; 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』で検索。
※ 設定ファイルは『/etc/php.d/20-imagick.ini』ですが、変更の必要はなさそうです。
モジュールパッケージを探すには…
ここまで見ればもう気づいたかと思いますが、モジュールを追加する場合は、『php-』から始まり、あとはマニュアルから判断すれば、大抵のモジュールは見つかります。
意外と簡単だとは思いませんか?
※ どうしても GUI 環境が使えない場合は、yum コマンドを使用します。検索『yum list ‘php-intl*’』(シングルコーテーションで囲めばワイルドカードも使えます)、インストール『yum install ‘php-intl’』など。