0

/var/www/vhosts/mydomain.com/httpdocs/と/var/www/vhosts/mydomain.com/httpdocs/duh/の2つのフォルダーがあります。

両方のフォルダには、まったく同じパーマ、グループ、所有者、すべてがあります。

$ pathを最初のパスに設定すると、問題はありません。ファイル名に「html」が含まれるファイルのリストをエコーし​​ます。

$ pathを2番目に設定すると、opendir()で停止します。ただし、ブラウザだけでなく、コマンドラインからも正常に機能します。

何か案は?

これが私の非常に単純なコードです:

<?php
        $path = "/var/www/vhosts/mydomain.com/httpdocs/duh/";

        $img_folder = opendir($path) or die("Unable to open $path");

         while (false !== ($file = readdir($img_folder))){
             if (eregi("html", $file)){
                echo $file;
             }
         }
    ?>
4

3 に答える 3

0

これで答えがわかりました。最も醜いPHP機能の1つであるSAFE_MODEです。
いくつかの回避策がありますが、それらの最良のものは、このホストからできるだけ速く実行されます!
またはそれを無効にする方法を見つけます。

于 2010-08-30T17:21:12.517 に答える
0

私はそれを考え出した。私が作業しているサーバーには、各仮想ホストのローカル構成ファイルがあります。ローカルconfに対してsafe_modeがonに設定されました。

私を道に導いてくれた人々に感謝します。

于 2010-08-30T17:22:17.320 に答える
0

duhフォルダの権限は何ですか?Webサーバーはシェルアカウントとは異なるユーザーIDで実行されることに注意してください。すべてのユーザーが読み取れるように、dirのモードが0755であることを確認してください。

おっと、エラーメッセージ付きのコメントだけです。だから、はい、権限エラー。duhWebサーバーがrootとして実行されている間、はユーザーID10012によって所有されます。セーフモードではこれは許可されません。ルートが所有するディレクトリを「chown」します。

もちろん、なぜWebサーバーがrootとして実行されているのですか?それはひどく安全ではありません。

于 2010-08-30T17:05:31.253 に答える