Назад | Перейти на главную страницу

Проблемы с развертыванием и владением

Как крайний новичок, я испытываю трудности с управлением правами собственности и разрешениями на моем первом ящике. Что я не могу понять, так это как развернуть с помощью одного пользователя, мы назовем его deploy и управляю моим приложением php с www-data пользователь.

В настоящее время я знаю, что мой сервер работает как www-data через эту функцию <?php echo(exec("whoami")); ?> но я должен chown между развертыванием и www-данными каждый раз, когда я развертываю. Должен быть более простой способ развертывания с одним пользователем и при этом работать как www-data.

РЕДАКТИРОВАТЬ: Вот результат ls-l для рассматриваемой папки. Вы увидите пользователя развернуть и группа www-pub, группа возникла из попытки добавить двух разных пользователей в новую группу и выбрать одного из них в надежде, что у них обоих будут разрешения (предупреждение newb)

drwxrwxr-x 4 deploy www-pub 4096 Mar  7 01:41 example.com

Я использую capistrano для развертывания под пользователем развернуть затем, как только это будет сделано, я перейду к www-данным, иначе я не могу использовать php для управления файлами. Я также не уверен, как даже изменить запущенный пользовательский apache.

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

  • httpd процесс: www-data пользователь
  • Скрипты PHP для обслуживания: deploy пользователь
  • Данные, написанные скриптом PHP: www-data пользователь

Моя проблема здесь в том, что я не понимаю дилемму. Я считаю, что так и должно быть.

Если веб-сервер может писать в каталог, где хранятся сценарии PHP, вы просто просите кого-нибудь переписать ваше приложение. Веб-серверу традиционно предоставляется разрешение только на чтение и выполнение скриптов.

Я думаю, что последняя пуля причиняет вам боль. Делать НЕ попробуйте записывать файлы данных в файлы программ / приложений и между ними. Это плохая практика программирования. Только один раз создайте каталог, доступный для записи www-data пользователь. Это тоже чревато опасностями, поскольку различные сеансы могут перезаписывать друг друга, но вы можете создать подкаталоги с помощью cookie / тега и поместить туда свои файлы. Не забывайте периодически очищать, если вы выбираете метод подкаталога.

Если я упустил суть, дайте мне знать. Кажется, это долгое время находилось в очереди «Без ответов». Если вы его исправили, «ответьте на свой вопрос» и закройте его. Если тот или иной ответ решает проблему, отметьте ее как решенную.

Изменение разрешений после развертывания - это нормально. Пишу скрипты для развёртывания кода. Какой у вас метод развертывания сейчас?