Основная информация
Apache HTTP-сервер — свободный веб-сервер. позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.
Веб-сервер — программный компонент, принимающий запросы от клиентов, обычно веб-браузеров, и выдающий им ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
Установка: sudo apt-get install apache2
Механизм виртуальных хостов
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.
Примитивный пример.
- Создать файл с конфигурацией Apache для хоста проектаsudo nano /etc/apache2/sites-available/project.confстроки:
<VirtualHost *:80>
ServerName project.dev
ServerAdmin webmaster@localhost
DocumentRoot /home/username/project
<Directory /home/username/project >
AllowOverride all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- Создать файл с конфигурацией Apache для хоста другого проектаsudo nano /etc/apache2/sites-available/project2.confстроки:
<VirtualHost *:80>
ServerName project2.dev
ServerAdmin webmaster@localhost
DocumentRoot /home/username/projectother
<Directory /home/username/projectother >
AllowOverride all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- Добавить в список хостов
sudo nano /etc/hosts
строки:
127.0.0.1 project.dev
127.0.0.1 project2.dev
- Активация (enable) созданных конфигураций Apache для наших проектовsudo a2ensite project
sudo a2ensite project2
Примечание: деактивация делается командой a2dissite
- Перезапуск Apachesudo /etc/init.d/apache2 restart
- Всё, теперь мы можем заходить на project.dev/ и project2.dev/ с локалки.
Примечание: если хотим дать возможность заходить к нам на машину извне — то в файл .conf нужно добавить строку Listen 80, например.