1

ラップトップで XAMPP を実行する仮想 Arch Linux テスト サーバーを使用していますが、パーミッションを 777 に設定しても、php で新しいファイルを作成できません。コードは次のとおりです。

$CompleteFilepath = $AFilepath . '/filepath/filename.php';
$FileHandle = fopen($CompleteFilepath, 'c')
    or
die ("cannot be opened for writing"); // Debug

明らかにもっと多くのコードが後にありますが、それは常にここで死ぬので関係ありません。所有者とグループの設定を変更しても機能しませんでしたので、最終的にすべて (メインのルート フォルダーを除く) を再帰的に 777 に設定することにしましたが、それでも機能しません。しかし、フォルダーはルートに直接作成されているわけではないので、問題にはなりませんよね?

編集:何が間違っていたのかはまだよくわかりませんが、今日、所有者をサーバーに設定したところ、うまくいきました。私はそれを試したと思いましたが、そうではないかもしれません。最終的に実稼働サーバーをより安全に構成する必要がある場合でも、少なくとも開発を続けることができます。

4

4 に答える 4

3

CentOS 7 のクリーン インストールで同様の問題が発生しました。デフォルトで SELinux がインストールされていることが判明しました。これにより、ディレクトリのアクセス許可が正しい場合でも、すべての PHP 書き込みが妨げられていました。

SELinux がインストールされているかどうかをテストします。sestatus

SELinux を許可モードにします。setenforce 0

于 2015-11-20T12:58:32.643 に答える
0

どのphpバージョンが実行されているか、私の知る限り、オプション「c」はphp 5.2.6以降でのみ使用できます。

または短い: します

$FileHandle = fopen($CompleteFilepath, 'w');

仕事?

于 2013-02-13T01:59:21.090 に答える
0

さて、所有者をサーバーに設定したところ、動作するようになりました。私はすでにそれを試したと思っていましたが、明らかにそうではありませんでした。何が間違っていたのかはまだ正確にはわかりませんが、少なくとも今は機能しているので、開発を続けることができます。

于 2013-03-11T04:50:13.367 に答える