https://wiki.archlinux.org/api.php?action=feedcontributions&user=Lkzcover&feedformat=atomArchWiki - User contributions [en]2024-03-28T20:51:22ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=355177Apache HTTP Server (Русский)2015-01-03T18:49:02Z<p>Lkzcover: изменения порядка слов в SLL для соответствия порядку команд</p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ru:Apache|Apache HTTP Server]], или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию обычно называют [[Wikipedia:ru:LAMP|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache и как интегрировать с ним [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить [[Xampp (Русский)|Xampp]].<br />
<br />
==Установка==<br />
[[Установите]] пакет {{Pkg|apache}}, доступный в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
== Настройка ==<br />
<br />
Файлы настроек Apache находятся в {{ic|/etc/httpd/conf}}. Основным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев, будет достаточно стандартных настроек из этого файла. По умолчанию, корневым каталогом веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для старта Apache, [[запустите]] службу {{ic|httpd.service}}.<br />
<br />
После этих действий Apache должен запуститься. Проверьте, работает ли он, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
=== Дополнительные опции ===<br />
<br />
Следующие опции (''директивы'') в {{ic|/etc/httpd/conf/httpd.conf}} могут быть вам интересны:<br />
<br />
User http<br />
Group http<br />
<br />
:По соображениям безопасности, при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которых выполняется процесс сервера. По умолчанию, используется группа {{ic|http}} и пользователь {{ic|http}}, которые не имеют привилегированных полномочий в системе.<br />
<br />
Listen 80<br />
:Это порт, на котором Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить перенаправление этого порта.<br />
<br />
:Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать указанный почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
<br />
:Измените ее, если нужно, но не забудьте также поменять путь в директиве {{ic|<Directory "/srv/http">}} на новое расположение {{ic|DocumentRoot}}, иначе вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку {{ic|Require all denied}}, иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Запрещает переопределение настроек. Если в секции {{ic|<Directory>}} указана эта директива, Apache будет полностью игнорировать файлы {{ic|.htaccess}} в каталоге. Если вы собираетесь использовать {{ic|mod_rewrite}} или указывать какие-то дополнительные настройки в файлах {{ic|.htaccess}}, вы можете разрешить только определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride документации Apache].<br />
<br />
{{Tip (Русский)|Вы можете проверить корректность настроек Apache без запуска самого сервера командой {{ic|apachectl configtest}}.}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
Чтобы отключить вывод версии Apache в генерируемых сервером страницах, укажите:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы убрать вывод версий Apache и подключенных модулей в HTTP-заголовках ответов, добавьте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
<br />
По умолчанию, доступ к каталогам пользователей возможен по адресу {{ic|<nowiki>http://localhost/~''user''/</nowiki>}}, который показывает содержимое каталога {{ic|~/public_html}} (его имя и расположение задается в файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Убедитесь, что права доступа к вашему домашнему каталогу и {{ic|~/public_html}} позволяют получать доступ к файлам в них '''всем''' другим пользователям:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== TLS/SSL ===<br />
<br />
Для использования TLS/SSL необходимо установить {{pkg|openssl}}.<br />
<br />
Создайте закрытый ключ и запрос на получение сертификата (CSR). Также вы можете [[Wikipedia:ru:Самозаверенный сертификат|самозаверить]] CSR (который создаст сертификат):<br />
<br />
{{Note (Русский)|Вы можете настроить длину ключа в битах ({{ic|rsa_keygen_bits:2048}}). Также вы можете убрать опцию {{ic|-sha256}} для использования SHA-1 вместо SHA-2 или изменить время его действия в днях ({{ic|-days 365}}).}}<br />
<br />
# cd /etc/httpd/conf<br />
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out server.key<br />
# chmod 600 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Теперь раскомментируйте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== Виртуальные хосты ===<br />
<br />
{{Note (Русский)|Вам нужно будет добавить отдельную секцию {{ic|<VirtualHost dommainame:443>}} для поддержки SSL на виртуальном хосте. Пример файла можно посмотреть ниже: [[#Управление большим количеством виртуальных хостов]].}}<br />
<br />
Если вы хотите, чтобы Apache обслуживал не один, а несколько хостов, раскомментируйте следующую строку в файле {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
Укажите свои виртуальные хосты в {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}}. По умолчанию, файл уже содержит подробно разобранный пример.<br />
<br />
Для проверки виртуальных хостов на локальной машине, добавьте их виртуальные имена в ваш файл {{ic|/etc/hosts}}:<br />
<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
[[Перезапустите]] {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
==== Управление большим количеством виртуальных хостов ====<br />
<br />
Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
Создайте каталог:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Теперь создайте в нем отдельные конфигурационные файлы:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
И включите эти файлы в основной файл настроек {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
...<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы {{ic|Include}} в основном файле настроек.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Расширения ==<br />
<br />
=== PHP ===<br />
<br />
[[Установите]] [[PHP]] с пакетами {{pkg|php}} и {{pkg|php-apache}}, доступными в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}}, не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него следует использовать {{ic|mod_mpm_prefork}}. В противном случае, вы получите следующее сообщение об ошибке:<br />
<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и поменяйте строку<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
Также вы можете просто использовать {{ic|mod_proxy_fcgi}} (смотрите [[#Использование php5 c php-fpm и mod_proxy_fcgi]]).<br />
}}<br />
<br />
Чтобы включить модуль PHP, добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите эту строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
<!-- этого нет в англоязычной статье --><br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в список {{ic|open_basedir}} в {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:''/путь/до/корневого/каталога''<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
Чтобы убедиться в том, что PHP настроен корректно, создайте файл {{ic|test.php}} в каталоге {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<br />
<?php phpinfo(); ?><br />
<br />
По адресу <nowiki>http://localhost/test.php</nowiki> или <nowiki>http://localhost/''~пользователь''/test.php</nowiki> вы должны увидеть информационную страницу PHP.<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Дополнительную информацию вы можете получить на странице [[PHP]].<br />
<!-- этого нет в англоязычной статье --><br />
<br />
==== Дополнительные параметры ====<br />
<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличие от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* [[Установите]] {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если у вас добавлен модуль php, уберите его, так как он больше не нужен:<br />
#LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Перезапустите]] демон apache php-fpm:<br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}}, доступные в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
* Создайте файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте каталог и символическую ссылку в нем на ''php-cgi'':<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
и [[перезапустите]] службу {{ic|httpd.service}}.<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Пример конфигурации вы можете найти на странице [http://wiki.apache.org/httpd/PHP-FPM].}}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Установите и настройте MySQL/MariaDB так, как описано в [[MySQL (Русский)|MySQL]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php хотя бы одну] из следующих строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning (Русский)|Начиная с PHP 5.5, библиотека {{ic|mysql.so}} считается [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Теперь вы можете добавить в базу новых пользователей с ограниченными правами для доступа к базе из ваших веб-приложений. Вы также можете ограничить доступ к базе данных, разрешив подключаться только локально: для этого раскомментируйте опцию {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. [[Перезапустите]] {{ic|mysqld.service}}, чтобы изменения вступили в силу.<br />
<br />
{{Tip (Русский)|Возможно, вы захотите установить инструменты для управления базой данных [[PhpMyAdmin (Русский)|PhpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Решение проблем ==<br />
<br />
=== Просмотр журнала и текущего состояния Apache ===<br />
<br />
Текущее состояние службы {{ic|httpd}} вы можете вывести командой {{ic|systemctl status httpd}}.<br />
<br />
Лог-файлы Apache вы найдете в каталоге {{ic|/var/log/httpd}}.<br />
<br />
=== PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Если вы получаете такую ошибку, закомментируйте строку:<br />
<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
в файле настроек Apache.<br />
<br />
=== Обновление с Apache 2.2 до 2.4 ===<br />
<br />
Если вы используете {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Управление доступом было изменено. Приведите все директивы {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} к новому синтаксису с {{ic|Require}}. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Подробную информацию вы найдете на странице [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2].<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить {{ic|mpm_event_module}} на {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
# LoadModule mpm_event_module modules/mod_mpm_event.so<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]<br />
<!-- этого нет в англоязычной статье --><br />
* [https://mariadb.org/ Официальный сайт MariaDB]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
<!-- /этого нет в англоязычной статье --></div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=354552Apache HTTP Server (Русский)2014-12-30T19:19:36Z<p>Lkzcover: </p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ru:Apache|Apache HTTP Server]], или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию обычно называют [[Wikipedia:ru:LAMP|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache и как интегрировать с ним [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить [[Xampp (Русский)|Xampp]].<br />
<br />
==Установка==<br />
[[Установите]] пакет {{Pkg|apache}}, доступный в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
== Настройка ==<br />
<br />
Файлы настроек Apache находятся в {{ic|/etc/httpd/conf}}. Основным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев, будет достаточно стандартных настроек из этого файла. По умолчанию, корневым каталогом веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для старта Apache, [[запустите]] службу {{ic|httpd.service}}.<br />
<br />
После этих действий Apache должен запуститься. Проверьте, работает ли он, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
=== Дополнительные опции ===<br />
<br />
Следующие опции (''директивы'') в {{ic|/etc/httpd/conf/httpd.conf}} могут быть вам интересны:<br />
<br />
User http<br />
Group http<br />
<br />
:По соображениям безопасности, при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которых выполняется процесс сервера. По умолчанию, используется группа {{ic|http}} и пользователь {{ic|http}}, которые не имеют привилегированных полномочий в системе.<br />
<br />
Listen 80<br />
:Это порт, на котором Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить перенаправление этого порта.<br />
<br />
:Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать указанный почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
<br />
:Измените ее, если нужно, но не забудьте также поменять путь в директиве {{ic|<Directory "/srv/http">}} на новое расположение {{ic|DocumentRoot}}, иначе вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку {{ic|Require all denied}}, иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Запрещает переопределение настроек. Если в секции {{ic|<Directory>}} указана эта директива, Apache будет полностью игнорировать файлы {{ic|.htaccess}} в каталоге. Если вы собираетесь использовать {{ic|mod_rewrite}} или указывать какие-то дополнительные настройки в файлах {{ic|.htaccess}}, вы можете разрешить только определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride документации Apache].<br />
<br />
{{Tip (Русский)|Вы можете проверить корректность настроек Apache без запуска самого сервера командой {{ic|apachectl configtest}}.}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
Чтобы отключить вывод версии Apache в генерируемых сервером страницах, укажите:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы убрать вывод версий Apache и подключенных модулей в HTTP-заголовках ответов, добавьте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
<br />
По умолчанию, доступ к каталогам пользователей возможен по адресу {{ic|<nowiki>http://localhost/~''user''/</nowiki>}}, который показывает содержимое каталога {{ic|~/public_html}} (его имя и расположение задается в файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Убедитесь, что права доступа к вашему домашнему каталогу и {{ic|~/public_html}} позволяют получать доступ к файлам в них '''всем''' другим пользователям:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== TLS/SSL ===<br />
<br />
Для использования TLS/SSL, необходимо установить {{pkg|openssl}}.<br />
<br />
Создайте закрытый ключ и запрос на получение сертификата (CSR) кроме того можно создать [[Wikipedia:ru:самозаверенный сертификат]] используя этот же CSR:<br />
<br />
{{Note (Русский)|Вы можете настроить длину ключа в битах ({{ic|rsa_keygen_bits:2048}}), и срок его действия ({{ic|-days 365}}), а так же, возможно, удаление {{ic|-sha256}} для использования SHA-1 вместо SHA-2.}}<br />
<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -out server.key 2048<br />
# chmod 600 server.key<br />
# openssl req -new -sha256 -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Затем в {{ic|/etc/httpd/conf/httpd.conf}} раскомментируйте следующие строки:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== Виртуальные хосты ===<br />
<br />
{{Note (Русский)|Вам нужно будет добавить отдельную секцию {{ic|<VirtualHost dommainame:443>}} для поддержки SSL на виртуальном хосте. Пример файла можно посмотреть ниже: [[#Управление большим количеством виртуальных хостов]].}}<br />
<br />
Если вы хотите, чтобы Apache обслуживал не один, а несколько хостов, раскомментируйте следующую строку в файле {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
Укажите свои виртуальные хосты в {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}}. По умолчанию, файл уже содержит подробно разобранный пример.<br />
<br />
Для проверки виртуальных хостов на локальной машине, добавьте их виртуальные имена в ваш файл {{ic|/etc/hosts}}:<br />
<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
[[Перезапустите]] {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
==== Управление большим количеством виртуальных хостов ====<br />
<br />
Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
Создайте каталог:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Теперь создайте в нем отдельные конфигурационные файлы:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
И включите эти файлы в основной файл настроек {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
...<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы {{ic|Include}} в основном файле настроек.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Расширения ==<br />
<br />
=== PHP ===<br />
<br />
[[Установите]] [[PHP]] с пакетами {{pkg|php}} и {{pkg|php-apache}}, доступными в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}}, не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него следует использовать {{ic|mod_mpm_prefork}}. В противном случае, вы получите следующее сообщение об ошибке:<br />
<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и поменяйте строку<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
Также вы можете просто использовать {{ic|mod_proxy_fcgi}} (смотрите [[#Использование php5 c php-fpm и mod_proxy_fcgi]]).<br />
}}<br />
<br />
Чтобы включить модуль PHP, добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите эту строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
<!-- этого нет в англоязычной статье --><br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в список {{ic|open_basedir}} в {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:''/путь/до/корневого/каталога''<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
Чтобы убедиться в том, что PHP настроен корректно, создайте файл {{ic|test.php}} в каталоге {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<br />
<?php phpinfo(); ?><br />
<br />
По адресу <nowiki>http://localhost/test.php</nowiki> или <nowiki>http://localhost/''~пользователь''/test.php</nowiki> вы должны увидеть информационную страницу PHP.<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Дополнительную информацию вы можете получить на странице [[PHP]].<br />
<!-- этого нет в англоязычной статье --><br />
<br />
==== Дополнительные параметры ====<br />
<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличие от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* [[Установите]] {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если у вас добавлен модуль php, уберите его, так как он больше не нужен:<br />
#LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Перезапустите]] демон apache php-fpm:<br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}}, доступные в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
* Создайте файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте каталог и символическую ссылку в нем на ''php-cgi'':<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
и [[перезапустите]] службу {{ic|httpd.service}}.<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Пример конфигурации вы можете найти на странице [http://wiki.apache.org/httpd/PHP-FPM].}}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Установите и настройте MySQL/MariaDB так, как описано в [[MySQL (Русский)|MySQL]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php хотя бы одну] из следующих строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning (Русский)|Начиная с PHP 5.5, библиотека {{ic|mysql.so}} считается [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Теперь вы можете добавить в базу новых пользователей с ограниченными правами для доступа к базе из ваших веб-приложений. Вы также можете ограничить доступ к базе данных, разрешив подключаться только локально: для этого раскомментируйте опцию {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. [[Перезапустите]] {{ic|mysqld.service}}, чтобы изменения вступили в силу.<br />
<br />
{{Tip (Русский)|Возможно, вы захотите установить инструменты для управления базой данных [[PhpMyAdmin (Русский)|PhpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Решение проблем ==<br />
<br />
=== Просмотр журнала и текущего состояния Apache ===<br />
<br />
Текущее состояние службы {{ic|httpd}} вы можете вывести командой {{ic|systemctl status httpd}}.<br />
<br />
Лог-файлы Apache вы найдете в каталоге {{ic|/var/log/httpd}}.<br />
<br />
=== PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Если вы получаете такую ошибку, закомментируйте строку:<br />
<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
в файле настроек Apache.<br />
<br />
=== Обновление с Apache 2.2 до 2.4 ===<br />
<br />
Если вы используете {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Управление доступом было изменено. Приведите все директивы {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} к новому синтаксису с {{ic|Require}}. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Подробную информацию вы найдете на странице [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2].<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить {{ic|mpm_event_module}} на {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
# LoadModule mpm_event_module modules/mod_mpm_event.so<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]<br />
<!-- этого нет в англоязычной статье --><br />
* [https://mariadb.org/ Официальный сайт MariaDB]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
<!-- /этого нет в англоязычной статье --></div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=User:Lkzcover&diff=349279User:Lkzcover2014-12-09T13:01:47Z<p>Lkzcover: </p>
<hr />
<div>== ArchWiki pages maintained by me ==<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Translated page<br />
! Original (English) page<br />
! Last update<br />
|-<br />
| [[Apache HTTP Server (Русский) ]] || [[Apache HTTP Server]] || 2014-12-09||<br />
|}<br />
<br />
== About me ==<br />
<br />
'''Pavel Novokshonov'''<br />
<br />
mail: lkzcover@gmail.com</div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=349278Apache HTTP Server (Русский)2014-12-09T13:00:43Z<p>Lkzcover: Удален раздел GIT в связи с изменениями в оригинальной статье</p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ru:Apache|Apache HTTP Server]], или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию обычно называют [[Wikipedia:ru:LAMP|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache и как интегрировать с ним [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить [[Xampp (Русский)|Xampp]].<br />
<br />
==Установка==<br />
[[Установите]] пакет {{Pkg|apache}}, доступный в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
== Настройка ==<br />
<br />
Файлы настроек Apache находятся в {{ic|/etc/httpd/conf}}. Основным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев, будет достаточно стандартных настроек из этого файла. По умолчанию, корневым каталогом веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для старта Apache, [[запустите]] службу {{ic|httpd.service}}.<br />
<br />
После этих действий Apache должен запуститься. Проверьте, работает ли он, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
=== Дополнительные опции ===<br />
<br />
Следующие опции (''директивы'') в {{ic|/etc/httpd/conf/httpd.conf}} могут быть вам интересны:<br />
<br />
User http<br />
Group http<br />
<br />
:По соображениям безопасности, при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которых выполняется процесс сервера. По умолчанию, используется группа {{ic|http}} и пользователь {{ic|http}}, которые не имеют привилегированных полномочий в системе.<br />
<br />
Listen 80<br />
:Это порт, на котором Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить перенаправление этого порта.<br />
<br />
:Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать указанный почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
<br />
:Измените ее, если нужно, но не забудьте также поменять путь в директиве {{ic|<Directory "/srv/http">}} на новое расположение {{ic|DocumentRoot}}, иначе вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку {{ic|Require all denied}}, иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Запрещает переопределение настроек. Если в секции {{ic|<Directory>}} указана эта директива, Apache будет полностью игнорировать файлы {{ic|.htaccess}} в каталоге. Если вы собираетесь использовать {{ic|mod_rewrite}} или указывать какие-то дополнительные настройки в файлах {{ic|.htaccess}}, вы можете разрешить только определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride документации Apache].<br />
<br />
{{Tip (Русский)|Вы можете проверить корректность настроек Apache без запуска самого сервера командой {{ic|apachectl configtest}}.}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
Чтобы отключить вывод версии Apache в генерируемых сервером страницах, укажите:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы убрать вывод версий Apache и подключенных модулей в HTTP-заголовках ответов, добавьте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
<br />
По умолчанию, доступ к каталогам пользователей возможен по адресу {{ic|<nowiki>http://localhost/~''user''/</nowiki>}}, который показывает содержимое каталога {{ic|~/public_html}} (его имя и расположение задается в файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Убедитесь, что права доступа к вашему домашнему каталогу и {{ic|~/public_html}} позволяют получать доступ к файлам в них '''всем''' другим пользователям:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== TLS/SSL ===<br />
<br />
Для использования TLS/SSL, необходимо установить {{pkg|openssl}}.<br />
<br />
Создайте [[Wikipedia:ru:самозаверенный сертификат]] (вы можете настроить длину ключа и срок его действия):<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -out server.key 2048<br />
# chmod 600 server.key<br />
# openssl req -new -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Затем в {{ic|/etc/httpd/conf/httpd.conf}} раскомментируйте следующие строки:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== Виртуальные хосты ===<br />
<br />
{{Note (Русский)|Вам нужно будет добавить отдельную секцию {{ic|<VirtualHost dommainame:443>}} для поддержки SSL на виртуальном хосте. Пример файла можно посмотреть ниже: [[#Управление большим количеством виртуальных хостов]].}}<br />
<br />
Если вы хотите, чтобы Apache обслуживал не один, а несколько хостов, раскомментируйте следующую строку в файле {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
Include conf/extra/httpd-vhosts.conf<br />
<br />
Укажите свои виртуальные хосты в {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}}. По умолчанию, файл уже содержит подробно разобранный пример.<br />
<br />
Для проверки виртуальных хостов на локальной машине, добавьте их виртуальные имена в ваш файл {{ic|/etc/hosts}}:<br />
<br />
127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom<br />
<br />
[[Перезапустите]] {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
==== Управление большим количеством виртуальных хостов ====<br />
<br />
Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
Создайте каталог:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Теперь создайте в нем отдельные конфигурационные файлы:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
И включите эти файлы в основной файл настроек {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
...<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы {{ic|Include}} в основном файле настроек.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
== Расширения ==<br />
<br />
=== PHP ===<br />
<br />
[[Установите]] [[PHP]] с пакетами {{pkg|php}} и {{pkg|php-apache}}, доступными в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}}, не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него следует использовать {{ic|mod_mpm_prefork}}. В противном случае, вы получите следующее сообщение об ошибке:<br />
<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и поменяйте строку<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
Также вы можете просто использовать {{ic|mod_proxy_fcgi}} (смотрите [[#Использование php5 c php-fpm и mod_proxy_fcgi]]).<br />
}}<br />
<br />
Чтобы включить модуль PHP, добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите эту строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
<!-- этого нет в англоязычной статье --><br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в список {{ic|open_basedir}} в {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:''/путь/до/корневого/каталога''<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
Чтобы убедиться в том, что PHP настроен корректно, создайте файл {{ic|test.php}} в каталоге {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<br />
<?php phpinfo(); ?><br />
<br />
По адресу <nowiki>http://localhost/test.php</nowiki> или <nowiki>http://localhost/''~пользователь''/test.php</nowiki> вы должны увидеть информационную страницу PHP.<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Дополнительную информацию вы можете получить на странице [[PHP]].<br />
<!-- этого нет в англоязычной статье --><br />
<br />
==== Дополнительные параметры ====<br />
<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличие от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* [[Установите]] {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если у вас добавлен модуль php, уберите его, так как он больше не нужен:<br />
#LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Перезапустите]] демон apache php-fpm:<br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}}, доступные в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
* Создайте файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте каталог и символическую ссылку в нем на ''php-cgi'':<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
и [[перезапустите]] службу {{ic|httpd.service}}.<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Пример конфигурации вы можете найти на странице [http://wiki.apache.org/httpd/PHP-FPM].}}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Установите и настройте MySQL/MariaDB так, как описано в [[MySQL (Русский)|MySQL]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php хотя бы одну] из следующих строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning (Русский)|Начиная с PHP 5.5, библиотека {{ic|mysql.so}} считается [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Теперь вы можете добавить в базу новых пользователей с ограниченными правами для доступа к базе из ваших веб-приложений. Вы также можете ограничить доступ к базе данных, разрешив подключаться только локально: для этого раскомментируйте опцию {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. [[Перезапустите]] {{ic|mysqld.service}}, чтобы изменения вступили в силу.<br />
<br />
{{Tip (Русский)|Возможно, вы захотите установить инструменты для управления базой данных [[PhpMyAdmin (Русский)|PhpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Решение проблем ==<br />
<br />
=== Просмотр журнала и текущего состояния Apache ===<br />
<br />
Текущее состояние службы {{ic|httpd}} вы можете вывести командой {{ic|systemctl status httpd}}.<br />
<br />
Лог-файлы Apache вы найдете в каталоге {{ic|/var/log/httpd}}.<br />
<br />
=== PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Если вы получаете такую ошибку, закомментируйте строку:<br />
<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
в файле настроек Apache.<br />
<br />
=== Обновление с Apache 2.2 до 2.4 ===<br />
<br />
Если вы используете {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Управление доступом было изменено. Приведите все директивы {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} к новому синтаксису с {{ic|Require}}. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Подробную информацию вы найдете на странице [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2].<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить {{ic|mpm_event_module}} на {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
# LoadModule mpm_event_module modules/mod_mpm_event.so<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]<br />
<!-- этого нет в англоязычной статье --><br />
* [https://mariadb.org/ Официальный сайт MariaDB]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
<!-- /этого нет в англоязычной статье --></div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=User:Lkzcover&diff=346406User:Lkzcover2014-11-25T22:54:09Z<p>Lkzcover: /* ArchWiki pages maintained by me */</p>
<hr />
<div>== ArchWiki pages maintained by me ==<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Translated page<br />
! Original (English) page<br />
! Last checked<br />
|-<br />
| [[Apache HTTP Server (Русский) ]] || [[Apache HTTP Server]] || 2014-11-25||<br />
|}<br />
<br />
== About me ==<br />
<br />
'''Pavel Novokshonov'''<br />
<br />
mail: lkzcover@gmail.com</div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=346405Apache HTTP Server (Русский)2014-11-25T22:52:41Z<p>Lkzcover: Синхронизировал Виртуальные хосты</p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ru:Apache|Apache HTTP Server]], или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию обычно называют [[Wikipedia:ru:LAMP|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache и как интегрировать с ним [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить [[Xampp (Русский)|Xampp]].<br />
<br />
==Установка==<br />
[[Установите]] пакет {{Pkg|apache}}, доступный в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
== Настройка ==<br />
<br />
Файлы настроек Apache находятся в {{ic|/etc/httpd/conf}}. Основным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев, будет достаточно стандартных настроек из этого файла. По умолчанию, корневым каталогом веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для старта Apache, [[запустите]] службу {{ic|httpd.service}}.<br />
<br />
После этих действий Apache должен запуститься. Проверьте, работает ли он, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
=== Дополнительные опции ===<br />
<br />
Следующие опции (''директивы'') в {{ic|/etc/httpd/conf/httpd.conf}} могут быть вам интересны:<br />
<br />
User http<br />
Group http<br />
<br />
:По соображениям безопасности, при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которых выполняется процесс сервера. По умолчанию, используется группа {{ic|http}} и пользователь {{ic|http}}, которые не имеют привилегированных полномочий в системе.<br />
<br />
Listen 80<br />
:Это порт, на котором Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить форвардинг этого порта.<br />
<br />
:Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать указанный почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
<br />
:Измените ее, если нужно, но не забудьте также поменять путь в директиве {{ic|<Directory "/srv/http">}} на новое расположение {{ic|DocumentRoot}}, иначе вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку {{ic|Require all denied}}, иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Запрещает переопределение настроек. Если в секции {{ic|<Directory>}} указана эта директива, Apache будет полностью игнорировать файлы {{ic|.htaccess}} в каталоге. Если вы собираетесь использовать {{ic|mod_rewrite}} или указывать какие-то дополнительные настройки в файлах {{ic|.htaccess}}, вы можете разрешить только определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride документации Apache].<br />
<br />
{{Tip (Русский)|Вы можете проверить корректность настроек Apache без запуска самого сервера командой {{ic|apachectl configtest}}.}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
Чтобы отключить вывод версии Apache в генерируемых сервером страницах, укажите:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы убрать вывод версий Apache и подключенных модулей в HTTP-заголовках ответов, добавьте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
<br />
По умолчанию, доступ к каталогам пользователей возможен по адресу {{ic|<nowiki>http://localhost/~''user''/</nowiki>}}, который показывает содержимое каталога {{ic|~/public_html}} (его имя и расположение задается в файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Убедитесь, что права доступа к вашему домашнему каталогу и {{ic|~/public_html}} позволяют получать доступ к файлам в них '''всем''' другим пользователям:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== TLS/SSL ===<br />
<br />
Для использования TLS/SSL, необходимо установить {{pkg|openssl}}.<br />
<br />
Создайте [[Wikipedia:ru:самозаверенный сертификат]] (вы можете настроить длину ключа и срок его действия):<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -out server.key 2048<br />
# chmod 600 server.key<br />
# openssl req -new -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Затем в {{ic|/etc/httpd/conf/httpd.conf}} раскомментируйте следующие строки:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== Виртуальные хосты ===<br />
<br />
{{Note (Русский)|Вам нужно будет добавить отдельную секцию <VirtualHost dommainame:443> для поддержки виртуального SSL хоста. Пример файла можно посмотреть ниже:[[#Управление большим количеством виртуальных хостов]] }}<br />
<br />
Если вы хотите, чтобы Apache обслуживал множество хостов, раскомментируйте следующую строку в файле в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
{{bc|<br />
Include conf/extra/httpd-vhosts.conf<br />
}}<br />
<br />
Задайте свои виртуальные хосты в {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}}. По умолчанию файл уже содержит подробно разобранный пример.<br />
<br />
Для проверки виртуальных хостов на локальной машине, добавьте их виртуальные имена в ваш {{ic|/etc/hosts}} файл:<br />
<br />
{{bc|127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom}}<br />
<br />
Перезапустите {{ic|httpd.service}} чтобы применить изменения.<br />
<br />
==== Управление большим количеством виртуальных хостов ====<br />
<br />
Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
Создайте каталог:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Теперь создайте в нем отдельные конфигурационные файлы:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
И включите эти файлы в основной файл настроек {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
...<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы {{ic|Include}} в основном файле настроек.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
=== Git ===<br />
<br />
Его установка достаточно проста: все, что вам понадобится — это веб-сервер Apache ({{pkg|apache}}, с включенными {{ic|mod_cgi}}, {{ic|mod_alias}}, и {{ic|mod_env}}) и, конечно же, {{pkg|git}}.<br />
<br />
Добавьте следующие строки в файл настроек Apache, который обычно находится в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<Directory "/usr/lib/git-core*"><br />
Require all granted<br />
</Directory><br />
<br />
SetEnv GIT_PROJECT_ROOT /srv/git<br />
SetEnv GIT_HTTP_EXPORT_ALL<br />
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/<br />
<br />
В приведенном выше примере предполагается, что ваши репозитории git находятся в {{ic|/srv/git}} и доступ к ним осуществляется через адрес вида {{ic|<nowiki>http(s)://your_address.tld/git/your_repo.git</nowiki>}}. По желанию, вы можете поменять эти значения. Не забудьте убедиться в том, что Apache имеет возможность производить чтение и запись (если вы хотите иметь возможность отправлять изменения) в ваших репозиториях git.<br />
<br />
Более подробная документация доступна по следующим ссылкам:<br />
<br />
* http://progit.org/2010/03/04/smart-http.html<br />
* https://www.kernel.org/pub/software/scm/git/docs/v1.7.10.1/git-http-backend.html<br />
<br />
== Расширения ==<br />
<br />
=== PHP ===<br />
<br />
[[Установите]] [[PHP]] с пакетами {{pkg|php}} и {{pkg|php-apache}}, доступными в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}}, не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него следует использовать {{ic|mod_mpm_prefork}}. В противном случае, вы получите следующее сообщение об ошибке:<br />
<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и поменяйте строку<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
Также вы можете просто использовать {{ic|mod_proxy_fcgi}} (смотрите [[#Использование php5 c php-fpm и mod_proxy_fcgi]]).<br />
}}<br />
<br />
Чтобы включить модуль PHP, добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите эту строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
<!-- этого нет в англоязычной статье --><br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в список {{ic|open_basedir}} в {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:''/путь/до/корневого/каталога''<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
Чтобы убедиться в том, что PHP настроен корректно, создайте файл {{ic|test.php}} в каталоге {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<br />
<?php phpinfo(); ?><br />
<br />
По адресу <nowiki>http://localhost/test.php</nowiki> или <nowiki>http://localhost/''~пользователь''/test.php</nowiki> вы должны увидеть информационную страницу PHP.<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Дополнительную информацию вы можете получить на странице [[PHP]].<br />
<!-- этого нет в англоязычной статье --><br />
<br />
==== Дополнительные параметры ====<br />
<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличие от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* [[Установите]] {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если у вас добавлен модуль php, уберите его, так как он больше не нужен:<br />
#LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Перезапустите]] демон apache php-fpm:<br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}}, доступные в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
* Создайте файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте каталог и символическую ссылку в нем на ''php-cgi'':<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
и [[перезапустите]] службу {{ic|httpd.service}}.<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Пример конфигурации вы можете найти на странице [http://wiki.apache.org/httpd/PHP-FPM].}}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Установите и настройте MySQL/MariaDB так, как описано в [[MySQL (Русский)|MySQL]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php хотя бы одну] из следующих строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning (Русский)|Начиная с PHP 5.5, библиотека {{ic|mysql.so}} считается [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Теперь вы можете добавить в базу новых пользователей с ограниченными правами для доступа к базе из ваших веб-приложений. Вы также можете ограничить доступ к базе данных, разрешив подключаться только локально: для этого раскомментируйте опцию {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. [[Перезапустите]] {{ic|mysqld.service}}, чтобы изменения вступили в силу.<br />
<br />
{{Tip (Русский)|Возможно, вы захотите установить инструменты для управления базой данных [[PhpMyAdmin (Русский)|PhpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Решение проблем ==<br />
<br />
=== Просмотр журнала и текущего состояния Apache ===<br />
<br />
Текущее состояние службы {{ic|httpd}} вы можете вывести командой {{ic|systemctl status httpd}}.<br />
<br />
Лог-файлы Apache вы найдете в каталоге {{ic|/var/log/httpd}}.<br />
<br />
=== PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Если вы получаете такую ошибку, закомментируйте строку:<br />
<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
в файле настроек Apache.<br />
<br />
=== Обновление с Apache 2.2 до 2.4 ===<br />
<br />
Если вы используете {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Управление доступом было изменено. Приведите все директивы {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} к новому синтаксису с {{ic|Require}}. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Подробную информацию вы найдете на странице [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2].<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить {{ic|mpm_event_module}} на {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
# LoadModule mpm_event_module modules/mod_mpm_event.so<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]<br />
<!-- этого нет в англоязычной статье --><br />
* [https://mariadb.org/ Официальный сайт MariaDB]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
<!-- /этого нет в англоязычной статье --></div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=346134Apache HTTP Server (Русский)2014-11-24T13:48:03Z<p>Lkzcover: Взял страницу на поддержку</p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:ru:Apache|Apache HTTP Server]], или сокращенно Apache — популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию часто называют [[Wikipedia:ru:LAMP|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache и как интегрировать с ним [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужно быстро создать окружение для разработки и тестирования, то можете просто установить [[Xampp (Русский)|Xampp]].<br />
<br />
==Установка==<br />
[[Установите]] пакет {{Pkg|apache}}, доступный в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
== Настройка ==<br />
<br />
Файлы настроек Apache находятся в {{ic|/etc/httpd/conf}}. Основным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, который может по ссылкам включать в себя дополнительные файлы с настройками. В большинстве случаев, будет достаточно стандартных настроек из этого файла. По умолчанию, корневым каталогом веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для старта Apache, [[запустите]] службу {{ic|httpd.service}}.<br />
<br />
После этих действий Apache должен запуститься. Проверьте, работает ли он, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
=== Дополнительные опции ===<br />
<br />
Следующие опции (''директивы'') в {{ic|/etc/httpd/conf/httpd.conf}} могут быть вам интересны:<br />
<br />
User http<br />
Group http<br />
<br />
:По соображениям безопасности, при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которых выполняется процесс сервера. По умолчанию, используется группа {{ic|http}} и пользователь {{ic|http}}, которые не имеют привилегированных полномочий в системе.<br />
<br />
Listen 80<br />
:Это порт, на котором Apache принимает входящие соединения. Если сервер имеет выход в интернет через маршрутизатор, необходимо будет настроить форвардинг этого порта.<br />
<br />
:Если вы используете Apache для разработки и тестирования, вы можете разрешить только локальный доступ к нему. Для этого укажите {{ic|Listen 127.0.0.1:80}}.<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать указанный почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
<br />
:Измените ее, если нужно, но не забудьте также поменять путь в директиве {{ic|<Directory "/srv/http">}} на новое расположение {{ic|DocumentRoot}}, иначе вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новому корневому каталогу Apache. Также не забудьте изменить строку {{ic|Require all denied}}, иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Запрещает переопределение настроек. Если в секции {{ic|<Directory>}} указана эта директива, Apache будет полностью игнорировать файлы {{ic|.htaccess}} в каталоге. Если вы собираетесь использовать {{ic|mod_rewrite}} или указывать какие-то дополнительные настройки в файлах {{ic|.htaccess}}, вы можете разрешить только определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride документации Apache].<br />
<br />
{{Tip (Русский)|Вы можете проверить корректность настроек Apache без запуска самого сервера командой {{ic|apachectl configtest}}.}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}:<br />
<br />
Чтобы отключить вывод версии Apache в генерируемых сервером страницах, укажите:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы убрать вывод версий Apache и подключенных модулей в HTTP-заголовках ответов, добавьте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
<br />
По умолчанию, доступ к каталогам пользователей возможен по адресу {{ic|<nowiki>http://localhost/~''user''/</nowiki>}}, который показывает содержимое каталога {{ic|~/public_html}} (его имя и расположение задается в файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Убедитесь, что права доступа к вашему домашнему каталогу и {{ic|~/public_html}} позволяют получать доступ к файлам в них '''всем''' другим пользователям:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== TLS/SSL ===<br />
<br />
Для использования TLS/SSL, необходимо установить {{pkg|openssl}}.<br />
<br />
Создайте [[Wikipedia:ru:самозаверенный сертификат]] (вы можете настроить длину ключа и срок его действия):<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -out server.key 2048<br />
# chmod 600 server.key<br />
# openssl req -new -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Затем в {{ic|/etc/httpd/conf/httpd.conf}} раскомментируйте следующие строки:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
=== Виртуальные хосты ===<br />
<!-- раздел не синхронизирован с англоязычной версией --><br />
<br />
Если вы хотите, чтобы Apache обслуживал множество хостов, раскомментируйте следующую строку в файле в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
{{bc|<br />
Include conf/extra/httpd-vhosts.conf<br />
}}<br />
<br />
В конфигурационном файле {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} настройте виртуальные хосты по нижеследующему примеру (по умолчанию файл уже содержит подробно разобранный пример, что должно помочь вам в начале работы с файлом):<br />
{{hc|/etc/httpd/conf/extra/httpd-vhosts.conf|<br />
'''NameVirtualHost *:80''' # используем виртуальные хосты, основанные на доменных именах<br />
<br />
#this first virtualhost enables: http://127.0.0.1, or: http://localhost, <br />
#to still go to /srv/http/*index.html(otherwise it will 404_error).<br />
#the reason for this: once you tell httpd.conf to include extra/httpd-vhosts.conf, <br />
#ALL vhosts are handled in httpd-vhosts.conf(including the default one),<br />
# E.G. the default virtualhost in httpd.conf is not used and must be included here, <br />
#otherwise, only domainname1.dom & domainname2.dom will be accessible<br />
#from your web browser and NOT http://127.0.0.1, or: http://localhost, etc.<br />
#<br />
<br />
<VirtualHost *:80><br />
DocumentRoot "/srv/http"<br />
ServerAdmin root@localhost<br />
ErrorLog "/var/log/httpd/127.0.0.1-error_log"<br />
CustomLog "/var/log/httpd/127.0.0.1-access_log" common<br />
<Directory /srv/http/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost *:80><br />
ServerAdmin your@domainname1.dom<br />
DocumentRoot "/home/username/yoursites/domainname1.dom/www"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
<Directory /home/username/yoursites/domainname1.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost *:80><br />
ServerAdmin your@domainname2.dom<br />
DocumentRoot "/home/username/yoursites/domainname2.dom/www"<br />
ServerName domainname2.dom<br />
ServerAlias domainname2.dom<br />
<Directory /home/username/yoursites/domainname2.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
}}<br />
<br />
Теперь добавьте имена для виртуальных хостов в файл {{ic|/etc/hosts}} (это не является обязательным мероприятием, если DNS-сервер уже настроен на обслуживание соответствующих доменов, хотя и не станет лишним):<br />
{{bc|127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom}}<br />
<br />
Перезапустите {{ic|httpd.service}} чтобы применить изменения.<br />
<br />
Если вы установили виртуальные хосты внутри вашей пользовательской директории, в некоторых случаях это может конфликтовать с настройками Apache для {{ic|Userdir}}. Для того чтобы эту проблему обойти, отключите {{ic|Userdir}}, закомментировав строку:<br />
{{bc|<br />
# User home directories<br />
#Include conf/extra/httpd-userdir.conf}}<br />
<br />
Как было указано выше, убедитесь в правах доступа:<br />
# chmod 0775 /home/''yourusername''/<br />
<br />
==== Управление большим количеством виртуальных хостов ====<br />
<br />
Если Apache используется для обслуживания очень большого количества виртуальных хостов, вам может быть полезна возможность их легко включать и отключать. Для этого рекомендуется создавать собственный файл настроек на каждый хост и хранить все эти файлы в одном каталоге, например {{ic|/etc/httpd/conf/vhosts}}.<br />
<br />
Создайте каталог:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Теперь создайте в нем отдельные конфигурационные файлы:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
...<br />
<br />
И включите эти файлы в основной файл настроек {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
...<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты, просто закомментировав или раскомментировав соответствующие директивы {{ic|Include}} в основном файле настроек.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
=== Git ===<br />
<br />
Его установка достаточно проста: все, что вам понадобится — это веб-сервер Apache ({{pkg|apache}}, с включенными {{ic|mod_cgi}}, {{ic|mod_alias}}, и {{ic|mod_env}}) и, конечно же, {{pkg|git}}.<br />
<br />
Добавьте следующие строки в файл настроек Apache, который обычно находится в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<Directory "/usr/lib/git-core*"><br />
Require all granted<br />
</Directory><br />
<br />
SetEnv GIT_PROJECT_ROOT /srv/git<br />
SetEnv GIT_HTTP_EXPORT_ALL<br />
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/<br />
<br />
В приведенном выше примере предполагается, что ваши репозитории git находятся в {{ic|/srv/git}} и доступ к ним осуществляется через адрес вида {{ic|<nowiki>http(s)://your_address.tld/git/your_repo.git</nowiki>}}. По желанию, вы можете поменять эти значения. Не забудьте убедиться в том, что Apache имеет возможность производить чтение и запись (если вы хотите иметь возможность отправлять изменения) в ваших репозиториях git.<br />
<br />
Более подробная документация доступна по следующим ссылкам:<br />
<br />
* http://progit.org/2010/03/04/smart-http.html<br />
* https://www.kernel.org/pub/software/scm/git/docs/v1.7.10.1/git-http-backend.html<br />
<br />
== Расширения ==<br />
<br />
=== PHP ===<br />
<br />
[[Установите]] [[PHP]] с пакетами {{pkg|php}} и {{pkg|php-apache}}, доступными в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}}, не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него следует использовать {{ic|mod_mpm_prefork}}. В противном случае, вы получите следующее сообщение об ошибке:<br />
<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и поменяйте строку<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
Также вы можете просто использовать {{ic|mod_proxy_fcgi}} (смотрите [[#Использование php5 c php-fpm и mod_proxy_fcgi]]).<br />
}}<br />
<br />
Чтобы включить модуль PHP, добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите эту строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
<!-- этого нет в англоязычной статье --><br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в список {{ic|open_basedir}} в {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:''/путь/до/корневого/каталога''<br />
<br />
[[Перезапустите]] службу {{ic|httpd.service}}, чтобы изменения вступили в силу.<br />
<br />
Чтобы убедиться в том, что PHP настроен корректно, создайте файл {{ic|test.php}} в каталоге {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<br />
<?php phpinfo(); ?><br />
<br />
По адресу <nowiki>http://localhost/test.php</nowiki> или <nowiki>http://localhost/''~пользователь''/test.php</nowiki> вы должны увидеть информационную страницу PHP.<br />
<br />
<!-- этого нет в англоязычной статье --><br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
Дополнительную информацию вы можете получить на странице [[PHP]].<br />
<!-- этого нет в англоязычной статье --><br />
<br />
==== Дополнительные параметры ====<br />
<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<!-- /этого нет в англоязычной статье --><br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличие от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* [[Установите]] {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если у вас добавлен модуль php, уберите его, так как он больше не нужен:<br />
#LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Перезапустите]] демон apache php-fpm:<br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}}, доступные в [[Official repositories (Русский)|официальных репозиториях]].<br />
<br />
* Создайте файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте каталог и символическую ссылку в нем на ''php-cgi'':<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
и [[перезапустите]] службу {{ic|httpd.service}}.<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Пример конфигурации вы можете найти на странице [http://wiki.apache.org/httpd/PHP-FPM].}}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Установите и настройте MySQL/MariaDB так, как описано в [[MySQL (Русский)|MySQL]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php хотя бы одну] из следующих строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
<br />
{{Warning (Русский)|Начиная с PHP 5.5, библиотека {{ic|mysql.so}} считается [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Теперь вы можете добавить в базу новых пользователей с ограниченными правами для доступа к базе из ваших веб-приложений. Вы также можете ограничить доступ к базе данных, разрешив подключаться только локально: для этого раскомментируйте опцию {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. [[Перезапустите]] {{ic|mysqld.service}}, чтобы изменения вступили в силу.<br />
<br />
{{Tip (Русский)|Возможно, вы захотите установить инструменты для управления базой данных [[PhpMyAdmin (Русский)|PhpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Решение проблем ==<br />
<br />
=== Просмотр журнала и текущего состояния Apache ===<br />
<br />
Текущее состояние службы {{ic|httpd}} вы можете вывести командой {{ic|systemctl status httpd}}.<br />
<br />
Лог-файлы Apache вы найдете в каталоге {{ic|/var/log/httpd}}.<br />
<br />
=== PID file /run/httpd/httpd.pid not readable (yet?) after start ===<br />
<br />
Если вы получаете такую ошибку, закомментируйте строку:<br />
<br />
LoadModule unique_id_module modules/mod_unique_id.so<br />
<br />
в файле настроек Apache.<br />
<br />
=== Обновление с Apache 2.2 до 2.4 ===<br />
<br />
Если вы используете {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Управление доступом было изменено. Приведите все директивы {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} к новому синтаксису с {{ic|Require}}. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Подробную информацию вы найдете на странице [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2].<br />
<br />
=== Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить {{ic|mpm_event_module}} на {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
# LoadModule mpm_event_module modules/mod_mpm_event.so<br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]<br />
<!-- этого нет в англоязычной статье --><br />
* [https://mariadb.org/ Официальный сайт MariaDB]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
<!-- /этого нет в англоязычной статье --></div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=User:Lkzcover&diff=346133User:Lkzcover2014-11-24T13:45:44Z<p>Lkzcover: </p>
<hr />
<div>== ArchWiki pages maintained by me ==<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Translated page<br />
! Original (English) page<br />
! Last checked<br />
|-<br />
| [[Apache HTTP Server (Русский) ]] || [[Apache HTTP Server]] || 2014-11-22 04:23||<br />
|}<br />
<br />
== About me ==<br />
<br />
'''Pavel Novokshonov'''<br />
<br />
mail: lkzcover@gmail.com</div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=ArchWiki:Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=346132ArchWiki:Translation Team (Русский)2014-11-24T13:45:08Z<p>Lkzcover: Поддержка новой страницы (Apache HTTP Server)</p>
<hr />
<div>[[Category:ArchWiki (Русский)]]<br />
[[Category:Русский]]<br />
[[ar:ArchWiki Translation Team]]<br />
[[el:ArchWiki Translation Team]]<br />
[[en:ArchWiki Translation Team]]<br />
[[es:ArchWiki Translation Team]]<br />
[[hr:ArchWiki Translation Team]]<br />
[[it:ArchWiki Translation Team]]<br />
[[ja:ArchWiki Translation Team]]<br />
[[pl:ArchWiki Translation Team]]<br />
[[pt:ArchWiki Translation Team]]<br />
[[tr:ArchWiki_Çeviri_Ekibi]]<br />
[[zh-CN:ArchWiki Translation Team]]<br />
{{Related articles start (Русский)}}<br />
{{Related|День перевода ArchWiki}}<br />
{{Related articles end}}<br />
Эта страница содержит информацию о русской команде переводчиков [[ArchWiki:About (Русский)|ArchWiki]] и задачах, стоящих перед ней.<br />
<br />
{{Note (Русский)|Не вносите изменения в эту страницу, если вы не являетесь членом команды}}<br />
<br />
== О проекте ==<br />
<br />
=== Цели и задачи ===<br />
<br />
Цель проекта - предоставление русскоязычным пользователям Archlinux как можно более полной документации по дистрибутиву и всему, что с ним связано. Для осуществления этой цели мы выполняем следующие задачи:<br />
<br />
* Перевод на русский язык документации по дистрибутиву Arch Linux<br />
* Поддержание статей в актуальном состоянии<br />
* Написание собственных статей или информации, дополняющей другие статьи<br />
<br />
=== Команда ===<br />
<br />
Список наших переводчиков:<br />
<br />
* [[User:Agent0|Agent0]]<br />
* [[User:Blackx|Blackx]]<br />
* [[User:Kycok|Kycok]]<br />
* [[User:Lkzcover|Lkzcover]]<br />
* [[User:Morion|Morion]]<br />
* [[User:Natrio|Natrio]]<br />
Для вступления в команду просто начните поддерживать статьи (желательно из [[Special:WhatLinksHere/Template:Unmaintained (Русский)|этого]] списка) и обратитесь к одному из наших участников.<br />
<br />
== Вклад в общее дело ==<br />
<br />
Оперативная поддержка страниц — важнейший элемент, определяющий успешность выполнения поставленной [[#Цели и задачи|цели]]. Вы можете помочь нашему проекту, вступив в команду или просто создавая/переводя/улучшая статьи русскоязычного сегмента. Если при этом у вас возникнут вопросы и вам потребуется помощь, вы всегда можете обратиться к любому из [[#Команда|участников]] проекта.<br />
<br />
{{Warning (Русский)|Если вы желаете нам помочь с переводом какой-либо статьи, пожалуйста, сообщите нам об этом на [[Talk:ArchWiki Translation Team (Русский)#Список страниц, переводимых в настоящий момент|странице обсуждения]]. Это необходимо для того, чтобы избежать выполнения одной и той же работы разными людьми}}<br />
<br />
=== С чего начать? ===<br />
<br />
# Если вы не знаете, как редактировать страницы ArchWiki, ознакомьтесь со статьей [[Help:Редактирование]]. Там также описаны стандарты форматирования<br />
# Рекомендуем ознакомиться с [[Help:i18n (Русский)]]. Там содержится полезная информация, связанная с интернационализацией и локализацией ArchWiki<br />
# [[Special:UserLogin|Авторизируйтесь]], чтобы иметь возможность редактировать страницы ArchWiki<br />
# Выберите любую статью (желательно из тех, которые [[Special:WhatLinksHere/Template:Unmaintained (Русский)|уже созданы, но требуют перевода]]), кажущуюся вам наиболее полезной и/или интересной, и создайте/обновите ее перевод <br> '''Дальнейшие шаги предназначены для тех, кто хочет вступить в нашу команду:'''<br />
# Напишите одному из наших [[#Команда|участников]] (для этого можно использовать их страницы обсуждения) о желании вступить в команду и заниматься поддержкой выбранной вами страницы<br />
# Удалите из выбранной страницы шаблон [[Template:Unmaintained (Русский)]]<br />
<br />
Начальный объём работы зависит от того, как долго страница находилась без поддержки. Первым делом нужно оценить информацию на актуальность и синхронизировать её с английским вариантом.<br />
<br />
Если какая-то информация отсутствует в русскоязычном варианте, можно скопировать текст из английской статьи и переводить его по частям. В этом случае не забудьте добавить в статью или раздел с непереведённым текстом шаблон [[Template:Translateme (Русский)]].<br />
<br />
=== Что нужно будет делать? ===<br />
<br />
Под поддержкой страницы подразумевается:<br />
<br />
* Отслеживание изменений в англоязычном и русскоязычном вариантах страницы<br />
* Перевод добавленной/изменённой информации или отмена контрпродуктивных правок<br />
* Максимально возможная синхронизация расположения всех элементов между русской и английской страницами<br />
<br />
=== Какие страницы требуют поддержки? ===<br />
<br />
Список статей, требующих сопроводителя (или, хотя бы, одноразового перевода), доступен на странице [[Special:WhatLinksHere/Template:Unmaintained (Русский)]].<br />
<br />
Однако, вы можете помочь поддерживать большие и важные статьи, которые уже сопровождаются кем-то другим, при условии согласованности ваших действий.<br />
<br />
=== Как отказаться от сопровождения страницы? ===<br />
<br />
Если по какой-либо причине вы больше не хотите сопровождать страницу, добавьте в неё шаблон [[Template:Unmaintained (Русский)]] и удалите страницу из [[#Список страниц с сопроводителем|списка страниц с сопроводителем]] ниже, чтобы другие участники были уведомлены об этом и, возможно, взяли на себя её поддержку.<br />
<br />
== Термины ==<br />
<br />
Есть множество терминов, которые можно перевести по-разному. Использование одних и тех же слов для их перевода во всех русскоязычных статьях является очень важным, поскольку единство терминологии упрощает понимание текста. Здесь представлен список терминов и переводов, которые должны использоваться.<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Английский<br />
! Русский<br />
! Допустимое (в особых случаях)<br />
|-<br />
| Alias || Псевдоним || Псевдоним (алиас)<br />
|-<br />
| Backend || Бэкенд || -<br />
|-<br />
| Binary (n.) || Бинарный/двоичный файл || -<br />
|-<br />
| Bug report || Отчет об ошибке || Отчет об ошибке (баг-репорт)<br />
|-<br />
| Directory || Каталог || Директория<br />
|-<br />
| GUI frontend || Графическая оболочка || -<br />
|-<br />
| Hook || Хук || Хук-скрипт<br />
|-<br />
| Host || Хост || Узел (host)<br />
|-<br />
| Hostname || Имя хоста || Имя узла (hostname)<br />
|-<br />
| Kernel || Ядро || -<br />
|-<br />
| Section || Раздел || -<br />
|-<br />
| Service || Служба || Служба (''.service'')<br />
|-<br />
| Service file || Файл службы || Файл службы (''.service'')<br />
|-<br />
| Session || Сеанс || -<br />
|-<br />
| [[Wikipedia:Source (command)|Source]] (v.) || Запустите команду {{ic|source .bashrc}} || -<br />
|-<br />
| Terminal pager, pager program || Программа постраничного просмотра || -<br />
|-<br />
| Time zone || Часовой пояс || Временная зона<br />
|-<br />
| Tmpfile || Временный файл || -<br />
|-<br />
| Unit file || Файл юнита || -<br />
|}<br />
<br />
== Список проверки ==<br />
<br />
Перед тем, как опубликовать страницу, рекомендуется проверить следующее:<br />
<br />
# Название статьи: оно должно соответствовать английскому варианту (подробности: [[Help:Указания по выбору имен статей#Многоязычные статьи]]). Также проверьте правильность использования заглавных букв (подробности: [[Help:Стиль#Заголовок]])<br />
# Категории: статья должна принадлежать к тем же (русским) категориям, что и английский вариант, а также к категории [[:Category:Русский|Русский]]. Пример: сравните категории, к которым принадлежат страницы [[systemd]] и [[systemd (Русский)]]<br />
# Межъязыковые ссылки: должны присутствовать все межъязыковые ссылки, имеющиеся в английской статье, плюс ссылка на английскую статью (подробности: [[Help:I18n (Русский)#Межъязыковые ссылки]])<br />
# Статус перевода: если вы используете шаблон [[Template:TranslationStatus (Русский)]], необходимо обновить его аргументы (дату и номер версии английской статьи)<br />
# Описание изменений: его необходимо указывать '''при каждой правке''' (подробности: [[Help:Стиль#Краткое описание изменений]])<br />
<br />
Теперь можно смело сохранять страницу. Если вы создали новую страницу (а не обновили ее), обязательно выполните следующие действия:<br />
<br />
# Создайте русские межъязыковые ссылки на страницах '''всех''' остальных языков<br />
# Зайдите на английскую версию страницы. В меню слева нажмите на ссылку ''Ссылки сюда'' и проверьте, есть ли в списке русские статьи. Скорее всего, они будут. В этом случае отредактируйте каждую такую статью, чтобы русские страницы ссылались на вашу новую страницу, а не на английскую. Для удобства используйте функцию поиска в вашем браузере<br />
# Если название статьи можно перевести на русский язык, создайте [[Help:Editing (Русский)#Перенаправления|перенаправление]] с [[Help:Article naming guidelines (Русский)#Многоязычные статьи|локализованным заголовком]]. Примеры таких статей можно найти в разделе [[#Список страниц с сопроводителем]]<br />
<br />
Если вы являетесь членом русской команды переводчиков [[ArchWiki:About (Русский)|ArchWiki]], не забудьте добавить статью в [[#Список страниц с сопроводителем]].<br />
<br />
== Текущие задачи ==<br />
<br />
== Список страниц с сопроводителем ==<br />
<br />
В этой таблице представлен список страниц, которые поддерживаются в рамках проекта.<br />
<br />
В столбце ''Заметки'' вы, в частности, можете попросить помощи с переводом какого-либо раздела статьи, которую вы сопровождаете. При этом обязательно используйте шаблон [[Template:Translateme (Русский)]] и скопируйте в раздел свежий английский текст, чтобы тому участнику, который захочет вам помочь, не приходилось искать его самостоятельно.<br />
<br />
{{Warning (Русский)|Пожалуйста, не просите помощи с переводом, если вы собираетесь самостоятельно его завершить. У других участников ArchWiki всегда есть то, чем необходимо заняться}}<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Страница<br />
! Локализованный заголовок<br />
! Сопроводитель<br />
! width="40%" | Заметки<br />
|-<br />
| [[Allow users to shutdown (Русский)]] || [[Разрешить пользователям выключение системы]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Apache HTTP Server (Русский) ]] || Не требуется || [[User:Lkzcover|Lkzcover]] || -<br />
|-<br />
| [[Arch Linux (Русский)]] || Не требуется || [[User:Morion|Morion]] || -<br />
|-<br />
| [[Arch User Repository (Русский)]] || [[Пользовательский репозиторий Arch]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Arch64 FAQ (Русский)]] || [[Arch64 ЧаВо]] || [[User:Morion|Morion]] || -<br />
|-<br />
| [[Beginners' guide (Русский)]] || [[Руководство для новичков]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Bluetooth (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Brother DCP-7030 (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Chromium (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[Cinnamon (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Console mouse support (Русский)]] || [[Поддержка мыши в консоли]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[dhcpcd (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[dhcpd (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Desktop environment (Русский)]] || [[Среда рабочего стола]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Display manager (Русский)]] || [[Экранный менеджер]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Enhance system stability (Русский)]] || [[Повышение стабильности системы]] || [[User:Morion|Morion]] || -<br />
|-<br />
| [[Environment variables (Русский)]] || [[Переменные окружения]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Extra keyboard keys (Русский)]] || [[Дополнительные клавиши]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[FAQ (Русский)]] || [[ЧаВо]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Firefox (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[fstab (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[General recommendations (Русский)]] || [[Основные рекомендации]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Getting involved (Русский)]] || [[Принять участие]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[GNOME (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[GnuPG (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[GRUB (Русский)]] || Не требуется || [[User:Natrio|Natrio]] || -<br />
|-<br />
| [[Help:Article naming guidelines (Русский)]] || [[Help:Указания по выбору имен статей]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Help:Editing (Русский)]] || [[Help:Редактирование]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Help:Style (Русский)]] || [[Help:Стиль]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Installation guide (Русский)]] || [[Руководство по установке]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Internet sharing (Русский)]] || [[Раздача интернета]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[iptables (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[IPv6 (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[IRC channels (Русский)]] || [[IRC-каналы]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Java (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Kcaldav (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[List of applications (Русский)]] || [[Список приложений]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Locale (Русский)]] || Заголовок занят || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[MAC address spoofing (Русский)]] || [[Смена MAC адреса]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Main page (Русский)]] || [[Заглавная страница]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[man page (Русский)]] || [[Страница справочного руководства]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[MATE (Русский)]] || Не требуется || [[User:Morion|Morion]] || -<br />
|-<br />
| [[Midnight Commander (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Mpv (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[Nessus (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Netctl (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Network configuration (Русский)]] || [[Настройка сети]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Network Security Services (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[Official repositories (Русский)]] || [[Официальные репозитории]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[pacman (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Pacnew and Pacsave files (Русский)]] || [[Файлы Pacnew и Pacsave]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Pidgin (Русский)]] || Не требуется || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[PKGBUILD (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Pppd (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[PPTP server (Русский)]] || [[Сервер PPTP]] || - || -<br />
|-<br />
| [[Qt (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Reporting Bug Guidelines (Русский)]] || [[Указания по созданию отчета об ошибке]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Samba (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Samba/Troubleshooting (Русский)]] || [[Samba/Решение проблем]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Secure Shell (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[SSH keys (Русский)]] || [[Ключи SSH]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Start X at login (Русский)]] || [[Запуск X при входе]] || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Sudo (Русский)]] || Не требуется || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Syslinux (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[systemd (Русский)]] || Не требуется || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[The Arch Way (Русский)]] || [[Философия Arch]] || [[User:Kycok|Kycok]] || -<br />
|-<br />
| [[Tox (Русский)]] || Не требуется || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Udev (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[VA-API (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[VDPAU (Русский)]] || Не требуется || - || [[VDPAU (Русский)#Поддерживаемое программное обеспечение]]: переведено (некоторыми программами не пользуюсь, но это лучше, чем ждать тех, кто пользуется). Пожалуйста, отследи, будет ли исправлено форматирование этого списка<br />
|-<br />
| [[Wine (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[WPA supplicant (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Xfce (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|-<br />
| [[Yakuake (Русский)]] || Не требуется || - || -<br />
|-<br />
| [[Yandex Disk (Русский)]] || [[Яндекс.Диск]] || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Yaourt (Русский)]] || Не требуется || [[User:Agent0|Agent0]] || -<br />
|-<br />
| [[Zabbix (Русский)]] || Не требуется || [[User:Blackx|Blackx]] || -<br />
|}</div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=User:Lkzcover&diff=346131User:Lkzcover2014-11-24T13:43:02Z<p>Lkzcover: Created page with "== ArchWiki pages maintained by me == {| class="wikitable sortable collapsible" style="text-align: left; width: 100%;" |- ! Translated page ! Original (English) page ! Las..."</p>
<hr />
<div>== ArchWiki pages maintained by me ==<br />
<br />
{| class="wikitable sortable collapsible" style="text-align: left; width: 100%;"<br />
|-<br />
! Translated page<br />
! Original (English) page<br />
! Last checked<br />
! Rank<br />
|-<br />
| [[Apache HTTP Server (Русский) ]] || [[Apache HTTP Server]] || 2014-11-22 04:23||<br />
|}<br />
<br />
== About me ==<br />
<br />
'''Pavel Novokshonov'''<br />
<br />
mail: lkzcover@gmail.com</div>Lkzcoverhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=345666Apache HTTP Server (Русский)2014-11-22T01:23:52Z<p>Lkzcover: Синхронизировано с английским вариантом</p>
<hr />
<div>[[Category:Web Server (Русский)]]<br />
[[Category:Русский]]<br />
[[cs:LAMP]]<br />
[[de:LAMP Installation]]<br />
[[el:LAMP]]<br />
[[en:LAMP]]<br />
[[es:LAMP]]<br />
[[fr:Lamp]]<br />
[[it:LAMP]]<br />
[[ja:LAMP]]<br />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
{{Related articles start (Русский)}}<br />
{{Related|PHP}}<br />
{{Related|MySQL (Русский)}}<br />
{{Related|PhpMyAdmin (Русский)}}<br />
{{Related|Adminer}}<br />
{{Related|Xampp (Русский)}}<br />
{{Related|mod_perl}}<br />
{{Related articles end}}<br />
{{Unmaintained (Русский)}}<br />
<br />
<!-- {{Out of date (Русский)|This page may need update since last apache version since it still referenced apache24 as the "next apache"}} --><br />
[[Wikipedia:Apache HTTP Server|Apache HTTP Server]], или сокращенно Apache, популярный веб-сервер, разработанный Apache Software Foundation.<br />
<br />
Apache часто используется вместе с языком сценариев PHP и базой данных MySQL. Такую комбинацию часто называют [[Wikipedia:LAMP (software bundle)|LAMP]] ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP). Эта статья объясняет, как настроить Apache, а так же, как интегрировать в него [[PHP]] и [[MySQL]].<br />
<br />
Если вам нужен настроенный сервис для разработки и тестирования, то можете просто установить [[Xampp]].<br />
<br />
==Установка==<br />
[[pacman|Установите]] {{Pkg|apache}} из [[official repositories|официального репозитория]].<br />
<br />
==Настройка==<br />
<br />
Конфигурационные файлы Apache находятся в {{ic|/etc/httpd/conf}}. Основным конфигурационным файлом является {{ic|/etc/httpd/conf/httpd.conf}}, он содержит различные инструкциями для сервера. Для простой установки, прекрасно подходят стандартные настройки этого файла. По умолчанию, основной директорией веб-сервера является {{ic|/srv/http}}.<br />
<br />
Для начала работы Apache, запустите {{ic|httpd.service}} с помощью [[systemd#Using units|systemd]].<br />
<br />
$ systemctl start httpd.service<br />
<br />
После этих мероприятий Apache должен запуститься. Протестируйте его работоспособность, набрав в адресной строке браузера {{ic|http://localhost/}}. Веб-сервер должен отправить вам простую тестовую страничку.<br />
<br />
При необходимости дальнейшей настройки сервера смотрите следующие разделы.<br />
<br />
===Расширенные параметры===<br />
<br />
Следующие настройки в {{ic|/etc/httpd/conf/httpd.conf}} могут быть интересны для вас:<br />
<br />
User http<br />
:По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя (UID), от имени которого сервер начинает. По умолчанию значения идентификаторов равны http, и берутся из конфигурационного файла. Происходит передача управления работой сервера от пользователя root к пользователю http, не имеющего привилегированных полномочий в операционной системе.<br />
<br />
Listen 80<br />
:Это TCP-порт, через который Apache обменивается данными с внешним миром.<br />
:Если вы используете Apache для разработки и локального тестирования, то можно настроить доступ к нему только через localhost. Для этого поменяйте вышеозначенную строку на: {{ic|Listen 127.0.0.1:80}}<br />
<br />
ServerAdmin you@example.com<br />
:Страница ошибки Apache может содержать почтовый адрес администратора веб-сервера.<br />
<br />
DocumentRoot "/srv/http"<br />
:Это корневая директория Apache, в которой можно разместить ваши веб-страницы.<br />
:Измените ее, если нужно, но не забудьте, так же, изменить {{ic|<Directory "/srv/http">}} в соответствии с новым значение {{ic|DocumentRoot}}, в противно случае вы, скорее всего, получите сообщение об ошибке '''403 Error''' (недостаточно полномочий) при попытке получить доступ к новой корневой папке Apache. Так же не забудьте изменить строку {{ic|Require all denied}} иначе снова получите ошибку '''403 Error'''.<br />
<br />
AllowOverride None<br />
:Эта директива в секции {{ic|<Directory>}} позволяет Apache полностью игнорировать файл {{ic|.htaccess}}. Если вы собираетесь использовать {{ic|mod_rewrite}} или другие параметры в файла {{ic|.htaccess}}, вы можете разрешить определенные директивы, которые могут изменять конфигурацию сервера. Для получения дополнительной информации обратитесь к [http://httpd.apache.org/docs/current/mod/core.html#allowoverride Apache документации].<br />
<br />
{{Tip (Русский)|Если у вас есть проблемы с настройками вашего Apache, то можно проверить их с помощью команды:{{ic|apachectl configtest}}}}<br />
<br />
Дополнительные настройки можно найти в {{ic|/etc/httpd/conf/extra/httpd-default.conf}}.<br />
Чтобы отключить сигнатуры вашего сервера используйте:<br />
<br />
ServerSignature Off<br />
<br />
Чтобы скрыть информацию о версиях Apache и PHP используйте:<br />
<br />
ServerTokens Prod<br />
<br />
=== Пользовательские каталоги ===<br />
По умолчанию доступ к пользовательским каталогам возможен по адресу {{ic|http://localhost/~user/}}, который показывает содержимое директории {{ic|~/public_html}} (расположение этой директории можно изменить в конфигурационном файле {{ic|/etc/httpd/conf/extra/httpd-userdir.conf}}).<br />
<br />
Если вы не хотите, чтобы пользовательские каталоги были доступны через web, закомментируйте следующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-userdir.conf<br />
<br />
Обязательно убедитесь, что права доступа на вашу домашнюю директорию назначены корректно, чтобы Apache смог получить доступ к ней. Ваш домашний каталог и {{ic|~/public_html/}} должны быть исполняемыми для "остального мира":<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html <br />
<br />
Однако с точки зрения безопасности вышеприведенное решение слишком фривольно. Правильнее поступить по-другому. Сначала добавьте пользователя '''http''' в группу, которой принадлежит ваша домашняя папка. Например, если ваша домашняя папка и все ее подкаталоги принадлежат группе '''piter''', можно проделать следующее:<br />
# usermod -aG piter http<br />
или<br />
# gpasswd -a http piter<br />
<br />
После этого назначьте права на ''чтение'' и ''исполнение'' для каталогов {{ic|~/}}, {{ic|~/public_html}} и, рекурсивно, на остальные подкаталоги для {{ic|~/public_html}} для членов группы (в нашем примере для членов группы '''piter'''). Опираясь на нижеприведенный шаблон, осуществите эти мероприятия:<br />
$ chmod g+xr-w /home/''yourusername''<br />
$ chmod -R g+xr-w /home/''yourusername''/public_html<br />
<br />
{{Note (Русский)|Таким образом, только пользователь '''http''' и все потенциальные пользователи группы '''piter''' будут иметь разделяемый доступ к вашему домашнему каталогу.}}<br />
<br />
Перезапустите {{ic|httpd.service}} чтобы применить изменения.<br />
<br />
=== TLS/SSL ===<br />
Для использования TLS/SSL, вы должны установить {{pkg|openssl}}.<br />
<br />
Создайте [http://ru.wikipedia.org/wiki/Самозаверенный_сертификат самозаверенный сертификат] (вы можете настроить длину ключа и срок его действия):<br />
# cd /etc/httpd/conf<br />
# openssl genrsa -out server.key 2048<br />
# chmod 600 server.key<br />
# openssl req -new -key server.key -out server.csr<br />
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt<br />
<br />
Затем в {{ic|/etc/httpd/conf/httpd.conf}} раскомментируйте строки, содержащие:<br />
LoadModule ssl_module modules/mod_ssl.so<br />
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so<br />
Include conf/extra/httpd-ssl.conf<br />
<br />
Перезапустите {{ic|httpd.service}} чтобы применить изменения.<br />
<br />
=== Виртуальные хосты ===<br />
Если вы хотите, чтобы Apache обслуживал множество хостов, раскомментируйте следующую строку в файле в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
{{bc|<br />
Include conf/extra/httpd-vhosts.conf<br />
}}<br />
<br />
В конфигурационном файле {{ic|/etc/httpd/conf/extra/httpd-vhosts.conf}} настройте виртуальные хосты по нижеследующему примеру (по умолчанию файл уже содержит подробно разобранный пример, что должно помочь вам в начале работы с файлом):<br />
{{hc|/etc/httpd/conf/extra/httpd-vhosts.conf|<br />
'''NameVirtualHost *:80''' # используем виртуальные хосты, основанные на доменных именах<br />
<br />
#this first virtualhost enables: http://127.0.0.1, or: http://localhost, <br />
#to still go to /srv/http/*index.html(otherwise it will 404_error).<br />
#the reason for this: once you tell httpd.conf to include extra/httpd-vhosts.conf, <br />
#ALL vhosts are handled in httpd-vhosts.conf(including the default one),<br />
# E.G. the default virtualhost in httpd.conf is not used and must be included here, <br />
#otherwise, only domainname1.dom & domainname2.dom will be accessible<br />
#from your web browser and NOT http://127.0.0.1, or: http://localhost, etc.<br />
#<br />
<br />
<VirtualHost *:80><br />
DocumentRoot "/srv/http"<br />
ServerAdmin root@localhost<br />
ErrorLog "/var/log/httpd/127.0.0.1-error_log"<br />
CustomLog "/var/log/httpd/127.0.0.1-access_log" common<br />
<Directory /srv/http/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost *:80><br />
ServerAdmin your@domainname1.dom<br />
DocumentRoot "/home/username/yoursites/domainname1.dom/www"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
<Directory /home/username/yoursites/domainname1.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost *:80><br />
ServerAdmin your@domainname2.dom<br />
DocumentRoot "/home/username/yoursites/domainname2.dom/www"<br />
ServerName domainname2.dom<br />
ServerAlias domainname2.dom<br />
<Directory /home/username/yoursites/domainname2.dom/www/><br />
DirectoryIndex index.htm index.html<br />
AddHandler cgi-script .cgi .pl<br />
Options ExecCGI Indexes FollowSymLinks MultiViews +Includes<br />
AllowOverride None<br />
Order allow,deny<br />
Allow from all<br />
</Directory><br />
</VirtualHost><br />
}}<br />
<br />
Теперь добавьте имена для виртуальных хостов в файл {{ic|/etc/hosts}} (это не является обязательным мероприятием, если DNS-сервер уже настроен на обслуживание соответствующих доменов, хотя и не станет лишним):<br />
{{bc|127.0.0.1 domainname1.dom <br />
127.0.0.1 domainname2.dom}}<br />
<br />
Перезапустите {{ic|httpd.service}} чтобы применить изменения.<br />
<br />
Если вы установили виртуальные хосты внутри вашей пользовательской директории, в некоторых случаях это может конфликтовать с настройками Apache для {{ic|Userdir}}. Для того чтобы эту проблему обойти, отключите {{ic|Userdir}}, закомментировав строку:<br />
{{bc|<br />
# User home directories<br />
#Include conf/extra/httpd-userdir.conf}}<br />
<br />
Как было указано выше, убедитесь в правах доступа:<br />
# chmod 0775 /home/''yourusername''/<br />
<br />
==== Обслуживание нескольких виртуальных хостов ====<br />
<br />
Если Apache предназначен для обслуживания очень большого количества виртуальных хостов, можно настроить легкое и быстрое включение/отключение последних. Для этого рекомендуется создать по одному конфигурационному файлу на каждый хост и хранить их все в одной папке, например {{ic|/etc/httpd/conf/vhosts}}. <br />
<br />
Сперва создайте папку:<br />
# mkdir /etc/httpd/conf/vhosts<br />
<br />
Затем поместите отдельные конфигурационные файлы в нее:<br />
# nano /etc/httpd/conf/vhosts/domainname1.dom<br />
# nano /etc/httpd/conf/vhosts/domainname2.dom<br />
<br />
Затем включите отдельные конфигурации в ваш {{ic|/etc/httpd/conf/httpd.conf}}:<br />
{{bc|<br />
#Enabled Vhosts:<br />
Include conf/vhosts/domainname1.dom<br />
Include conf/vhosts/domainname2.dom<br />
}}<br />
<br />
Теперь можно быстро включать/отключать требуемые виртуальные хосты путем простого раскомментирования/комментирования.<br />
<br />
Очень простой файл виртуального хоста будет выглядеть следующим образом:<br />
{{hc|/etc/httpd/conf/vhosts/domainname1.dom|<nowiki><br />
<VirtualHost domainname1.dom:80><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom<br />
ServerAlias domainname1.dom<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
</VirtualHost><br />
<br />
<VirtualHost domainname1.dom:443><br />
ServerAdmin webmaster@domainname1.dom<br />
DocumentRoot "/home/user/http/domainname1.dom"<br />
ServerName domainname1.dom:443<br />
ServerAlias domainname1.dom:443<br />
ErrorLog "/var/log/httpd/domainname1.dom-error_log"<br />
CustomLog "/var/log/httpd/domainname1.dom-access_log" common<br />
<br />
<Directory "/home/user/http/domainname1.dom"><br />
Require all granted<br />
</Directory><br />
<br />
SSLEngine on<br />
SSLCertificateFile "/etc/httpd/conf/server.crt"<br />
SSLCertificateKeyFile "/etc/httpd/conf/server.key"<br />
</VirtualHost></nowiki>}}<br />
<br />
=== Git ===<br />
<br />
Его установка достаточно проста, все, что вам понадобиться, это Apache веб-сервер ({{pkg|apache}}, с включенными {{ic|mod_cgi}}, {{ic|mod_alias}}, и {{ic|mod_env}})и, конечно же, {{pkg|git}}.<br />
<br />
Кроме того, добавьте следующие строки, в файл настройки вашего Apache, который находится в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<br />
<Directory "/usr/lib/git-core*"><br />
Require all granted<br />
</Directory><br />
<br />
SetEnv GIT_PROJECT_ROOT /srv/git<br />
SetEnv GIT_HTTP_EXPORT_ALL<br />
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/<br />
<br />
Приведенный выше пример конфигурации предполагает, что ваши Git репозитории находятся в {{ic|/srv/git}} и доступ к ним осуществляется через like http(s)://your_address.tld/git/your_repo.git. При необходимости вы можете изменить данные параметры. Не забудьте убедиться в том, что Apache может может производить чтение и запись (если вы хотите иметь возможность отправлять изменения) в ваших Git репозиториях.<br />
<br />
Более подробная документация доступна по следующим ссылкам:<br />
<br />
* http://progit.org/2010/03/04/smart-http.html<br />
* https://www.kernel.org/pub/software/scm/git/docs/v1.7.10.1/git-http-backend.html<br />
<br />
== Интеграция PHP и MySQL/MariaDB ==<br />
<br />
===PHP===<br />
<br />
Для интеграции [[PHP]], сначала [[pacman|установите]] {{pkg|php}} и {{pkg|php-apache}} из [[official repositories|официального репозитория]].<br />
<br />
{{Note (Русский)|1={{ic|libphp5.so}} входящий в {{pkg|php-apache}} не работает с {{ic|mod_mpm_event}} ({{bug|39218}}). Вместо него вы должны использовать {{ic|mod_mpm_prefork}}. В противном случае вы получите следующее сообщение об ошибке:<br />
{{bc|1=Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
AH00013: Pre-configuration failed<br />
httpd.service: control process exited, code=exited status=1}}<br />
<br />
<br />
Для использования {{ic|mod_mpm_prefork}}, откройте {{ic|/etc/httpd/conf/httpd.conf}} и замените<br />
{{bc|LoadModule mpm_event_module modules/mod_mpm_event.so}}<br />
на<br />
{{bc|LoadModule mpm_prefork_module modules/mod_mpm_prefork.so}}<br />
<br />
В качестве альтернативы, вы можете использовать {{ic|mod_proxy_fcgi}} (см. [[#Using php5 with php-fpm and mod_proxy_fcgi]]).<br />
}}<br />
<br />
Для включения PHP добавьте нижеследующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
* Поместите нижеследующую строку в любом месте после строки {{ic|LoadModule dir_module modules/mod_dir.so}}:<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* Разместите эту строку в конце списка {{ic|Include}}:<br />
Include conf/extra/php5_module.conf<br />
<br />
{{Note (Русский)|Если вы не обнаружите библиотеку {{ic|libphp5.so}} в каталоге ({{ic|/etc/httpd/modules}}), то вероятнее всего, что вы не установили {{Pkg|php-apache}}.}}<br />
<br />
Если ваш корневой каталог {{ic|DocumentRoot}} не {{ic|/srv/http}}, добавьте его в опцию {{ic|open_basedir}} файла {{ic|/etc/php/php.ini}}:<br />
open_basedir=/srv/http/:/home/:/tmp/:/usr/share/pear/:/path/to/documentroot<br />
<br />
Перезапустите {{ic|httpd.service}} [systemd#Using units|используя systemd]].<br />
<br />
Для определения того, корректно ли настроен PHP, создайте файл {{ic|test.php}} в директории {{ic|DocumentRoot}} (то есть в {{ic|/srv/http/}} или {{ic|~/public_html}}) и поместите в него следующий код:<br />
<?php phpinfo(); ?><br />
Проверьте работоспособность PHP, пройдя по ссылке http://localhost/test.php или http://localhost/~myname/test.php<br />
<br />
Если PHP-код не исполняется, а на странице браузера вы увидите содержимое {{ic|test.php}}, проверьте добавили ли вы {{ic|Includes}} в строку {{ic|Options}} для вашего корневого каталога в {{ic|/etc/httpd/conf/httpd.conf}}. Кроме того, убедитесь, что {{ic|TypesConfig conf/mime.types}} раскомментирован в секции <IfModule mime_module>. Также можно попробовать добавить нижеследующую строку в секцию {{ic|<IfModule mime_module>}} файла {{ic|httpd.conf}}:<br />
AddHandler application/x-httpd-php .php<br />
<br />
==== Расширенные параметры ====<br />
Рекомендуется правильно настроить вашу временную зону ([http://www.php.net/manual/en/timezones.php список временных зон]) в {{ic|/etc/php/php.ini}} по примеру:<br />
{{bc|1=date.timezone = Europe/Moscow}}<br />
<br />
По желанию включите режим показа ошибок при отладке PHP-кода, для этого измените значение опции {{ic|display_errors}} на {{ic|On}} в файле {{ic|/etc/php/php.ini}}:<br />
display_errors=On<br />
<br />
Ежели вы хотите использовать модуль {{ic|libGD}}, установите {{Pkg|php-gd}} и раскомментируйте {{ic|1=extension=gd.so}} в {{ic|/etc/php/php.ini}}:<br />
{{Note (Русский)|Пакет {{Pkg|php-gd}} требует {{Pkg|libpng}}, {{Pkg|libjpeg-turbo}} и {{Pkg|freetype2}}.}}<br />
extension=gd.so<br />
<br />
{{Note (Русский)|Проверьте, какие расширения PHP вы раскомментируете. Подключайте только те расширения, которые необходимы и достаточны для работы.}}<br />
<br />
Для использования модуля {{ic|mcrypt}} установите {{Pkg|php-mcrypt}} и раскомментируйте {{ic|1=extension=mcrypt.so}} в {{ic|/etc/php/php.ini}}:<br />
extension=mcrypt.so<br />
<br />
Не забудьте добавить индексные файлы {{ic|/etc/httpd/conf/extra/php5_module.conf}}, если это необходимо:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
Для дополнительной настройки, пожалуйста прочтите [[PHP]].<br />
<br />
==== Использование php5 c php-fpm и mod_proxy_fcgi ====<br />
<br />
{{Note (Русский)|В отличии от широко распространенной установки с ProxyPass, конфигурация прокси с SetHandler использует директивы DirectoryIndex. Это обеспечивает лучшую совместимость с программным обеспечением, разработанным для libphp5, mod_fastcgi и mod_fcgid.<br />
Если вы хотите попробовать ProxyPass, используйте такую строку: {{bc|ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php-fpm/php-fpm.sock&#124;fcgi://localhost/srv/http/$1}}}}<br />
<br />
* Установите {{pkg|php-fpm}}<br />
<br />
* Задайте {{ic|listen}} в {{ic|/etc/php/php-fpm.conf}} следующим образом:<br />
<br />
;listen = 127.0.0.1:9000<br />
listen = /run/php-fpm/php-fpm.sock<br />
listen.owner = http<br />
listen.group = http<br />
<br />
* Добавьте следующие строки в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
<FilesMatch \.php$><br />
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"<br />
</FilesMatch><br />
<IfModule dir_module><br />
DirectoryIndex index.php index.html<br />
</IfModule><br />
<br />
* Если вы уже добавили это, уберите php модуль, так как он больше не является необходимым.<br />
LoadModule php5_module modules/libphp5.so<br />
<br />
* [[Systemd#Using_units|Перезапустите]] apache php-fpm демон. <br />
# systemctl restart httpd.service php-fpm.service<br />
<br />
==== Использование php5 c apache2-mpm-worker и mod_fcgid ====<br />
<br />
* Раскомментируйте нижеследующую строку в {{ic|/etc/conf.d/apache}}:<br />
HTTPD=/usr/sbin/httpd.worker<br />
<br />
* Раскомментируйте нижеследующую строку в {{ic|/etc/httpd/conf/httpd.conf}}:<br />
Include conf/extra/httpd-mpm.conf<br />
<br />
* [[pacman (Русский)#Установка определенных пакетов|Установите]] пакеты {{pkg|mod_fcgid}} и {{Pkg|php-cgi}} из официальных репозиториев.<br />
<br />
* Создайте конфигурационный файл {{ic|/etc/httpd/conf/extra/php5_fcgid.conf}} со следующим содержимым:<br />
{{hc|/etc/httpd/conf/extra/php5_fcgid.conf|<nowiki><br />
# Required modules: fcgid_module<br />
<br />
<IfModule fcgid_module><br />
AddHandler php-fcgid .php<br />
AddType application/x-httpd-php .php<br />
Action php-fcgid /fcgid-bin/php-fcgid-wrapper<br />
ScriptAlias /fcgid-bin/ /srv/http/fcgid-bin/<br />
SocketPath /var/run/httpd/fcgidsock<br />
SharememPath /var/run/httpd/fcgid_shm<br />
# If you don't allow bigger requests many applications may fail (such as WordPress login)<br />
FcgidMaxRequestLen 536870912<br />
PHP_Fix_Pathinfo_Enable 1<br />
# Path to php.ini – defaults to /etc/phpX/cgi<br />
DefaultInitEnv PHPRC=/etc/php/<br />
# Number of PHP childs that will be launched. Leave undefined to let PHP decide.<br />
#DefaultInitEnv PHP_FCGI_CHILDREN 3<br />
# Maximum requests before a process is stopped and a new one is launched<br />
#DefaultInitEnv PHP_FCGI_MAX_REQUESTS 5000<br />
<Location /fcgid-bin/><br />
SetHandler fcgid-script<br />
Options +ExecCGI<br />
</Location><br />
</IfModule></nowiki><br />
}}<br />
<br />
* Создайте необходимый каталог для php-wrapper и симлинк на него:<br />
# mkdir /srv/http/fcgid-bin<br />
# ln -s /usr/bin/php-cgi /srv/http/fcgid-bin/php-fcgid-wrapper<br />
<br />
* Отредактируйте {{ic|/etc/httpd/conf/httpd.conf}}:<br />
#LoadModule php5_module modules/libphp5.so<br />
LoadModule fcgid_module modules/mod_fcgid.so<br />
Include conf/extra/php5_fcgid.conf<br />
<br />
Перезапустите {{ic|httpd.service}}<br />
<br />
{{Note (Русский)|Так же как и в Apache 2.4 вы можете использовать [http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html mod_proxy_fcgi] вместе с PHP-FPM. Посмотрите [http://wiki.apache.org/httpd/PHP-FPM здесь] пример конфигурации. }}<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
<br />
Установите и сконфигурируйте MySQL/MariaDB так, как описано в [[MariaDB_(Русский)|MariaDB]].<br />
<br />
Раскомментируйте [http://www.php.net/manual/en/mysqlinfo.api.choosing.php по меньшей мере одну] из нижеприведенных строчек в {{ic|/etc/php/php.ini}}:<br />
extension=pdo_mysql.so<br />
extension=mysqli.so<br />
{{Warning (Русский)|Начиная с PHP версии 5.5, библиотека mysql.so получила статус [http://www.php.net/manual/de/migration55.deprecated.php устаревшей] и ее использование не рекомендуется.}}<br />
<br />
Вы можете добавить новых пользователей MySQL. Быть может вы захотите настроить доступ к серверу MySQL только с localhost. Для этого достаточно раскомментировать {{ic|skip-networking}} в {{ic|/etc/mysql/my.cnf}}. После этого необходим перезапуск MySQL для того, чтобы изменения вступили в силу.<br />
<br />
Перезапустите {{ic|httpd.service}} [[systemd#Using units|используя systemd]]. <br />
<br />
{{Tip (Русский)| Возможно вы захотите установить инструменты для разработки и сопровождения баз данных [[phpMyAdmin]], [[Adminer]] или {{AUR|mysql-workbench}}.}}<br />
<br />
== Поиск и устранение неисправностей ==<br />
<br />
=== Apache статус и логи ===<br />
<br />
Посмотреть статус Apache демона: {{ic|systemctl status httpd}}<br />
<br />
Логи Apache можно найти в {{ic|/var/log/httpd/}}<br />
<br />
=== Ошибка: PID file /run/httpd/httpd.pid not readable (yet?) после запуска ===<br />
<br />
Закомментируйте unique_id_module: {{ic|#LoadModule unique_id_module modules/mod_unique_id.so}}<br />
<br />
=== Обновление Apache на версию 2.4 с версии 2.2 ===<br />
<br />
Если вы используйте {{ic|php-apache}}, посмотрите инструкции к [[#PHP|Apache с PHP]] выше.<br />
<br />
Изменился уровень доступа. Переведите все {{ic|Order}}, {{ic|Allow}}, {{ic|Deny}} и {{ic|Satisfy}} директивы к новому {{ic|Require}} синтаксису. [http://httpd.apache.org/docs/2.4/mod/mod_access_compat.html mod_access_compat] позволит использовать устаревший формат на время этапа перехода.<br />
<br />
Больше информации: [http://httpd.apache.org/docs/2.4/upgrading.html Upgrading to 2.4 from 2.2]<br />
<br />
=== Apache работает c потоками MPM, но ваш PHP модуль не выполняется многопоточно. ===<br />
<br />
Если не удалось запустить {{ic|php5_module}} при старте {{ic|httpd.service}} и вы получаете следующее сообщение об ошибке:<br />
<br />
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.<br />
<br />
вы должны заменить {{ic|mpm_event_module}} и {{ic|mpm_prefork_module}}:<br />
<br />
{{hc|/etc/httpd/conf/httpd.conf|<br />
<s>LoadModule mpm_event_module modules/mod_mpm_event.so</s><br />
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so<br />
}}<br />
<br />
и перезапустить {{ic|httpd.service}}.<br />
<br />
== Внешние ссылки ==<br />
* [http://www.apache.org/ Официальный сайт веб-сервера Apache]<br />
* [http://www.php.net/ Официальный сайт PHP]<br />
* [https://mariadb.org/ MariaDB Официальный сайт]<br />
* [http://www.akadia.com/services/ssh_test_certificate.html Руководство по созданию самозаверенных сертификатов]<br />
* [http://wiki.apache.org/httpd/CommonMisconfigurations Поиск и устранение неисправностей при настройке Apache]</div>Lkzcover