PHP

さくらインターネットのphpのパーミッション

Evernote の php の API サンプルを動作確認するために、Cygwin からさくらのレンタルサーバにコピー(scp)したのですが、Internal Server Error(500) になり詳細なエラーもログに吐かれない状況が続きました。

唯一のログも Premature end of script headers で厄介な状態に。

原因と対策

結果的に、php の中身をシンプルに書き換えてもエラーになるので、パーミッションを 664(-rw-rw-r–)から 644(-rw-r–r–)に調整したら直りました。

さくのサーバでパーミッションは意識したことがなかったのですが、そもそも users グループに書き込み権限は必要ないのでこうするのが正しいのでしょう。

いつもは、GUI の FTP クライアントからアップロードしているので、たまたま 644 になっていたのでしょう。

今回、scp でコピーした際に 777 になったので、自分で 664 に調整したのですが、こんなにドツボにはまるとは・・・。

環境依存系の問題は見つけにくい

やはり、Premature end of script headers がエラー出力される場合は、環境的な問題が多いですね。

以前は、php からの sendmail で、メールヘッダーの FROM に存在しないメールアドレス(後から作成予定だった)を指定した際に同じ状況となりました。