Для каждого сайта уместно создать следующую структуру каталогов:
/srv/www/sitename
conf
cron
log
www
js
css
/srv/www/sitename/conf/sitename.conf:
<VirtualHost *:80>
ServerAdmin admin@sitename
DocumentRoot "/srv/www/sitename/www"
ServerName sitename
ServerAlias www.sitename
ErrorLog "/srv/www/sitename/log/error.log"
CustomLog "/srv/www/sitename/log/access.log" common
LogLevel warn
<Directory "/srv/www/sitename/www">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
</VirtualHost>
/srv/www/sitename
conf
cron
log
www
js
css
/srv/www/sitename/conf/sitename.conf:
<VirtualHost *:80>
ServerAdmin admin@sitename
DocumentRoot "/srv/www/sitename/www"
ServerName sitename
ServerAlias www.sitename
ErrorLog "/srv/www/sitename/log/error.log"
CustomLog "/srv/www/sitename/log/access.log" common
LogLevel warn
<Directory "/srv/www/sitename/www">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
</VirtualHost>
Добавляем права пользователя:
useradd sitename -d sitename
cd /srv/www/sitename
chown -R sitename:sitename .
setfacl -Rm d:u:www-data:rwX,u:www-data:rwX .
cd /srv/www/sitename
chown -R sitename:sitename .
setfacl -Rm d:u:www-data:rwX,u:www-data:rwX .
Запускаем сайт:
ln /srv/www/sitename/conf/stiename.conf /etc/apache2/sites-available/sitename.conf
a2ensite sitename