0

解決しました

現在のユーザーがPHPを使用しているユーザーを特定し、新しいディレクトリの所有者をPHPスクリプトの実行元のユーザーに設定することができました。ただし、他のいくつかのコマンド(現在のユーザーが誰であるかを判別するために使用される)が機能していなかったため、これは依然として問題を引き起こしていました。これは、私のPHPディストリビューションがセーフモードになるように構成されていることが問題であることを浮き彫りにしました。

セーフモードを無効にしたところ、Ed Manetが提供するコマンドを使用すると、すべてを777のアクセス許可にするというショートカットなしで、必要に応じてファイルを追加/編集/削除できました。

助けてくれてありがとう!

元の投稿

サーバーにデータを保存するWebアプリケーションがあります。これには、PHPでディレクトリとファイルの両方を作成および削除する(および既存のファイルを変更する)ことが含まれます。私が抱えている主な問題は、そのようなアクションを実行するために必要な権限に関係しています。

既存のファイルのアクセス許可を777に設定すると、PHPスクリプトはそれらを適切に編集できます(ただし、これは安全ではないため、最適なソリューションではないことはわかっています)。スクリプトはディレクトリを正常に作成および削除することもできますが(少なくとも777のアクセス許可がある場合)、何をしても、スクリプトに新しいファイルを作成させることはできません。

いくつか検索を行ったところ、PHPの「ユーザー」を必要な特権を持つユーザーに昇格させる必要があるようです。ただし、サーバーの構成とアクセス許可に関しては、私は基本的に初心者です。必要なアクションを実行するために別のユーザーに変更するにはどうすればよいですか?この中間スクリプトを実行して、PHPfopen()chmod()関数を通常どおりに使用することは可能ですか?または、シェルコマンドを使用してまったく新しいプロセスを生成し、その外部プログラムを正しい特権で実行する必要がありますか?

要約すると、ファイルに適切な権限を割り当て、PHPユーザーに権限を割り当てることにより、PHPを使用してwe bサーバーでファイル/ディレクトリを作成、変更、および削除する新しいものが必要です。これを行う方法がわかりません。

ありがとうございました。

4

1 に答える 1

0

私がすることは、PHP がファイルを作成する必要があるフォルダーの所有権を、PHP プロセスを実行するアカウントに変更することです。そうすれば、許可をそれほど開く必要はありません。

これが Linux システムで、Web サーバーが「apache」というユーザーによって実行されている場合:

chown -R apache /path/to/the/files

次に、権限を所有者の読み取り/書き込みに変更します

chmod -R 644 /path/to/the/files
于 2012-07-06T13:32:18.583 に答える