Я очень расстраиваюсь, когда развертываю веб-приложение Laravel в Amazon Web Services Elastic Beanstalk. Иногда это нормально, но примерно в 50% случаев я получаю следующее падение:
Поток или файл "/ var / app / current / storage / logs / laravel-2019-10-18.log "не удалось открыть: не удалось открыть поток: отказано в разрешении
(где дата - текущая дата.)
Конечно, когда я SSH на сервер яможно увидеть, что разрешения для этого конкретного файла журнала установлены на root:root
.
-rw-r--r-- 1 root root 3400 Oct 18 13:39 laravel-2019-10-18.log
-rw-rw-r-- 1 webapp webapp 0 Oct 18 13:39 laravel.log
Если я изменю владельца на webapp:webapp
, приложение снова будет работать нормально. Аналогичным образом, если я удалю файл журнала, сайт снова будет работать нормально ... до следующего развертывания.
Мой вопрос заключается в том, как я могу предотвратить это. Отключить все журналы? Изменить разрешения во время развертывания? Только потому, что для debug установлено значение "true"?
Вот мой deploy.config
. Что-то не так или отсутствует?
container_commands:
01-migrations:
command: "php artisan migrate --force"
02-import:
command: "php artisan import:initial-data"
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_make_storage_writable.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
echo "Making /storage writeable..."
chmod -R 755 /var/app/current/storage
if [ ! -f /var/app/current/storage/logs/laravel.log ]; then
echo "Creating /storage/logs/laravel.log..."
touch /var/app/current/storage/logs/laravel.log
sudo chown -R webapp:webapp /var/app/current/storage/logs
sudo chmod -R ug+w /var/app/current/storage/logs
fi
#https://serverfault.com/a/669547/24863
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_workers.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
echo "Spawn worker..."
nohup php /var/app/current/artisan queue:work >/dev/null 2>&1 &
"/opt/elasticbeanstalk/tasks/publishlogs.d/laravel-logs.conf":
mode: "000755"
owner: root
group: root
content: |
/var/app/current/storage/logs/*.log
#https://stackoverflow.com/a/38751749/199700
"/etc/httpd/conf.d/https_redirect.conf":
mode: "000644"
owner: root
group: root
content: |
RewriteEngine on
<If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</If>
#https://stackoverflow.com/a/38600025/199700
"/etc/php.d/project.ini" :
mode: "000644"
owner: root
group: root
content: |
upload_max_filesize=10M
post_max_size=32M