環境
さくらのレンタルサーバー ビジネス
ドメイン6つ 6サイト
php.iniには
output_buffering = On
display_errors=Off
error_reporting=E_ERROR
の記述
display_errors=offにしたのは
他サーバーで他社が作成したソースを移行したときに、エラーが表示されたため。
直せばよいのですが、誰もわからない、直す時間がないので、
display_errors=offにしています。
エラーさえ表示されなければきちんと動いているのでとりあえずめでたし、めでたし。
月日は流れ・・・・
新たなサイトを作成することになりました。
開発中はエラーを表示したい。
でも、display_errors=OffをOnにすると既存サイトにエラーが表示されてしまう。
そこで さくらのレンタルサーバーでPHP.iniをドメインごとに設定できないか調べました。
環境・前提
さくらのレンタルサーバービジネス
PHP モジュールモード
プログラムの ini_set()は使わない
sshコマンドは使わない
初心者に優しく
結論
ディスプレイにエラーを表示するのはあきらめて、
php.ini でエラーログの出力設定をする
以下この結論に至った道のりです。
php.iniを複数作成してみる。
※結論 だめでした
さくらのレンタルサーバーの場合
php.iniは
/home/〇〇〇/www/php.ini
そこでphp.iniを作成し、ドメインフォルダ以下においてみました。
/home/〇〇〇/www/〇〇〇/php.ini
で、phpinfo()で php.iniのパスを確認したのですが・・・・
/home/〇〇〇/www/php.ini と初期設定のまま。残念
php.iniの設定項目
php.ini以外でも設定できるのか
エラーログの設定で使う定数
.user.ini ファイルを使ってみる
.user.iniでディレクトリ単位での ini ファイルを使えます。
ただし、モジュール―モードでは使えない。
なので今回は× 残念。
.htaccess を使ってみる
.htaccessを使ってPHPの設定を行う場合には、「php_value」ディレクティブ、または、「php_flag」ディレクティブを使用します。
でさくらのレンタルサーバーで使えるのか調べてみました。
なんと、
PHPに関する設定を [ php.ini ] にせず、[ .htaccess ] に 「 PHP_Flag 」 や 「 PHP_Value 」 などを記述すると500エラーになるのです。
画面にエラーを表示するのはあきらめてエラーログにする
結局PHPのエラーログを出力するようにしました。
さくらのレンタルサーバーの初期設定では
log_errors は off になっています。
そこで www以下にphplogフォルダを作成し、
以下の設定をします。
log_errors=On
error_log="/home/〇〇〇/www/phplog/error.log"
設定箇所は
さくらのレンタルサーバーコントロールパネル→スクリプト設定→php.ini設定
通常はエラーログの出力先はWEBからアクセスできない場所がよいのですが、
FTPでアクセスしたときのドキュメントルートがWWW以下なので、
「ログのありかがわからない」という問い合わせをさけるために www以下にしています。
さくらのレンタルサーバーのエラーログも出力する
さくらのレンタルサーバーにもエラーログを出力する設定はあります。
ただし、初期では出力しないようになっているので出力するようにします。
サーバーステータス→アクセスログ→アクセスログの保存→エラーログも保存するにチェックをいれます。
正直エラーログをみてもよくわからないので、さくらのレンタルサーバーのエラーログ&PHPのエラーログの二つを照らし合わせ乗り切りたいです。
どなたかよい方法を教えてください。