1

私はSymfony2を使用してアプリケーションを開発しています。私が抱えている問題は、エンティティ内の関数を介してフォルダを作成するときに、作成されたフォルダにsudo権限がない場合、sudo権限を使用してフォルダを直接作成する方法を知りたいということです。これは私のコードです:

 protected function getUploadDirMark()
    {
        // get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view.
        return 'uploads/documents/'.$this->getIzenburua();
    }  

フォルダにsudo権限がありません。'uploads/documents/'.$this->getIzenburua();どうすれば、sudo権限でフォルダを作成できますか。ありがとう。

4

3 に答える 3

1

通常の PHP 機能が動作しない場合は、sudo パーミッションでシェル コマンドをchmod実行できます。chmod

Command クラスでは次のようになります。

$uploadDirmark = $this->getUploadDirMark();
$dialog = $this->getHelperSet()->get('dialog');
$passwd = $dialog->ask($output, 'Please enter sudo password');
exec("echo $passwd | sudo -S chmod -R a+w $uploadDirmark");

これにより、ディレクトリとそのすべてのコンテンツが、すべてのユーザーに対して書き込み可能 (および削除可能) になります。必要に応じてコマンドを変更します (詳細についてman chmodは、コマンド ラインを参照してください)。このように開くのは潜在的に危険です。ファイルを作成するユーザーと同じグループに Web サーバーを配置し、「a+w」の代わりに「g+w」を使用してみてください。

于 2012-08-03T10:01:37.433 に答える
0

これはうまくいきませんか? chmod()

于 2012-05-07T15:15:36.953 に答える
0

そのためにsudo権限が必要なのはなぜですか?アプリケーションはサーバーによって特定のユーザーの下で実行されるため、作成したファイルやフォルダーの提供に問題はありません。

于 2012-05-07T16:00:24.813 に答える