auto_prepend_fileをPleskで管理しているサイトに設定しようとしてはまったので備忘録しておきます。
auto_prepend_fileってなんだ?
auto_prepend_fileは、設定しておいたファイルをわざわざメインファイルでincludeとかしなくても読み込んでくれる便利なphpの設定です。
PHPマニュアルには下記のような説明がされています。
メインファイルの前に自動的に付加されるファイルの名前を指定します。 このファイルは、require 関数のコール時と同様に読み込まれます。 このため、include_path が使用されます。
特別な値 none を指 定すると、ファイルを前に追加する機能は無効となります。
Plesk環境では何をしてもauto_prepend_fileが動作せず
一般的にはphp.iniに設定したり、.htaccessで設定したり、nginxのディレクティブで設定したりと様々な設定方法があります。
今回はPlesk環境なので、単純にPleskパネル内の「php設定>追加ディレクティブ」にphp.iniに指定するときと同じ記法で
auto_prepend_file = '/var/www/vhosts/example.com/dir/file.php'
みたいに設定したのですが動作せず・・・。
これがだめなら.htaccessで!
と思ったら503エラーになってしまい・・・
めんどくさい。。あぁ。非常にめんどくさい。
Pleskでは.user.iniで設定しよう
任意のディレクトリに対してphp.iniの設定変更を反映させたりするのに利用する.user.iniを設定する。
これで解決!
php.ini自体を編集することで解決する手もあるけれど、Pleskで管理してる意味あんまりなくなるし、設定どうなってるかコマンド打たないといけないとかめんどくさいから、PleskのUI上でできる方法があるならそれが一番。
ということで、やりかた。
まずはPleskの「php設定>追加ディレクティブ」に下記を書いて設定する。
user_ini.filename = ".user.ini"
.user.iniファイルを作って、php.iniに書きたい指定を書く。
auto_prepend_file = '/var/www/vhosts/example.com/dir/file.php'
これを、ルートディレクトリなど、設定を反映させたいディレクトリに置く。
わたしの環境では、/var/www/vhosts/example.com/httpdocsをルートディレクトリにしていたので、ここに設置しました。
/var/www/vhosts/example.com/httpdocs/.user.ini
に設置です。
以上です。
コメントを残す