Difference between revisions of "Apache/ru"

From Gentoo Wiki
Jump to:navigation Jump to:search
(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}} существует и содержит следующие определения:
+
Перед тем как протестировать работает ли 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>  
         # Load the module first
+
         # Сначала загрузить модуль
 
         <IfModule !mod_php5.c>  
 
         <IfModule !mod_php5.c>  
 
                 LoadModule php5_module    modules/libphp5.so  
 
                 LoadModule php5_module    modules/libphp5.so  
 
         </IfModule>  
 
         </IfModule>  
 
    
 
    
         # Set it to handle the files
+
         # Настроить его для обработки файлов
 
         <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

Resources

HTTP-сервер Apache — это эффективный и расширяемый веб-сервер, а также один из самых популярных веб-серверов в Интернете.

Установка

Template:Note/ru

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

Единственная действующая строка в этом файле приведена ниже:

Template:File

Эта строка определяет параметры, которые будут переданы различным конфигурационным файлам, использующим выражение <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.

Template:Warning/ru

Template:File

Первые признаки жизни

Как можно видеть из приведённой выше первоначальной конфигурации, предварительно установленным каталогом для виртуального хоста DocumentRoot является /var/www/localhost/htdocs, именем соответствующего сервера — localhost. К тому же в каталог для DocumentRoot устанавливается файл index.html, так что, чтобы проверить всё ли правильно установлено, можно направить браузер на http://localhost/.

На этой странице вы должны увидеть сообщение "It works !".

Включение модуля безопасности

root #emerge --ask mod_security

Template:File

Для управления этим модулем нужно редактировать файлы /etc/apache2/modules.d/79_modsecurity.conf и /etc/apache2/modules.d/80_modsecurity-crs.conf и перезапускать apache.

Включение поддержки PHP

Установите PHP с USE-флагом "apache2" и включите соответствующий модуль:

Template:File

Перед тем как протестировать работает ли PHP-модуль, проверьте, что файл /etc/apache2/modules.d/70_mod_php5.conf существует и содержит следующее определение:

Template:File

Если файл не существует, создайте его самостоятельно.

Чтобы проверить, работает ли модуль PHP, создайте тестовую страницу:

Template:File

Теперь, откройте тестовую страницу: 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) один и тот же:

Template:Code

Также рекомендуется дать определение виртуального хоста на основании IP. Это позволит администратору оставить сообщение пользователям, которые пытаются зайти на сайт по IP-адресу:

Template:Code

После добавления новых хостов сервер нужно (мягко) перезапустить, чтобы новые сайты стали активны.

Включение PHP через fcgid

Установите www-apache/mod_fcgid и dev-lang/php. Пакету PHP нужен USE флаг cgi:

root #emerge --ask mod_fcgid php

Отредактируйте файл mod_fcgid.conf:

Template:File

Создайте необходимые каталоги:

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:

Template:File

В конце перезапустите Apache и проверьте сайт phpinfo(), который мы создали раньше. Значение Server API должно быть CGI/FastCGI

Устранение проблем

Стандартные неполадки

При запуске apache вы можете получить следующие сообщения об ошибках:

Template:Code

Когда это происходит, добавьте имя вашего хоста в файл /etc/hosts.

Template:File

Смотрите также

  • Lighttpd — быстрый, легковесный веб-сервер.
  • Nginx — небольшой, надёжный и высокопроизводительный HTTP-сервер.

Внешние ресурсы