Apache
Материал из База знаний проекта Russian Fedora
Apache - свободный HTTP-сервер.
Установка
Для установки необходимо стать root-ом, после чего в терминале ввести:
# yum install httpd
- Примечание: Символ '#' обозначает приглашение строки ввода, его вводить не нужно. Он обозначает что команда вводится от root-а. Команды которые можно вводить от обычного пользователя начинаются с символа '$'.
- Примечание: Также рекомендуется установить PHP, MySQL и phpMyAdmin.
После установки должна запуститься служба httpd, также она автоматически добавляется в автозагрузку.
Возможные действия со службой httpd
Проверить состояние:
# service httpd status
Остановить:
# service httpd stop
Запустить:
# service httpd start
Перезапустить:
# service httpd restart
Убедившись что служба работает можно проверить это в браузере: в адресную строку ввести
http://127.0.0.1
либо
http://localhost
Что приведет к тому-же результату: появится тестовая страница приветствия index.html, которая размещена по умолчанию по адресу /var/www/html/
Виртуальные хосты
- Примечание: Создание виртуальных хостов в Debian-based дистрибутивах отличается от rpm-based.
Apache позволяет располагать на одном веб-сервере несколько веб-сайтов. Под каждый выделяется отдельный виртуальный хост. Конфигурация виртуальных хостов, как и прочие настройки, находится в файле /etc/httpd/conf/httpd.conf. По умолчанию установлены некоторые директивы, в частности:
ServerAdmin root@localhost ErrorLog logs/error_log CustomLog logs/access_log combined DocumentRoot "/var/www/html"
Их можно переопределить для каждого виртуального хоста.
- Примечание: Строки начинающиеся с символа '#' являются комментариями.
В конец файла httpd.conf записываем
NameVirtualHost *:80
В документации Apache значится:
The first VirtualHost section is used for requests without a known server name.
Т.е. первый виртуальный хост будет использован для имен, не попадающих ни под одно из условий ServerName, поэтому первой желательно обьявить секцию ловушку. Для этого в конец файла httpd.conf добавляем:
<VirtualHost *:80>
ServerName default
</VirtualHost>
В файле /var/www/html/index.php рекомендуется поместить надпись типа "Недопустимое имя хоста". Конфигурации виртуальных хостов удобно хранить в отдельных файлах. Создадим файл test.local.conf по адресу /etc/httpd/conf/
- Примечание: Для локальных хостов рекомендуется использовать доменное имя первого уровня .local
Соответсвенно добавим в конец файла httpd.conf:
include /etc/httpd/conf/test.local.conf
- Примечание: Для полноценного виртуального хоста достаточно указать 2 директивы: DocumentRoot и ServerName
Допустим виртуальные хосты будут храниться в каталоге vhosts, в домашнем каталоге пользователя с именем user. Пример файла test.local.conf
<VirtualHost *:80>
DocumentRoot /home/user/vhosts/test.local/httpdocs
ServerName test.local
ServerAlias www.test.local
ServerAdmin user@mail.ru
ErrorLog /home/user/vhosts/test.local/log/apache_error.log
CustomLog /home/user/vhosts/test.local/log/apache_access.log common
<Directory /home/user/vhosts/test.local/httpdocs>
Options FollowSymLinks
Options +Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
php_admin_value upload_tmp_dir /home/user/vhosts/test.local/tmp
php_admin_value error_log /home/user/vhosts/test.local/log/php.log
php_admin_value session.save_path /home/user/vhosts/test.local/sess
</VirtualHost>
Файлы сайта, в частности index.php (или index.html), будут храниться по адресу DocumentRoot. Соответственно в каталоге /home/user/vhosts/test.local должны существовать и быть доступны для записи каталоги tmp, log, sess и httpdocs.
- Примечание: Чтобы сделать каталоги доступными для записи можно выполнить
# chmod 777 -R ~/vhosts/
Далее в файл /etc/hosts необходимо добавляем строку (для локального хоста в протоколе IPv4):
127.0.0.1 test.local www.test.local
Далее необходимо перезагрузить Apache
# service httpd restart
Теперь созданный хост доступен в браузере по адресу http://test.local/ или http://ww.test.local/
- Примечание: Если при обращении к сайту выдается ошибка "403 Forbidden. You don't have permission to access / on this server." необходимо рекурсивно выставить права 755 на домашнюю папку: # chmod 755 -R ~
Официальный сайт
Русскоязычный сайт, посвященный Apache
Статья в Wikipedia
Русскоязычная документация
Настройка Apache + MySQL + PHP Linux Ubuntu 9.10 ... + phpMyAdmin
Apache Virtual Hosts
