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

Где лучше всего хранить файлы веб-сайтов разработчиков с общим доступом в иерархии Linux?

Обслуживание файлов html и php

Я только начал размещать файлы для веб-сайта на своем сервере, и я не уверен, где можно разместить их, чтобы обеспечить доступ для нескольких пользователей.
Когда я начал размещать сайт, я поместил файлы сайта в: /var/www/name.of.virtualhost.site/www/.

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

Сейчас это явно не так, потому что все, что находится ниже окончательной общедоступной / www / папки, также доступно в домене или ip по умолчанию, поскольку / var / www / contents уже обслуживается по умолчанию apache. Например, /var/www/name.of.virtualhost.site/docs/site_policies.txt доступен по URL-адресу, например defaultsite.com/name.of.virtualhost.site/docs/site_policies.txt.

Так где лучше хранить файлы веб-сайта в Linux?

Когда это сайт, который разрабатываю только я, я могу просто вставить их /home/my_username/sites/name.of.virtualhost.site/, но это не работает, когда я хочу, чтобы другие разработчики проверяли репозиторий, а иногда также редактировали файлы сайта. И я использую стек LAMP, не то чтобы я ожидал, что это будет иметь значение.

Новая горячность /srv.

Я действительно не понимаю, о чем вы спрашиваете.

Файлы, обслуживаемые сервером, должны находиться в /srv согласно FHS. Но зачем нескольким пользователям иметь к ним доступ?

Я предлагаю вам начать использовать контроль версий и предоставить к нему доступ разработчикам.

Затем автоматизируйте развертывание с помощью сценария, функции или capistrano.

Дайте тем, кому нужно право запускать развертывание. Возможно, используя непрерывную интеграцию, чтобы это стало возможным только после прохождения всех тестов.

/ srv начал использоваться для таких вещей, как веб-серверы. Однако, поскольку вы используете apache, вы можете заблокировать доступ к /var/www/www.example.com на виртуальном сервере по умолчанию.

С помощью Apache вы можете ограничить доступ к каталогу по каталогу либо по ip, либо по паролю. Вы также можете потребовать и соответствующий IP-адрес, и пароль, если необходимо. Если вы не изменяете файлы из процесса на веб-сервере, каталоги и файлы не должны принадлежать или быть доступными для записи идентификатору пользователя сервера Apache.

Не существует универсального ответа на вашу проблему. / tmp будет доступен для всех пользователей, но это плохое место для размещения таких файлов.

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

Если вы имеете в виду окно разработчика (о котором вы не говорите), создайте каталог в каком-нибудь месте, например / usr / local / src, и сделайте его доступным для записи для группы, к которой принадлежат все разработчики. Затем создайте сценарий развертывания, который помещает файлы, которые должны быть общедоступными, в корневом веб-каталоге.

/home/<user>/<repo> касса каждого пользователя

/srv/git/<repo> для вашего основного репо (укажите на это redmine / trac)

/usr/local/bin/deploy.sh очень простой скрипт для «развертывания» из центрального репозитория git в реальную среду веб-сервера. Постарайтесь сделать это менее пяти строк bash или заглянуть в Capistrano.

/srv/www/<vhost>/ для вашего сайта