Я попытался найти этот вопрос раньше, но, похоже, нигде там, где он подробно объясняется, в основном только части проблемы, такие как app/storage
, не были установлены, поэтому веб-сервер может напишите файл, но моя проблема кажется больше и более фундаментальной, я надеюсь, что кто-то может подробно объяснить, как это должно быть настроено, желательно без необходимости устанавливать разрешение на 777
.PHP-FPM + разрешение Laravel + Nginx + Ubuntu
Так мой стек Ubuntu 14,04, PHP 5.6 с PHP-FPM потому что я использую Nginx 1.4.6 и я использую Laravel 4,2 в рамках, вл и один больше я использую Git как мой инструмент для управления версиями. Так что это необходимо шаг за шагом, чтобы следующее:
Установка первоначального проекта, Git и Nginx:
Так, насколько я знаю, Nginx настроен использовать имя пользователя
www-data
по умолчанию право? Означает ли это, что я должен назначить своего пользователя, например.kevin
группеwww-data
? Когда я инициализирую git, создаю проект, используя композитор, настрою публичный/закрытый ключ SSH, мне нужно принадлежать к группеwww-data
или мне нужно бытьsudo
или что? На моем сервере производства я попытался использоватьsudo
для настройки всего, так как это упростило сделать все, что было выше, но это лучшая практика?Создание
app/storage
запись для веб-сервера:Я думаю, что это вторая и наиболее важным для Laravel, потому что если это не работает Laravel не будет работать, мое знание, что эта папка должна быть доступна для записи на веб-сервере (nginx), поэтому мне нужно установить это на
sudo chown -R www-data:www-data app/storage
иsudo chmod -R 664 app/storage
правильно? Но почему-то это не работает все время, потому что во время моего развития иногда он скажет, что кеш представления нельзя записать в папкуapp/storage
, поэтому в конце я должен установить его на777
или775
, если я ' m повезло.Общая папка или место моих активов
Здесь у меня есть некоторое несоответствие тоже, я поставил его в конце концов к
777
, чтобы гарантировать, что все мои файлы могут быть доступны Nginx. Иногда nginx скажет мне, что какое-то изображение в моей папке с ресурсами кажется запрещенным, и оно будет возвращать только HTTP 200, если я либо установил значение777
, либо изменил группу наwww-data:www-data
, мне нужно изменить разрешение или группу для каждого изображения что я создал из Gimp, Photoshop, или когда я скачал из Dropbox или из моего письма, когда мой графический дизайнер разрабатывает новые значки?Файл Загрузить
Так где-то около того времени, люди будут иметь возможность загружать, например, их фотографию, или когда я отправляю блог я могу загрузить фотографию, это означает, что в какой-то момент сценарий загрузки файла переместит файл из папки
/tmp
в мою папкуpublic
, возможно, потребуется только записать его в подкаталог вpublic
или, возможно, иногда ему необходимо создать папку на основе определенногоid
и переместить файл в каталог, в большинстве случаев времени я получаю сообщение об ошибке, что каталог не может быть доступен для записи или некоторая ошибка разрешения как таковая во время выполнения скрипта. Означает ли это, что процесс PHP должен быть запущен с определенным разрешением? Или это означает, что каталог должен иметь определенное разрешение? Означает ли эта проблема связь с службой Nginx или относится к процессу PHP ?У меня есть опыт, чтобы использовать пакеты, такие как
roumen/sitemap
илиjlapp/swaggervel
, они, кажется, используют один и тот же фасадFile
, но почему-то они не имеют каких-либо проблем с разрешения, я пытаюсь воспроизвести их поведение кода, но я попал в проблему выше.очереди, Artisan, другой командной строки на основе выполняется скрипт
Последняя, являются командной строки на основе исполняемого скрипта, делает это вести себя так же, как скрипт, который выполняется при взаимодействии с веб-сервера, такие как файл загрузить выше, или мне нужно подготовиться к другим несоответствиям?
Спасибо, если кто-нибудь может это объяснить. Я думаю, что если я это выясню, я создам сообщение в блоге или что-то еще, оцените его, ребята! : D
О, еще одна вещь, пожалуйста, не согласитесь с Homestead -.- –