Я только начал размещать файлы для веб-сайта на своем сервере, и я не уверен, где можно разместить их, чтобы обеспечить доступ для нескольких пользователей.
Когда я начал размещать сайт, я поместил файлы сайта в: /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>/
для вашего сайта