Difference between revisions of "Apache/ru"
Totktonada (talk | contribs) |
(Created page with "Если файл не существует, создайте его самостоятельно.") |
||
(2 intermediate revisions by the same user not shown) | |||
Line 366: | Line 366: | ||
</pre>}} | </pre>}} | ||
− | Перед тем как | + | Перед тем как протестировать работает ли PHP-модуль, проверьте, что файл {{Path|/etc/apache2/modules.d/70_mod_php5.conf}} существует и содержит следующее определение: |
{{File|/etc/apache2/modules.d/70_mod_php5.conf||<pre> | {{File|/etc/apache2/modules.d/70_mod_php5.conf||<pre> | ||
<IfDefine PHP5> | <IfDefine PHP5> | ||
− | # | + | # Сначала загрузить модуль |
<IfModule !mod_php5.c> | <IfModule !mod_php5.c> | ||
LoadModule php5_module modules/libphp5.so | LoadModule php5_module modules/libphp5.so | ||
</IfModule> | </IfModule> | ||
− | # | + | # Настроить его для обработки файлов |
<IfModule mod_mime.c> | <IfModule mod_mime.c> | ||
AddHandler application/x-httpd-php .php .php5 .phtml | AddHandler application/x-httpd-php .php .php5 .phtml | ||
Line 385: | Line 385: | ||
</pre>}} | </pre>}} | ||
− | Если | + | Если файл не существует, создайте его самостоятельно. |
Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу: | Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу: |
Revision as of 18:45, 21 March 2014
HTTP-сервер Apache — это эффективный и расширяемый веб-сервер, а также один из самых популярных веб-серверов в Интернете.
Установка
root #
emerge --ask www-servers/apache
USE-флаги
USE flags for www-servers/apache The Apache Web Server
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
gdbm
|
Add support for sys-libs/gdbm (GNU database libraries) |
ldap
|
Add LDAP support (Lightweight Directory Access Protocol) |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
split-usr
|
Enable behavior to support maintaining /bin, /lib*, /sbin and /usr/sbin separately from /usr/bin and /usr/lib* |
ssl
|
Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security) |
static
|
Link in apache2 modules statically rather then plugins |
suexec
|
Install suexec with apache |
suexec-caps
|
Install suexec with capabilities instead of SUID |
suexec-syslog
|
Log suexec to syslog instead of to a separate file |
systemd
|
Enable use of systemd-specific libraries and features like socket activation or session tracking |
threads
|
Add threads support for various packages. Usually pthreads |
Поддержка в других пакетах
Существует глобальный USE-флаг apache2, который включает поддержку Apache в других пакетах. Он может автоматически «подтянуть» www-servers/apache в качестве зависимости, если такие пакеты есть в системе. Template:File
После установки этого флага потребуется обновить систему, чтобы изменения вступили в силу:
root #
emerge --ask --changed-use --deep @world
Запуск и перезапуск
OpenRC
Запуск сервера Apache:
root #
/etc/init.d/apache2 start
Добавление Apache в уровень исполнения по умолчанию:
root #
rc-update add apache2 default
Перезапуск службы Apache:
root #
/etc/init.d/apache2 restart
Перезагрузка конфигурационных файлов Apache:
root #
/etc/init.d/apache2 reload
systemd
Запуск сервера Apache:
root #
systemctl start apache2
Добавление Apache в уровень исполнения по умолчанию:
root #
systemctl enable apache2
Перезапуск службы Apache:
root #
systemctl restart apache2
Тестирование
Проверка интерфейсов IP, на которых apache2 работает, и портов IP, которые он «слушает»:
root #
netstat -tulpen | grep apache
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 10932720 4544/apache2 tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 0 10932716 4544/apache2
Проверка, есть ли соединение с запущенным на localhost'е сервером Apache:
user $
telnet localhost 80
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
Тестовое соединение можно разорвать нажатием Ctlr+c и Enter.
Настройка
Конфигурационные файлы
Существуют 2 основных файла, которые настраивают поведение Apache2 в системе:
- Конфигурационный файл сценария инициализации apache2 в Gentoo
/etc/conf.d/apache2
- стандартный файл конфигурации сервера Apache
/etc/apache2/httpd.conf
Конфигурационный файл сценария инициализации Gentoo
Единственная действующая строка в этом файле приведена ниже:
Эта строка определяет параметры, которые будут переданы различным конфигурационным файлам, использующим выражение <IfDefine option-name>
для включения или отключения некоторой части настроек. Мы вернёмся к ним там, где это уместно: в конце этого руководства.
Стандартный конфигурационный файл сервера Apache — httpd.conf
Этот файл на самом деле является лишь точкой входа, так как вся конфигурация разбита на множество файлов в каталоге /etc/apache2/, которые собираются вместе посредством директивы Include
. Например, директива Include /etc/apache2/modules.d/*.conf
в httpd.conf предназначена для включения всех файлов из /etc/apache2/modules.d/, имя которых оканчивается на .conf.
Принимая во внимание то, о чём говорилось в предыдущем разделе, и то, что конфигурационные файлы модулей (файлы в /etc/apache2/modules.d) почти всегда начинаются с <IfDefine module-name>
, получаем, что содержимое одного файла в /etc/apache2/modules.d будет объединено с остальной конфигурацией ТОЛЬКО в том случае, если соответствующий параметр установлен с помощью флага -D module-name
в переменной APACHE2_OPTS в файле /etc/conf.d/apache2. Конфигурационный файл 00_default_settings.conf является исключением из этого правила, так как не начинается с выражения IfDefine
и, следовательно, всегда включается в конечную конфигурацию.
Настройки по умолчанию
Ниже приведена конфигурация свежей установки сервера Apache, получающаяся объединением различных конфигурационных файлов. Мы начнём с точки входа /etc/apache2/httpd.conf.
Первые признаки жизни
Как можно видеть из приведённой выше первоначальной конфигурации, предварительно установленным каталогом для виртуального хоста DocumentRoot
является /var/www/localhost/htdocs, именем соответствующего сервера — localhost. К тому же в каталог для DocumentRoot
устанавливается файл index.html, так что, чтобы проверить всё ли правильно установлено, можно направить браузер на http://localhost/.
На этой странице вы должны увидеть сообщение "It works !".
Включение модуля безопасности
root #
emerge --ask mod_security
Для управления этим модулем нужно редактировать файлы /etc/apache2/modules.d/79_modsecurity.conf и /etc/apache2/modules.d/80_modsecurity-crs.conf и перезапускать apache.
Включение поддержки PHP
Установите PHP с USE-флагом "apache2" и включите соответствующий модуль:
Перед тем как протестировать работает ли PHP-модуль, проверьте, что файл /etc/apache2/modules.d/70_mod_php5.conf существует и содержит следующее определение:
Если файл не существует, создайте его самостоятельно.
Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу:
Теперь, откройте тестовую страницу: http://localhost/. Вы должны увидеть таблицу, показывающую настройки PHP
Добавление собственных виртуальных хостов
Для каждого виртуального хоста необходимо иметь каталог DocumentRoot
, который демон Apache сможет открыть и прочитать. Добавьте файл конфигурации виртуального хоста (myVirtualHost.conf) в каталоге /etc/apache2/vhosts.d, который будет использовать данный DocumentRoot
и данное имя сервера виртуального хоста, а также не забудьте добавить запись для данного доменного имени в /etc/hosts.
Чтобы назначить пользователя и группу apache файлам виртуального хоста, можно использовать chown
, как показано в следующем примере:
root #
chown apache:apache /var/www/sitename
Ниже приведены два примера определения виртуальных хостов, один для domainname1.com, а второй для domainname2.com. Обратите внимание, что директивы DocumentRoot
и ServerName
различаются, хотя сам хост (*:80
) один и тот же:
Также рекомендуется дать определение виртуального хоста на основании IP. Это позволит администратору оставить сообщение пользователям, которые пытаются зайти на сайт по IP-адресу:
После добавления новых хостов сервер нужно (мягко) перезапустить, чтобы новые сайты стали активны.
Включение PHP через fcgid
Установите www-apache/mod_fcgid и dev-lang/php. Пакету PHP нужен USE флаг cgi:
root #
emerge --ask mod_fcgid php
Отредактируйте файл mod_fcgid.conf:
Создайте необходимые каталоги:
root #
mkdir /var/www/localhost/htdocs/fcgid-bin
Сделайте символическую ссылку для PHP-wrapper:
root #
ln -s /usr/bin/php-cgi /var/www/localhost/htdocs/fcgid-bin/php-fcgid-wrapper
Включите модуль fcgid:
В конце перезапустите Apache и проверьте сайт phpinfo()
, который мы создали раньше. Значение Server API
должно быть CGI/FastCGI
Устранение проблем
Стандартные неполадки
При запуске apache вы можете получить следующие сообщения об ошибках:
Когда это происходит, добавьте имя вашего хоста в файл /etc/hosts.
Смотрите также
- Lighttpd — быстрый, легковесный веб-сервер.
- Nginx — небольшой, надёжный и высокопроизводительный HTTP-сервер.
Внешние ресурсы
- статья Slicehost: Установка Apache в Gentoo
- статья Slicehost: Конфигурационые файлы Apache в Gentoo
- статья Slicehost: Настройка Apache MPM в Gentoo
- статья Slicehost: Настройка Apache в Gentoo
- статья Slicehost: Виртуальные хосты Apache в Gentoo
- статья Slicehost: Включение и использование модуля apache mod_status в Gentoo
- документация apache.org
- Apache2 mod_pagespeed