前回の続きです。ユーザ側で用意したphp.iniは、レンタルサーバ側で特別な設定をしていない限りその有効範囲が同ディレクトリ内に制限されます。つまりディレクトリを多数用意するサイト作りではユーザが作成するフォルダ毎にphp.iniを用意せねばならず、ファイル構成が冗長になってしまいます。そこでApacheの設定ファイルである.htaccessを使用して、任意の箇所に配置されたphp.iniファイルの設定が.htaccessファイルを置いたディレクトリと下位のディレクトリに適用されるように変更してみましょう。
.htaccessファイルの名前は拡張子も含めて.htaccessになります。テキストエディタなどで保存するとOSによっては不可視ファイルの扱いになってしまうので、適当な名前で保存してサーバにアップロードした後にFTPクライアントの機能でリネームするという方法が便利です。そして作成した.htaccessという名前のファイルにこのような記述をして、文の最後に改行を忘れずに入れて保存してください。
suPHP_ConfigPath /home/user/public_html/settings/
この例での/home/user/public_html/settings/の部分は、用意したphp.iniを置いているディレクトリのパスという設定です。各々のケースに合ったパスへと置換して下さい。このように設定しておくと、.htaccessを置いたパスと、それより下位のディレクトリで実行されたプログラムに/home/user/public_html/settings/に置いたphp.iniの設定が適用されるようになります。
なお.htaccessファイルもphp.iniファイルもただのテキストファイルですので、ブラウザからアクセスすると現在の設定内容が丸見えになってしまいます。それを避ける為にはApacheの特定の拡張子をもったファイルへのアクセスを禁止する機能を使うのですが、やはりそれも.htaccessファイルで設定することになります。次回はそれを含めた.htaccessの代表的な機能と書式を紹介することにします。
ピンバック: サイトC:PHPの各種設定をphp.iniではなく.htaccessで行う | AkisiのWEB制作日記