11

権限を正しく取得するのに問題があります。XAMPPを介してMacのローカル環境で実行しようとしています。

私は以下を試しました:

  • マスクを解除する
  • 権限の設定
  • 経由でキャッシュをクリアするphp app/console cache:clear
4

4 に答える 4

24
rm -rf app/cache/*
rm -rf app/logs/*

sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

www-dataユーザーを、Webサーバーを実行しているユーザーに置き換えてください。次のコマンドを実行して、Webサーバーが実行されているユーザーを確認します。

ps aux | grep http

または

ps aux | grep apache

ACLを有効にする必要がある場合もあります。詳細については、インストールドキュメントを参照してください。また、ACLについては、このページを参照してください。

コマンドラインからSymfonyを実行すると、キャッシュされたファイル/ディレクトリは、ログインしているユーザー(この場合は「jess」)によって作成されます。ブラウザでWebページを実行する場合、Webサーバーユーザー(この場合はユーザー「nobody」)によって作成されます。ユーザーは、Webサーバーによって作成されたファイルとディレクトリを変更するためのアクセス権を持っていません。その逆も同様です。

ログインと同じユーザーとして実行するようにWebサーバーを変更することは、安全性の高いオプションではないため、理想的なソリューションではありません。サイトを別のサーバーに配置しても、同じ問題が発生します。

解決策は、 http: //symfony.com/doc/current/book/installation.htmlにあるインストールドキュメントの「権限の設定」セクションに従っていることを確認することです。

symfony clear cacheコマンドはdirs/ファイルを作成しますが、これはまだWebサーバーで書き込みできないため、php app / console cache:clearだけでなく、フォルダーの内容をrm-rfするようにしてください。

于 2012-08-30T06:42:00.383 に答える
6

一般に、php5-cliと同じユーザーからWebサーバーを実行する必要があります。また、プロジェクトが配置されているフォルダーには、このユーザーに対するすべてのアクセス許可が必要です。

あなたはどちらかchange user for project directoryまたは単にchmod -R 777 app/cacheそしてchmod -R 777 app/logs

于 2012-08-30T06:12:46.847 に答える
1

「構成とセットアップ」セクションの「アクセス許可のセットアップ」の補足説明を参照してください。でACLアプローチを使用します。setfacl

于 2012-08-30T06:35:39.853 に答える
-1

このエラーが発生し、これらすべてのヒントを試しましたが成功しませんでした...

私は最終的にseLinuxを非アクティブ化することで解決策を見つけます。これを行うには、ファイル「/ etc / selinux / config」を編集し、SELINUX値を次のように置き換えます。

SELINUX=disabled
于 2015-09-08T14:42:42.540 に答える