そのディレクトリのパーミッションを変更(777など)したいと思います。
ディレクトリの書き込みチェックは
$dir="test";
if(!is_writable($dir)){
chmod($dir,0777);
}
としているのですが、さくらのサーバなど777だと駄目な場合があります。(サーバエラーになる)
777が駄目で705だとOKとか、PHP側で自動的に判別する方法はあるのでしょうか?
いちいちサーバに合わせて手動でパーミッション設定するのは面倒なので
何か方法があれば教えて下さい。
PHPの話と言うよりはUNIX/Linuxの設定の問題ですね。
777でなくても705で良いのなら、最低限の権限のみを許すようにするのが適切です。最低限のパーミッションが設定できないのなら、ソフトの仕様を変えるか、サーバ運営会社に相談すべきです。
したがって、「サーバーによってパーミッションを自動的に設定する」という考え方ではなく、「最低限のパーミッションを決め、そのパーミッションがうまく動くように環境を整える」という考え方が適切ではないかと思います。
上記は情報が少ない中での一般論で本件に当てはまるかどうか分かりませんが、まずこのあたりから検討されてはいかがでしょうか?
私の解釈では「最低限=どの環境でも一応動く」と認識しているのですが、ディレクトリ内でのデータ書き換えなど、書き込み権さえあれば書き込める(と思う)ので、必ずしも777である必要はないかと思います。
サーバ毎に運営会社を調べて仕様を変えるのは効率的では無いと感じて質問した次第ですが、皆さんのコメントから「環境依存する」と言う事もわかりましたので、そう納得したいと思います。