Переместите поставщика symfony за пределы корневого проекта

Я хочу ускорить свой проект symfony2 на моем бродячем ящике, поэтому я хочу переместить своих поставщиков за пределы папки проекта.

Я установил их в /home/vagrant/www/simtp/vendor, но получил ошибку разрешения при включении autoload.php.

Warning: require(/home/vagrant/www/simtp/vendor/autoload.php): failed to open stream: Permission denied in /var/www/simtp/app/autoload.php on line 11

Fatal error: require(): Failed opening required '/home/vagrant/www/simtp/vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/simtp/app/autoload.php on line 11

Я уже пробовал изменить разрешение с помощью chown, раньше это было «root», а теперь это «www-data» (как старая папка поставщика). Я уже тоже пробовал менять chmod на 777.

Но ничего не работает... :/ Ps: Папка с кешем пуста.

Что я могу сделать?

Спасибо.


person coolfarmer    schedule 19.03.2015    source источник
comment
Вы использовали установку композитора?   -  person Nawfal Serrar    schedule 20.03.2015
comment
Вы рассматривали возможность совместного использования всей папки проекта с помощью rsync? Это максимально ускорит.   -  person Gerry    schedule 20.03.2015
comment
Nawfal, Да, я использую композитор для установки вендора в свой проект Symfony. Джерри, в моем случае rsync только однонаправленный и ужасно медленный, не знаю почему. NFS работает очень быстро, но файлы не хотят обновляться, если размер файла не меняется. И у меня нет конфигурации SendFile для включения в Apache, и я не использую Sublime Text 3 с опцией атомарного сохранения. . Есть причина, по которой я хочу, чтобы мой поставщик находился вне моего проекта с папкой синхронизации по умолчанию с бродягой.   -  person coolfarmer    schedule 21.03.2015


Ответы (1)


Я не эксперт в этом, но, поскольку никто другой не ответил, я думаю, что самым простым решением было бы перемещение файлов поставщика в каталог, который не находится в домашнем каталоге другого пользователя. в данном случае: /home/vagrant/

скажем: /var/www-vendor/simtp/app/

этот каталог поставщика должен иметь chown, совместимый с apache worker (чтобы он имел доступ)

вы также можете попробовать решения, описанные здесь: https://unix.stackexchange.com/questions/91488/allow-a-user-to-read-some-other-users-home-directories

насколько я знаю, несмотря на стандартные разрешения, домашние каталоги пользователей особенно защищены, поэтому у вас есть эта проблема.

вы также не указали, какой дистрибутив Linux вы используете, поэтому вы могли бы добавить это к своему вопросу, чтобы у других было меньше работы.

person LPodolski    schedule 21.03.2015
comment
После перемещения папки поставщика (с автозагрузчиком композитора) не забудьте изменить каталог src в /vendor/composer/autoload_namespace.php. - person Thomas Decaux; 21.04.2015