2016-09-29 17 views
1

symfonyプロジェクトのコンポーザを更新しようとしたり、キャッシュをクリアしようとすると、定期的にファイルのパーミッションエラーが発生します。 しかし、私のファイルはsymfonyののドキュメントに従って正しく設定されている:例えばhttp://symfony.com/doc/current/setup/file_permissions.htmlsymfonyプロジェクトでファイルのアクセス許可を修正できません

linuxの下I'am、Manjaro budgieに版(最新の安定版) サーバーのapache最後のバージョン

composer update 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
Nothing to install or update 
Generating autoload files 
> Incenteev\ParameterHandler\ScriptHandler::buildParameters 
Updating the "app/config/parameters.yml" file 
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap 
> Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache 

// Clearing the cache for the dev environment with debug true               

    [Symfony\Component\Filesystem\Exception\IOException]                                     
    Failed to remove file "/srv/http/PetitMur/var/cache/de~/annotations/1a/5b504d5c506c6174666f726d42756e646c655c456e746974795c41727469636c652474616773405b416e6e6f745d5d5b315d.doctrinecache.data": . 

このファイルには、この権利を持っています

pierre $ la /srv/http/PetitMur/var/cache/de~/annotations...data 
-rw-rw-r--+ 1 http http 234 29.09.2016 18:13 /srv/http/PetitMur/var/cache/de~/annotations...data 

私が知っている、この問題は再発性です。しかし、私はすでにsymfonyの文書に従って許可ファイルを設定しています。現在、私はそれを正常に動作させるためにスーパーユーザーでコマンドを実行する必要があり、これは正常ではありません。

アイデアはありますか?

編集:

php bin/symfony_requirements 

Symfony Requirements Checker 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

> PHP is using the following php.ini file: 
    /etc/php/php.ini 

> Checking Symfony requirements: 
    .............................WW...... 


[OK]           
Your system is ready to run Symfony projects 


Optional recommendations to improve your setup 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

* intl extension should be available 
    > Install and enable the intl extension (used for validators). 

* a PHP accelerator should be installed 
    > Install and/or enable a PHP accelerator (highly recommended). 


Note The command console could use a different php.ini file 
~~~~ than the one used with your web server. To be on the 
     safe side, please check the requirements from your web 
     server using the web/config.php script. 
+0

rm -rf var/cache/*を使用してクリアしてみましたか? –

+0

はい、しばらくしてから問題が取り戻されました。 –

+0

どのWebサーバーですか?それはApacheですか? –

答えて

0

私はこの "sudo chown -R http:pierre Myproject"を試していますが、これはキャッシュをクリアするためには動作しますが、コンポーザーでは動作しません。

0

私は許可を疑い、おそらくユーザーグループの設定が正しくない可能性があります。

Apache httpd.confファイルに移動して、ユーザー/グループの設定を確認します。

User apache 
Group apache 

上記のCentOS 6である私のシステムからだった、とのhttpd.confは/etc/httpd/conf/フォルダの下にある:あなたは、このような行が表示されます。あなたは別の場所にいる可能性があり、その代わりにユーザーhttpd(確認してください)かもしれません。その後

は、あなたのSymfony3プロジェクトのために適切なユーザー/グループを設定します。

sudo chown -R apache:apache /srv/http/PetitMur 

を上記のコマンドは、ユーザを設定します。apacheにグループの両方、あなたが今、あなたの古いキャッシュを削除しhttpd

を使用する必要がありますその後

sudo rm -rf var/cache/* 
sudo rm -rf var/logs/* 

:彼らは間違っているユーザーで以前に作成されている可能性があるため、&ログファイルもう一度は、setfaclを実行して、あなたは&ペーストをカットしてください(資本Xがある)と、正しいユーザー(Apacheまたはhttpdのいずれか)を使用します。

$ sudo setfacl -R -m u:apache:rwX -m u:`whoami`:rwX var 
$ sudo setfacl -dR -m u:apache:rwX -m u:`whoami`:rwX var 

を次に、あなたのシステムをテストし、問題が修正しまった、それを参照してください。

+0

私の場合、ユーザーとグループはhhtpd.confの "http"です。そして私は、私はすでに前にこれを試している...しかし、あなたのために、私は(必要-devを含む) 更新依存パッケージ情報を=>ピエール$作曲更新 ロード作曲リポジトリ をインストールまたは更新する 何を再度試していないとしているあなたに伝えます[ErrorException] file_put_contents(/srv/http/PetitMur/vendor/composer/installed.json):faile dストリームを開く:許可が拒否されました –

+0

=> pierre $ la/srv/http/PetitMur/vendor/composer/installed .json -rw-r - r-- 1 http http 81281 29.09.2016 19:50/srv/http/PetitMur/vendor/composer –

+0

試しましたか? 'sudo composer update' ???あなたは作曲家の場所を指し示す必要があります。それを見つけるために 'whereis composer'を使います。 –

関連する問題