Apache

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

[требует проверки!]

Apache - свободный HTTP-сервер.

Установка

Для установки необходимо стать root-ом, после чего в терминале ввести:

# yum install httpd

После установки должна запуститься служба 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/

Виртуальные хосты

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/

Соответсвенно добавим в конец файла httpd.conf:

include /etc/httpd/conf/test.local.conf

Допустим виртуальные хосты будут храниться в каталоге 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
            # New directive needed in Apache 2.4.3:
            Require all granted	    
    </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/


Официальный сайт
Русскоязычный сайт, посвященный Apache
Статья в Wikipedia
Русскоязычная документация
Настройка Apache + MySQL + PHP Linux Ubuntu 9.10 ... + phpMyAdmin
Apache Virtual Hosts