Виртуальные хосты на apache2 под Ubuntu 16.04lts

Редакция автор: stain

Ubuntu 16.04 Lts +Apache2 +Несколько доменов на одном IP + сайты в каталоге пользователя

Добавить в /etc/apache2/apache2.conf после других аналогичных записей:
sudo nano /etc/apache2/apache2.conf


  AllowOverride All
  Require all granted
 

Добавить в самом низу файла /etc/apache2/apache2.conf

ServerName localhost

Меняем очередность файлов индекса, переставляем index.php в начало списка в файле /etc/apache2/mods-available/dir.conf.
sudo nano /etc/apache2/mods-available/dir.conf


  DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm 
 

===Цикл===

//Добавляем виртуальные хосты
sudo nano /etc/hosts

127.0.0.1 localhost вашсайт

//Копируем базовый конфиг /etc/apache2/sites-available/000-default.conf
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/вашсайт.conf

//Правим /etc/apache2/sites-available/вашсайт.conf
sudo nano /etc/apache2/sites-available/вашсайт.conf

ServerName ВашСайт 
DocumentRoot /home/YourUserName/public_html/вашсайт 

//Включаем сайт в apache2
sudo a2ensite вашсайт

//Перезапускаем apache2
sudo service apache2 reload
===/Цикл===

Права на каталог ~/public_html
sudo adduser USERNAME www-data
sudo chown USERNAME:www-data -R ~/public_html
chmod -R 775 ~/public_html
Мы добавили себя в группу www-data (поскольку от пользователя www-data группы www-data работает Apache) Сделали группу www-data группой владельца корневой папки наших сайтов. Присвоили для этой папки права чтения и записи для владельца и его группы. Это нужно для того, чтобы пользователи YourUserName (от имени которого мы заливаем файлы на сервер) и пользователя www-data (от имени которого работает веб-сервер) имели одинаковые права.

При добавлении каждого сайта над его папкой нужно будет производить эту процедуру (кроме первой команды; только не ко всей public_html, а лишь к папке нового сайта). Также нужно это делать для новых файлов, требующих изменения со стороны сервера.

===частьЦикла===

sudo chown USERNAME:www-data -R ~/public_html/вашсайт
chmod -R 775 ~/public_html/вашсайт
===/частьЦикла===

!!!Чтобы получить доступ с другого компьютера, на удаленном компьютере прописываем в файл C:\Windows\System32\drivers\etc\hosts IP-adress-servera вашсайт

P.S: При привязке git, а вернее во время передачи данных, происходит запрос в каталог ~/.config , по умолчанию у него права root (хотя может быть я что то лишнее запустил в режиме sudo) решение:
Идем на сервер через ssh в папку в домашний директорий пользователя ~/
Смотрим права:
sudo ls -la
Меняем владельца если нужно:
sudo chown USERNAME:www-data -R ~/.config

Скрипт цикла создания виртуального хоста

Скрипт создает виртуальный хост/каталог/запись в файле hosts/конфигурационный файл, изменяет в конфигурационном файле параметр ServerName и DocumentRoot перезапускает apache.
Пример запуска sudo bash createhost.sh sitename username

#!/bin/bash
#sudo bash snc.sh site user
if [ -z $1 ] ; then
echo «Do not set your domain name.»
exit 1 ; fi
if [ -z $2 ] ; then
username='im'
echo «Do not set your user name.» ; fi

mkdir -p /home/$username/public_html/$1/public_html
echo "127.0.0.1 "$1 | sudo tee -a /etc/hosts

cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/$1.tmp.conf

sed -e "s!\#ServerName www.example.com!ServerName ${1}!; s!DocumentRoot /var/www/html!DocumentRoot /home/${username}/public_html/${1}/public_html!" /etc/apache2/sites-available/$1.tmp.conf > /etc/apache2/sites-available/$1.conf
rm /etc/apache2/sites-available/$1.tmp.conf

a2ensite $1
chown $username:www-data -R /home/$username/public_html/$1
chmod -R 775 /home/$username/public_html/$1

Источник из 2014

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.