1

nginx/php セットアップである開発コードを実行する vagrant box セットアップがあります。(vagrant に関する簡単な情報 - virtualbox ラッパー: http://www.vagrantup.com/ )。

vagrant/virtualbox セットアップでは、Linux ゲストの追加機能を使用して、ホスト コンピューター (MAC OSX) に共有フォルダーをマウントしています。

linux guest path: /var/www/local 
OSX host path: ~/src/

複数の場合、マウントされた共有フォルダーの任意のパスの場所に、任意のコマンド ( file_put_contents、 .. など) を介して php が何も書き込めないように見えることがよくありますが、 (たとえば、) の外に書き込むことはできます。fwrite/var/www/local/var/www/not-mounted/..

(/var/www/local/public/root/cache/)私はキャッシュシステムを使用しており、私のウェブサイトのルートフォルダー ( ) にある必要があるキャッシュ javascript/css ファイルの書き込みに失敗し続けているため、これを扱うのは非常に難しいと思います/var/www/local/public/root/index.php

このトピックについて多くの調査を行いました: どうやら、フォルダー マウントには適切なアクセス許可があるようです: mountLinux ゲストでコマンドを入力すると、次のようになります:

/var/www/local on /var/www/local/ type vboxsf (uid=1000,gid=1000,rw)

明らかにする:

これは常に発生します。これは私が遭遇する既知の問題であり、回避策を試みています。

からcat /etc/passwd:

vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash

誰でもこれについて私を助けることができますか?

4

1 に答える 1

2

私は問題を理解しました。

フォルダーに書き込むための正しいユーザー特権とアクセス許可を PHP に与えるのを忘れていました。基本的に、私の PHP ユーザー/ユーザー グループは www-data/www-data でしたが、vagrant にはフォルダー /local/ をマウントする独自のユーザー/グループ (vagrant/vagrant) があります。

vagrant のマウント動作を台無しにしたくなかったので、単純に php 構成を変更して、ユーザー/グループ - vagrant/vagrant で PHP を開始しました。

これで問題は解決しました。

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

于 2013-08-20T14:20:17.250 に答える