На машине под управлением Apache работают 3 приложения rails, все используют capistrano для развертывания, и они используют пассажирские. Сценарии развертывания являются стандартными. Мой предшественник настроил пользователя deploy
в стиле учебника, все 3 проекта используют одну и ту же версию capistrano (3.8) и используют одну и ту же структуру каталогов на сервере. Все они находятся в общем каталоге в доме пользователя deploy
. Все используют пассажирские, одинаковые версии ruby и rails. Они совместно использовали несколько связанных каталогов, но в остальном все сценарии развертывания довольно просты. Мой предшественник настаивает на том, что в свое время развертывание работало. У нас все еще есть его машина, и развертывание с его машины также не работает - только один этот проект.
На cap production deploy
одного из трех проектов я всегда получаю ошибку Errno::EACCES: Permission denied @ dir_initialize - /tmp/passenger.h6D8mJy/apps.s
.
Мой единственный обходной путь:
Я захожу на рабочий сервер, делаю себя суперпользователем и меняю владельца каталога / tmp на deploy
. Затем я запускаю сценарий развертывания, и он успешно выполняется. (Затем, конечно, я меняю владельца каталога обратно на root.)
Так что кажется , как будто каталог /tmp/passenger.something неправильно установил своего владельца. Почему-то я не думаю, что это может быть проблемой, так как два других сценария используют один и тот же каталог и не имеют этой проблемы. Или они? Кто создает этот каталог и почему, и где настраивается право собственности на этот каталог?
Я подумал, что лучше всего, если я просто включу журнал, но мне пришлось все это вырезать ... stackOverflow отклонил мой пост, потому что "это похоже на спам").
INFO [e1c2bb25] Running ~/.rvm/bin/rvm ruby-2.3.1 do bundle exec rake assets:precompile as deploy@99.999.99.999
DEBUG [e1c2bb25] Command: cd /home/deploy/projects/external-services/releases/20190423082459 && ( export RAILS_ENV="production" ; ~/.rvm/bin/rvm ruby-2.3.1 do bundle exec rake assets:precompile )
DEBUG [56ee67e8] rake aborted!
Errno::EACCES: Permission denied @ dir_initialize - /tmp/passenger.h6D8mJy/apps.s