Напоминаю, что наш сайт будет привязан к домену demo.dev.umi-cms.spb.su.
1 Apache
Создаем конфигурационный файл нового хоста:
nano /etc/apache2/sites-available/demo.conf
Пишем в него:
<VirtualHost 127.0.0.1:8080>
ServerAdmin ваш почтовый адрес
ServerName demo.dev.umi-cms.spb.su
ServerAlias www.demo.dev.umi-cms.spb.su
AssignUserId demo demo
php_admin_value open_basedir "/home/demo/:."
php_admin_value upload_tmp_dir "/home/demo/tmp"
php_admin_value session.save_path "/home/demo/tmp"
DocumentRoot /home/demo/www
<Directory />
Options +FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/demo/www>
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
ErrorLog /home/demo/logs/apache.error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/demo/logs/apache.access.log combined
</VirtualHost>
Здесь внимание следует обратить на несколько инструкций:
AssignUserId - указываем имя пользователя и имя группы от которой будет работать Apache.
open_basedir для домашней директории пользователя (в теории можно добавить несколько директорий при необходимости, разделяя их двоеточием; на практике я с трудом представляю себе зачем это может быть нужно).
upload_tmp_dir, session.save_path - задаем пути к папке хранения сессий и папке загрузок.
Включаем конфигурацию
a2ensite demo.conf
Перезапускаем Apache
systemctl reload apache2
2 Nginx
Создаем файл конфигурации:
nano /etc/nginx/sites-available/demo.conf
Пишем в него
server {
listen 000.000.000.000; ## listen for ipv4; this line is excel and implied
root /home/demo/www;
server_name demo.dev.umi-cms.spb.su;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
root /home/excel/www;
index index.php;
}
location ~ /\.ht {
deny all;
}
}
В этой конфигурации все стандартно.
Создаем символическую ссылку
ln -s /etc/nginx/sites-available/demo.conf /etc/nginx/sites-enabled/demo.conf
Заставляем nginx перечитать конфигурацию
/etc/init.d/nginx reload