Меню Рубрики

Arch linux установка apache

Apache HTTP Server (Русский)

Эта статья или раздел нуждается в переводе

Apache HTTP Server, или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.

Apache часто используется вместе с языком сценариев PHP и СУБД MySQL. Такую комбинацию обычно называют LAMP (Linux, Apache, MySQL, PHP). Эта статья объясняет, как настроить Apache и как интегрировать с ним PHP и MySQL.

Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить Xampp.

Contents

Установка

Настройка

Файлы настроек Apache находятся в /etc/httpd/conf . Основным файлом является /etc/httpd/conf/httpd.conf , который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев будет достаточно стандартных настроек из этого файла. По умолчанию корневым каталогом веб-сервера является /srv/http .

Для старта Apache запустите службу httpd.service .

После этих действий Apache должен запуститься. Проверьте работает ли он, набрав в адресной строке браузера http://localhost/ . Веб-сервер должен отправить вам простую тестовую страничку.

При необходимости дальнейшей настройки сервера смотрите следующие разделы.

Дополнительные опции

Следующие опции (директивы) в /etc/httpd/conf/httpd.conf могут быть вам интересны:

По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификатора пользователя (UID), от имени которого выполняется процесс сервера. По умолчанию используется пользователь http , который не имеет привилегированных полномочий в системе. Это порт, через который Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить перенаправление этого порта. Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите Listen 127.0.0.1:80 . Адрес электронной почты администратора, который будет выводиться, например, на странице ошибки Apache. Это корневая директория Apache, в которой можно разместить ваши веб-страницы. Измените ее, если нужно, но не забудьте также поменять путь в директиве на новое расположение DocumentRoot , иначе вы, скорее всего, получите сообщение об ошибке 403 Error (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку Require all denied на Require all granted , иначе снова получите ошибку 403 Error. Помните, что директория DocumentRoot и ее родительские папки должны иметь разрешения на запуск для всех (можно установить командой chmod o+x /path/to/DocumentRoot> ), в противном случае вы получите ошибку 403 Error. Запрещает переопределение настроек. Если в секции указана эта директива, Apache будет полностью игнорировать настройки в файле .htaccess . Обратите внимание, что теперь такая настройка для Apache 2.4 является настройкой по умолчанию, поэтому если вы планируете использовать .htaccess , вам необходимо дать соответствующие разрешения. Если вы собираетесь включить модуль mod_rewrite или использовать настройки в .htaccess , вы можете определить какие из директив, объявленных в этих файлах, могут перезаписывать конфигурацию сервера. Для получения дополнительной информации обратитесь к документации Apache.

Читайте также:  Linux win to usb

Дополнительные настройки можно найти в /etc/httpd/conf/extra/httpd-default.conf .

Чтобы полностью отключить вывод версии Apache в генерируемых сервером страницах, добавьте:

Чтобы подавить вывод такой информации, как версии Apache и PHP, добавьте:

Пользовательские каталоги

По умолчанию доступ к каталогам пользователей возможен по адресу http://localhost/

”user”/ , который показывает содержимое каталога

/public_html (его имя и расположение задается в файле /etc/httpd/conf/extra/httpd-userdir.conf ).

Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в /etc/httpd/conf/httpd.conf :

Убедитесь, что права доступа к вашему домашнему каталогу и

/public_html позволяют получать доступ к файлам в них всем пользователям:

Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя http в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе piter, можно проделать следующее:

После этого назначьте права на чтение и исполнение для каталогов

/public_html и, рекурсивно, на остальные подкаталоги для

/public_html для членов группы (в нашем примере для членов группы piter). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:

Перезапустите службу httpd.service , чтобы изменения вступили в силу. Смотрите также Umask#Set the mask value.

TLS/SSL

Для использования TLS/SSL необходимо установить openssl .

Создайте закрытый ключ и запрос на получение сертификата (CSR). Также вы можете самозаверить CSR (который создаст сертификат):

Теперь раскомментируйте следующие строки в /etc/httpd/conf/httpd.conf :

Перезапустите службу httpd.service , чтобы изменения вступили в силу.

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

Если вы хотите, чтобы Apache обслуживал не один, а несколько хостов, раскомментируйте следующую строку в файле /etc/httpd/conf/httpd.conf :

Укажите свои виртуальные хосты в /etc/httpd/conf/extra/httpd-vhosts.conf . Файл уже содержит пример полностью рабочих настроек, что поможет вам быстро выполнить настройки под ваши нужды.

Читайте также:  Будильник для linux mint

Для проверки виртуальных хостов на локальной машине добавьте их виртуальные имена в ваш файл /etc/hosts :

Перезапустите httpd.service , чтобы изменения вступили в силу.

Управление большим количеством виртуальных хостов

Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например /etc/httpd/conf/vhosts .

Сначала создайте каталог:

Теперь создайте в нем отдельные конфигурационные файлы:

И включите эти файлы в основной файл настроек /etc/httpd/conf/httpd.conf :

Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы Include в основном файле настроек.

Очень простой файл виртуального хоста будет выглядеть следующим образом:

Расширения

Для использования mod_mpm_prefork , откройте /etc/httpd/conf/httpd.conf и поменяйте строку

Также вы можете просто использовать mod_proxy_fcgi (смотрите #Использование php7 c php-fpm и mod_proxy_fcgi [broken link: invalid section] ).

Чтобы включить модуль PHP, добавьте следующие строки в /etc/httpd/conf/httpd.conf :

  • Поместите эту строку в любом месте после строки LoadModule dir_module modules/mod_dir.so :
  • Разместите эту строку в конце списка Include :

Если ваш корневой каталог DocumentRoot не /srv/http , добавьте его в список open_basedir в /etc/php/php.ini (необязательно):

Перезапустите службу httpd.service , чтобы изменения вступили в силу.

Чтобы убедиться в том, что PHP настроен корректно, создайте файл test.php в каталоге DocumentRoot (то есть в /srv/http/ или

/public_html ) и поместите в него следующий код:

По адресу http://localhost/test.php или http://localhost/”

пользователь”/test.php вы должны увидеть информационную страницу PHP.

Если PHP-код не исполняется, а на странице браузера вы увидите содержимое test.php , проверьте добавили ли вы Includes в строку Options для вашего корневого каталога в /etc/httpd/conf/httpd.conf . Кроме того, убедитесь, что TypesConfig conf/mime.types раскомментирован в секции . Также можно попробовать добавить нижеследующую строку в секцию файла httpd.conf :

Дополнительную информацию вы можете получить на странице PHP.

Дополнительные параметры

Рекомендуется правильно настроить вашу временную зону (список временных зон) в /etc/php/php.ini по примеру:

Читайте также:  Converter video for linux

По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции display_errors на On в файле /etc/php/php.ini :

Ежели вы хотите использовать модуль libGD , установите php-gd и раскомментируйте extension=gd.so в /etc/php/php.ini :

Для использования модуля mcrypt установите php-mcrypt [ссылка недействительна: package not found] и раскомментируйте extension=mcrypt.so в /etc/php/php.ini :

Не забудьте добавить индексные файлы /etc/httpd/conf/extra/php7_module.conf , если это необходимо:

Для дополнительной настройки, пожалуйста прочтите PHP.

Использование php5 c php-fpm и mod_proxy_fcgi

  • Установитеphp-fpm
  • Задайте listen в /etc/php/php-fpm.conf следующим образом:
  • Добавьте следующие строки в /etc/httpd/conf/httpd.conf :
  • Если у вас добавлен модуль php, уберите его, так как он больше не нужен:
  • Перезапустите демон apache php-fpm:

Использование php5 c apache2-mpm-worker и mod_fcgid

  • Раскомментируйте следующую строку в /etc/conf.d/apache :
  • Раскомментируйте следующую строку в /etc/httpd/conf/httpd.conf :
  • Установите пакеты mod_fcgid и php-cgi , доступные в официальных репозиториях.
  • Создайте файл /etc/httpd/conf/extra/php5_fcgid.conf со следующим содержимым:
  • Создайте каталог и символическую ссылку в нем на php-cgi:
  • Отредактируйте /etc/httpd/conf/httpd.conf :

и перезапустите службу httpd.service .

MySQL/MariaDB

Следуйте инструкциям на странице PHP#MySQL/MariaDB.

После выполнения настройки, перезапустите службу mysqld , чтобы изменения вступили в силу.

Решение проблем

Просмотр журнала и текущего состояния Apache

Текущее состояние службы httpd вы можете вывести командой systemctl status httpd .

Лог-файлы Apache вы найдете в каталоге /var/log/httpd .

PID file /run/httpd/httpd.pid not readable (yet?) after start

Если вы получаете такую ошибку, закомментируйте строку:

в файле настроек Apache.

Обновление с Apache 2.2 до 2.4

Если вы используете php-apache , посмотрите инструкции к Apache с PHP выше.

Управление доступом было изменено. Приведите все директивы Order , Allow , Deny и Satisfy к новому синтаксису с Require . mod_access_compat позволит использовать устаревший формат на время этапа перехода.

Подробную информацию вы найдете на странице Upgrading to 2.4 from 2.2.

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe

Если не удалось запустить php5_module при старте httpd.service и вы получаете следующее сообщение об ошибке:

Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить mpm_event_module на mpm_prefork_module :

Источник

Популярные записи

Adblock
detector