Apache HTTP-сервер — назван именем племён североамериканских индейцев Апачи, также является сокращением «a patchy server» — свободный веб-сервер.
Пример команды установки в Ubuntu:
sudo apt-get install apache2
Пример установки в CentOS:
sudo yum install httpd
Проверяем открыв в браузере адрес http://hostname
Обычно должна появится стандартная надпись «It works!«.
Директория хранения вэб файлов — /var/www/
Директория конфигурационных файлов — /etc/apache2/
Для каждого сайта создается отдельный виртуальный хост. Стандартный файл виртуального хоста находится по адресу /etc/apache2/sites-available/000-default.conf
Допустим у нас есть домен ixnfo.com. Создаем новый файл в директории /etc/apache2/sites-available/ixnfo.com.conf и прописываем в него настройки:
<VirtualHost *:80>
ServerAdmin test@ixnfo.com
ServerName ixnfo.com
ServerAlias www.ixnfo.com
DocumentRoot /var/www/ixnfo.com/
<Directory /var/www/ixnfo.com>
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
#можно ограничить доступ по IP к некоторым директориям, например админке таким способом:
<Directory /var/www/ixnfo.com/admin>
Order allow,deny
allow from 127.0.0.1 192.168.0.47 172.16.30.5
</Directory>
ErrorLog /var/log/ixnfo.com.error.log
CustomLog /var/log/ixnfo.com.access.log combined
</VirtualHost>
Опишу опции которые я указывал выше:
-Indexes — в случае отсутствия индексных файлов index.php, index.html и т.д. не будет отображаться содержимое каталогов.
FollowSymLinks — разрешает переходить по символическим ссылкам.
-MultiViews — в случае указания например несуществующей директории http://ixnfo.com/img/ включение этой директивы позволит переадресовывать на файл http://ixnfo.com/img.php или http://ixnfo.com/img.jpg и т.д. если какой нибудь из них существует, такие манипуляции могут плохо сказаться на индексации ссылок поисковиками, поэтому эту директиву лучше отключить.
AllowOverride All — разрешает использование дополнительных файлов конфигурации .htaccess.
Далее делаем ссылку на этот файл в директорию /etc/apache2/sites-enabled/. Сделать это можно командами (вторая для удаления, окончание .conf не указывается):
sudo a2ensite ixnfo.com
sudo a2dissite ixnfo.com
Проверим корректность конфигурации и нет ли ошибок:
sudo apachectl -t
Если нужно активировать какие нибудь модули, можно это также сделать например командами (первая команда для подключения, вторая — отключения):
sudo a2enmod rewrite
sudo a2dismod rewrite
Для активации дополнительных файлов конфигурации:
sudo a2enconf TEXT
sudo a2disconf TEXT
Теперь создаем директорию для сайта и копируем в нее файлы.
sudo mkdir /var/www/ixnfo.com
В файле /etc/apache2/conf.d/security изменим некоторые параметры безопасности веб сервера:
ServerTokens Prod
ServerSignature Off
Перезапускаем Apache2 чтобы изменения вступили в силу:
sudo /etc/init.d/apache2 restart
sudo service apache2 restart
Если на сервере используется много IP-адресов, а apache2 должен работать не на всех, то можно указать в /etc/apche2/ports.conf на каких ему работать, также можно изменить порт, например:
Listen 192.0.3.1:80
Listen 192.0.3.2:80
Listen 192.0.1.10:8080
Чтобы работал на всех IP адресах в том числе localhost:
Listen 80
Пример отключения/включения автозапуска Apache2 при запуске операционной системы (Ubuntu):
systemctl is-enabled apache2
systemctl disable apache2
systemctl enable apache2
Просмотр версии apache2:
apache2 -v
Смотрите также мои статьи:
Контроль доступа Apache2
Установка Certbot в Ubuntu
Перенаправление запросов на SSL
Установка и настройка Nginx