1. Установка nginx
#Установка 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
2. Установка apache и php
#Установка 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