#Установка nginx
apt-get install nginx
#Создание конфигурационного файла виртуального хоста
touch /etc/nginx/sites-available/example_nginx.conf
Затем файл /etc/nginx/sites-available/example_nginx.conf необходимо привести к следующему виду:
server {
listen 80;
root /var/www/;
index index.php;
server_name example.com;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\. {
#Запрещаем обращение к скрытым файлам
deny all;
}
}
#Включаем созданный виртуальный хост
cd /etc/nginx/sites-enabled/
ln -s ../sites-available/example_nginx.conf example_nginx.conf
service nginx reload
#Установка apache и mod_php
apt-get install apache2 libapache2-mod-php7.0
Затем в файле /etc/apache2/ports.conf необходимо изменить порт, который будет слушать apache:
Listen 127.0.0.1:8080
#Создание конфигурационного файла виртуального хоста
touch /etc/apache2/sites-available/example-apache.conf
Файл /etc/apache2/sites-available/example-apache.conf необходимо привести к следующему виду:
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www/
ServerName example.com
ErrorLog /var/log/apache2/example_error.log
CustomLog /var/log/apache2/example_access.log common
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
#Следующие 2 строки не будут работать в apache >= 2.4, необходимо использовать директиву Require all granted
#Order allow,deny
#Allow from all
Require all granted
</Directory>
</VirtualHost>
#Включаем созданный виртуальный хост и запускаем apache
a2ensite example-apache.conf && service apache2 start
#Создаём тестовую страницу
mkdir -p /var/www/ && echo '<?php phpinfo();' > /var/www/index.php
При открытии URL http://example.com/ мы должны увидеть вывод функции phpinfo().
Apache имеет следующую структуру конфигурационных файлов:
/etc/apache2/
|-- apache2.conf - Главный файл, который подключает остальные (директива Include)
| `-- ports.conf - Файл настройки портов
|-- mods-enabled - Содержит ссылки на модули, которые должны быть включены
| |-- *.load
| `-- *.conf
|-- mods-available - Содержит конфигурационные файлы модулей
| |-- *.load
| `-- *.conf
|-- conf-available - Содержит различные параметры конфигурации
| `-- *.conf
|-- conf-enabled - Содержит ссылки на файлы конфигурации, которые должны быть включены
| `-- *.conf
|-- sites-available - Содержит файлы виртуальных хостов
| `-- *.conf
`-- sites-enabled - Содержит ссылки на виртуальные хосты, которые должны быть включены
`-- *.conf
service apache2 start | stop | restart | reload – Запуск, остановка, перезапуск, перечитывание конфигурации
apachectl -t – проверка синтаксиса конфигурационного файла
apachectl -M – список включённых модулей
a2enmod, a2dismod module_name – включение или отключение модуля
a2enconf, a2disconf conf_name – включение или отключение конфигурационного файла
a2ensite, a2dissite vhost_name – включение или отключение виртуального хоста.