https://wiki.archlinux.org/api.php?action=feedcontributions&user=PavelVershinin&feedformat=atomArchWiki - User contributions [en]2024-03-29T06:32:31ZUser 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=233045Apache HTTP Server (Русский)2012-11-01T16:31:40Z<p>PavelVershinin: /* Дополнительная настройка */</p>
<hr />
<div>[[Category:Русский]]<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 />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
Этот документ описывает, как поставить веб-сервер Apache на Arch Linux. Также он описывает, как дополнительно установить PHP и MySQL и встроить их в Apache-сервер.<br />
Если вам нужен настроенный сервис для разработки и тестирования, то можете просто установить [[Xampp]].<br />
<br />
==Установка пакетов==<br />
<br />
# pacman -S apache php php-apache mysql<br />
<br />
Если вы хотите, вы можете установить только apache, apache и php, или всё. Этот документ описывает установку всех трёх составляющих, но если вы хотите, вы можете остановиться после любой из команд.<br />
<br />
==Настройка==<br />
<br />
===Apache===<br />
По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя, от имени которого сервер начинает работу. Значения идентификаторов берутся из конфигурационного файла /etc/httpd/conf/httpd.conf и по умолчанию равны http. Происходит передача управления работой сервера от пользователя root к пользователю http, не имеющего привилегированных полномочий в операционной системе. <br />
* Для начала проверим наличие пользователя ''http'' в выводе следующей команды:<br />
# grep http /etc/passwd<br />
<br />
* Если его там нет, то создаем:<br />
# useradd -d /srv/http -r -s /bin/false -U http<br />
Эта команда создает системную учетную запись нового пользователя http с домашним каталогом /srv/http/, фиктивным интерпретатором команд /bin/false и одноименной группой, в которую новый пользователь включается.<br />
* Добавьте строку в <code>/etc/hosts</code> (Если файла не существует, создайте его)<br />
127.0.0.1 localhost.localdomain localhost<br />
'''Note:''' если вы хотите другое имя хоста, добавьте его в конец строки:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Редактирование <code>/etc/hostname</code>:<br />
Если вы установили имя хоста, то оно должно совпадать с именем в файле /etc/hostname:<br />
localhost<br />
<br />
* Запустите через терминал (от имени root):<br />
# systemctl start httpd<br />
<br />
* Apache должен запуститься. Протестируйте, введя <code>http://localhost/</code> в веб-браузере. Он покажет простую домашнюю страницу Arch Linux. Если не запустился протестируйте настройку с помощью команды: <br />
# apachectl configtest<br />
<br />
* Для автозагрузки Apache выполнить (от имени root):<br />
# systemctl enable httpd<br />
'''Или''' добавьте эту строку в <code>rc.local</code>:<br />
systemctl start httpd<br />
<br />
* Если вы хотите чтобы папка юзера (например: <code>~/public_html</code> на машине будет доступна как <code>http://localhost/~user/</code>) была доступна через веб, раскомментируйте следующие строки в <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>: <br />
UserDir public_html<br />
и<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
У вас должны быть правильно выставлены права на директорию, чтобы apache смог брать данные. Ваша домашняя директория <code>~/public_html/</code> должна быть "запускаема" для всех ("rest of the world"). Этого будет достаточно:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
Здесь может быть что-нибудь ещё, более безопасные пути установки прав на доступ созданием специальной группы и разрешение только apache и вам входить туда... Вы сами знаете, какой вы параноик :)<br />
<br />
===PHP===<br />
<br />
PHP сейчас доступен из коробки.<br />
<br />
* Добавьте строки в <code>/etc/httpd/conf/httpd.conf</code><br />
LoadModule php5_module modules/libphp5.so<br />
Include conf/extra/php5_module.conf<br />
<br />
* Для того чтобы обрабатывались *.php файлы добавьте<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
<br />
* Для того чтобы врезки php кода обрабатывались в файлах *.html добавьте<br />
AddType application/x-httpd-php .html<br />
AddType application/x-httpd-php .htm<br />
<br />
<code> # systemctl restart httpd</code><br />
<br />
====Дополнительные настройки====<br />
* Добавляем строку:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* Если вам нужен модуль libGD, установите пакет php-gd, и исправьте в <code>/etc/php/php.ini</code>:<br />
;extension=gd.so<br />
на<br />
extension=gd.so<br />
<br />
* Если ваш <code>DocumentRoot</code> находится вне директории <code>/home/</code>, добавьте его в <code>open_basedir</code> в <code>/etc/php/php.ini</code> как показано:<br />
open_basedir=/srv/http:/home/:/tmp/:/usr/share/pear/<br />
<br />
* Перезапустите Apache Server для того, чтобы изменения применились (как root):<br />
# systemctl restart httpd<br />
<br />
* Протестируйте PHP с помощью простого, но очень информативного скрипта:<br />
<html><br />
<head><br />
<title>PHP Test Page</title><br />
</head><br />
<br />
<body><br />
This is Arch Linux, running PHP.<br />
<br />
<?php<br />
phpinfo();<br />
?><br />
</p><br />
</body><br />
</html><br />
<br />
Сохраните этот файл как <code>test.php</code> и скопируйте в <code>/home/httpd/html/</code> или в <code>~/public_html</code> если вы указали это в конфигурации. Также надо сделать его запускаемым (<code>chmod a+x test.php</code>).<br />
<br />
* Тестирование PHP:<br />
http://localhost/test.php или http://localhost/~myname/test.php<br />
<br />
====Установка поддержки MySQL ====<br />
<br />
Делайте это, если вам нужна поддержка MySQL<br />
<br />
=====Начальная настройка=====<br />
<br />
* Отредактируйте <code>/etc/php/php.ini</code> (это в <code>/usr/etc</code> на старых системах) раскомментируйте следующие строки:<br />
<code>;extension=mysql.so</code><br />
*Для настройки вашей системы выполните <code>systemctl start mysqld</code> как '''root''' '''''ИЛИ''''' проделайте следующие шаги самостоятельно:<br />
:* Добавьте группу с именем mysql <br />
# groupadd -g 89 mysql<br />
:* Добавьте юзера с именем mysql<br />
# useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql<br />
:* измените владельца корневой папки MYSQL - её ещё может не существовать<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* Установка базы данных. Если вы хотите запускать mysql как root вы можете не применять опцию --user и изменять владельца<br />
# mysql_install_db --datadir=/var/lib/mysql --user=mysql<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* запустите <code>systemctl start mysqld</code> для старта MySQL в качестве демона.<br />
<br />
=====Дополнительная настройка=====<br />
{{out of date}}<br />
* Тестируем mysql (как root):<br />
# mysql<br />
<br />
* Создайте root пароль для mysql (в терминале, как root):<br />
# mysqladmin -u root password 'roots_password'<br />
<br />
* Добавьте <code>mysqld</code> в список загружаемых сервисов:<br />
# systemctl enable mysqld<br />
<br />
* Для входа в mysql, напишите (в терминале, ''hostname'' такой же, как в <code>/etc/hosts</code>)<br />
# mysql -u root -h ''hostname'' -p<br />
<br />
* Вы можете добавить менее привелигерованного пользователя для доступа к редактированию таблиц в вашей базе данных <code>mysql</code> через веб-скрипты. Вы должны перезапустить mysql, чтобы применить изменения.<br>Не забудьте проверить <code>mysql/users</code> таблицу. Если при повторном входе от имени root и с вашего хоста не был поставлен пароль, кто угодно с вашего хоста сможет получить полный доступ.<br>Для подготовки к этим работам смотри следующую секцию.<br />
<br />
* Вы можете получить сообщение об ошибке "error no. 2013: Lost Connection to mysql server during query" при соединении к сервису mysql через TCP/IP. Это может быть система TCP wrappers (tcpd), которая использует систему hosts_access(5) для разрешения или запрета соединения.<br />
<br />
* Если у вас появилась данная ошибка, добавьте это в файл /etc/hosts.allow:<br />
<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
* Notes: Пример сверху говорит tcpd, чтоб разрешил все соединения отовсюду. Вы можете использовать более безопасные приёмы для доступа, просто замените ALL. Только удостоверьтесь, что localhost и IP адресс (численный или DNS) с которого вы соединяетесь разрешались для доступа.<br />
<br />
* Также может потребоваться редактирование <code>/etc/my.cnf</code> и изменение следующей строки:<br />
<br />
skip-networking<br />
<br />
на<br />
<br />
#skip-networking<br />
<br />
{{Tip|Вы также можете установить [[PhpMyAdmin (Русский)|PhpMyAdmin]] для работы с Вашими базами данных.}}</div>PavelVershininhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=233044Apache HTTP Server (Русский)2012-11-01T16:30:43Z<p>PavelVershinin: /* Начальная настройка */</p>
<hr />
<div>[[Category:Русский]]<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 />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
Этот документ описывает, как поставить веб-сервер Apache на Arch Linux. Также он описывает, как дополнительно установить PHP и MySQL и встроить их в Apache-сервер.<br />
Если вам нужен настроенный сервис для разработки и тестирования, то можете просто установить [[Xampp]].<br />
<br />
==Установка пакетов==<br />
<br />
# pacman -S apache php php-apache mysql<br />
<br />
Если вы хотите, вы можете установить только apache, apache и php, или всё. Этот документ описывает установку всех трёх составляющих, но если вы хотите, вы можете остановиться после любой из команд.<br />
<br />
==Настройка==<br />
<br />
===Apache===<br />
По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя, от имени которого сервер начинает работу. Значения идентификаторов берутся из конфигурационного файла /etc/httpd/conf/httpd.conf и по умолчанию равны http. Происходит передача управления работой сервера от пользователя root к пользователю http, не имеющего привилегированных полномочий в операционной системе. <br />
* Для начала проверим наличие пользователя ''http'' в выводе следующей команды:<br />
# grep http /etc/passwd<br />
<br />
* Если его там нет, то создаем:<br />
# useradd -d /srv/http -r -s /bin/false -U http<br />
Эта команда создает системную учетную запись нового пользователя http с домашним каталогом /srv/http/, фиктивным интерпретатором команд /bin/false и одноименной группой, в которую новый пользователь включается.<br />
* Добавьте строку в <code>/etc/hosts</code> (Если файла не существует, создайте его)<br />
127.0.0.1 localhost.localdomain localhost<br />
'''Note:''' если вы хотите другое имя хоста, добавьте его в конец строки:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Редактирование <code>/etc/hostname</code>:<br />
Если вы установили имя хоста, то оно должно совпадать с именем в файле /etc/hostname:<br />
localhost<br />
<br />
* Запустите через терминал (от имени root):<br />
# systemctl start httpd<br />
<br />
* Apache должен запуститься. Протестируйте, введя <code>http://localhost/</code> в веб-браузере. Он покажет простую домашнюю страницу Arch Linux. Если не запустился протестируйте настройку с помощью команды: <br />
# apachectl configtest<br />
<br />
* Для автозагрузки Apache выполнить (от имени root):<br />
# systemctl enable httpd<br />
'''Или''' добавьте эту строку в <code>rc.local</code>:<br />
systemctl start httpd<br />
<br />
* Если вы хотите чтобы папка юзера (например: <code>~/public_html</code> на машине будет доступна как <code>http://localhost/~user/</code>) была доступна через веб, раскомментируйте следующие строки в <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>: <br />
UserDir public_html<br />
и<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
У вас должны быть правильно выставлены права на директорию, чтобы apache смог брать данные. Ваша домашняя директория <code>~/public_html/</code> должна быть "запускаема" для всех ("rest of the world"). Этого будет достаточно:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
Здесь может быть что-нибудь ещё, более безопасные пути установки прав на доступ созданием специальной группы и разрешение только apache и вам входить туда... Вы сами знаете, какой вы параноик :)<br />
<br />
===PHP===<br />
<br />
PHP сейчас доступен из коробки.<br />
<br />
* Добавьте строки в <code>/etc/httpd/conf/httpd.conf</code><br />
LoadModule php5_module modules/libphp5.so<br />
Include conf/extra/php5_module.conf<br />
<br />
* Для того чтобы обрабатывались *.php файлы добавьте<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
<br />
* Для того чтобы врезки php кода обрабатывались в файлах *.html добавьте<br />
AddType application/x-httpd-php .html<br />
AddType application/x-httpd-php .htm<br />
<br />
<code> # systemctl restart httpd</code><br />
<br />
====Дополнительные настройки====<br />
* Добавляем строку:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* Если вам нужен модуль libGD, установите пакет php-gd, и исправьте в <code>/etc/php/php.ini</code>:<br />
;extension=gd.so<br />
на<br />
extension=gd.so<br />
<br />
* Если ваш <code>DocumentRoot</code> находится вне директории <code>/home/</code>, добавьте его в <code>open_basedir</code> в <code>/etc/php/php.ini</code> как показано:<br />
open_basedir=/srv/http:/home/:/tmp/:/usr/share/pear/<br />
<br />
* Перезапустите Apache Server для того, чтобы изменения применились (как root):<br />
# systemctl restart httpd<br />
<br />
* Протестируйте PHP с помощью простого, но очень информативного скрипта:<br />
<html><br />
<head><br />
<title>PHP Test Page</title><br />
</head><br />
<br />
<body><br />
This is Arch Linux, running PHP.<br />
<br />
<?php<br />
phpinfo();<br />
?><br />
</p><br />
</body><br />
</html><br />
<br />
Сохраните этот файл как <code>test.php</code> и скопируйте в <code>/home/httpd/html/</code> или в <code>~/public_html</code> если вы указали это в конфигурации. Также надо сделать его запускаемым (<code>chmod a+x test.php</code>).<br />
<br />
* Тестирование PHP:<br />
http://localhost/test.php или http://localhost/~myname/test.php<br />
<br />
====Установка поддержки MySQL ====<br />
<br />
Делайте это, если вам нужна поддержка MySQL<br />
<br />
=====Начальная настройка=====<br />
<br />
* Отредактируйте <code>/etc/php/php.ini</code> (это в <code>/usr/etc</code> на старых системах) раскомментируйте следующие строки:<br />
<code>;extension=mysql.so</code><br />
*Для настройки вашей системы выполните <code>systemctl start mysqld</code> как '''root''' '''''ИЛИ''''' проделайте следующие шаги самостоятельно:<br />
:* Добавьте группу с именем mysql <br />
# groupadd -g 89 mysql<br />
:* Добавьте юзера с именем mysql<br />
# useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql<br />
:* измените владельца корневой папки MYSQL - её ещё может не существовать<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* Установка базы данных. Если вы хотите запускать mysql как root вы можете не применять опцию --user и изменять владельца<br />
# mysql_install_db --datadir=/var/lib/mysql --user=mysql<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* запустите <code>systemctl start mysqld</code> для старта MySQL в качестве демона.<br />
<br />
=====Дополнительная настройка=====<br />
{{out of date}}<br />
* Тестируем mysql (как root):<br />
# mysql<br />
<br />
* Создайте root пароль для mysql (в терминале, как root):<br />
# mysqladmin -u root password 'roots_password'<br />
<br />
* Добавьте mysqld</code> в список загружаемых сервисов:<br />
# systemctl enable mysqld<br />
<br />
* Для входа в mysql, напишите (в терминале, ''hostname'' такой же, как в <code>/etc/hosts</code>)<br />
# mysql -u root -h ''hostname'' -p<br />
<br />
* Вы можете добавить менее привелигерованного пользователя для доступа к редактированию таблиц в вашей базе данных <code>mysql</code> через веб-скрипты. Вы должны перезапустить mysql, чтобы применить изменения.<br>Не забудьте проверить <code>mysql/users</code> таблицу. Если при повторном входе от имени root и с вашего хоста не был поставлен пароль, кто угодно с вашего хоста сможет получить полный доступ.<br>Для подготовки к этим работам смотри следующую секцию.<br />
<br />
* Вы можете получить сообщение об ошибке "error no. 2013: Lost Connection to mysql server during query" при соединении к сервису mysql через TCP/IP. Это может быть система TCP wrappers (tcpd), которая использует систему hosts_access(5) для разрешения или запрета соединения.<br />
<br />
* Если у вас появилась данная ошибка, добавьте это в файл /etc/hosts.allow:<br />
<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
* Notes: Пример сверху говорит tcpd, чтоб разрешил все соединения отовсюду. Вы можете использовать более безопасные приёмы для доступа, просто замените ALL. Только удостоверьтесь, что localhost и IP адресс (численный или DNS) с которого вы соединяетесь разрешались для доступа.<br />
<br />
* Также может потребоваться редактирование <code>/etc/my.cnf</code> и изменение следующей строки:<br />
<br />
skip-networking<br />
<br />
на<br />
<br />
#skip-networking<br />
<br />
{{Tip|Вы также можете установить [[PhpMyAdmin (Русский)|PhpMyAdmin]] для работы с Вашими базами данных.}}</div>PavelVershininhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=233043Apache HTTP Server (Русский)2012-11-01T16:28:56Z<p>PavelVershinin: /* PHP */</p>
<hr />
<div>[[Category:Русский]]<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 />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
Этот документ описывает, как поставить веб-сервер Apache на Arch Linux. Также он описывает, как дополнительно установить PHP и MySQL и встроить их в Apache-сервер.<br />
Если вам нужен настроенный сервис для разработки и тестирования, то можете просто установить [[Xampp]].<br />
<br />
==Установка пакетов==<br />
<br />
# pacman -S apache php php-apache mysql<br />
<br />
Если вы хотите, вы можете установить только apache, apache и php, или всё. Этот документ описывает установку всех трёх составляющих, но если вы хотите, вы можете остановиться после любой из команд.<br />
<br />
==Настройка==<br />
<br />
===Apache===<br />
По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя, от имени которого сервер начинает работу. Значения идентификаторов берутся из конфигурационного файла /etc/httpd/conf/httpd.conf и по умолчанию равны http. Происходит передача управления работой сервера от пользователя root к пользователю http, не имеющего привилегированных полномочий в операционной системе. <br />
* Для начала проверим наличие пользователя ''http'' в выводе следующей команды:<br />
# grep http /etc/passwd<br />
<br />
* Если его там нет, то создаем:<br />
# useradd -d /srv/http -r -s /bin/false -U http<br />
Эта команда создает системную учетную запись нового пользователя http с домашним каталогом /srv/http/, фиктивным интерпретатором команд /bin/false и одноименной группой, в которую новый пользователь включается.<br />
* Добавьте строку в <code>/etc/hosts</code> (Если файла не существует, создайте его)<br />
127.0.0.1 localhost.localdomain localhost<br />
'''Note:''' если вы хотите другое имя хоста, добавьте его в конец строки:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Редактирование <code>/etc/hostname</code>:<br />
Если вы установили имя хоста, то оно должно совпадать с именем в файле /etc/hostname:<br />
localhost<br />
<br />
* Запустите через терминал (от имени root):<br />
# systemctl start httpd<br />
<br />
* Apache должен запуститься. Протестируйте, введя <code>http://localhost/</code> в веб-браузере. Он покажет простую домашнюю страницу Arch Linux. Если не запустился протестируйте настройку с помощью команды: <br />
# apachectl configtest<br />
<br />
* Для автозагрузки Apache выполнить (от имени root):<br />
# systemctl enable httpd<br />
'''Или''' добавьте эту строку в <code>rc.local</code>:<br />
systemctl start httpd<br />
<br />
* Если вы хотите чтобы папка юзера (например: <code>~/public_html</code> на машине будет доступна как <code>http://localhost/~user/</code>) была доступна через веб, раскомментируйте следующие строки в <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>: <br />
UserDir public_html<br />
и<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
У вас должны быть правильно выставлены права на директорию, чтобы apache смог брать данные. Ваша домашняя директория <code>~/public_html/</code> должна быть "запускаема" для всех ("rest of the world"). Этого будет достаточно:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
Здесь может быть что-нибудь ещё, более безопасные пути установки прав на доступ созданием специальной группы и разрешение только apache и вам входить туда... Вы сами знаете, какой вы параноик :)<br />
<br />
===PHP===<br />
<br />
PHP сейчас доступен из коробки.<br />
<br />
* Добавьте строки в <code>/etc/httpd/conf/httpd.conf</code><br />
LoadModule php5_module modules/libphp5.so<br />
Include conf/extra/php5_module.conf<br />
<br />
* Для того чтобы обрабатывались *.php файлы добавьте<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
<br />
* Для того чтобы врезки php кода обрабатывались в файлах *.html добавьте<br />
AddType application/x-httpd-php .html<br />
AddType application/x-httpd-php .htm<br />
<br />
<code> # systemctl restart httpd</code><br />
<br />
====Дополнительные настройки====<br />
* Добавляем строку:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* Если вам нужен модуль libGD, установите пакет php-gd, и исправьте в <code>/etc/php/php.ini</code>:<br />
;extension=gd.so<br />
на<br />
extension=gd.so<br />
<br />
* Если ваш <code>DocumentRoot</code> находится вне директории <code>/home/</code>, добавьте его в <code>open_basedir</code> в <code>/etc/php/php.ini</code> как показано:<br />
open_basedir=/srv/http:/home/:/tmp/:/usr/share/pear/<br />
<br />
* Перезапустите Apache Server для того, чтобы изменения применились (как root):<br />
# systemctl restart httpd<br />
<br />
* Протестируйте PHP с помощью простого, но очень информативного скрипта:<br />
<html><br />
<head><br />
<title>PHP Test Page</title><br />
</head><br />
<br />
<body><br />
This is Arch Linux, running PHP.<br />
<br />
<?php<br />
phpinfo();<br />
?><br />
</p><br />
</body><br />
</html><br />
<br />
Сохраните этот файл как <code>test.php</code> и скопируйте в <code>/home/httpd/html/</code> или в <code>~/public_html</code> если вы указали это в конфигурации. Также надо сделать его запускаемым (<code>chmod a+x test.php</code>).<br />
<br />
* Тестирование PHP:<br />
http://localhost/test.php или http://localhost/~myname/test.php<br />
<br />
====Установка поддержки MySQL ====<br />
<br />
Делайте это, если вам нужна поддержка MySQL<br />
<br />
=====Начальная настройка=====<br />
<br />
* Отредактируйте <code>/etc/php/php.ini</code> (это в <code>/usr/etc</code> на старых системах) раскомментируйте следующие строки:<br />
<code>;extension=mysql.so</code><br />
*Для настройки вашей системы выполните <code>/etc/rc.d/mysqld start</code> как '''root''' '''''ИЛИ''''' проделайте следующие шаги самостоятельно:<br />
:* Добавьте группу с именем mysql <br />
# groupadd -g 89 mysql<br />
:* Добавьте юзера с именем mysql<br />
# useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql<br />
:* измените владельца корневой папки MYSQL - её ещё может не существовать<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* Установка базы данных. Если вы хотите запускать mysql как root вы можете не применять опцию --user и изменять владельца<br />
# mysql_install_db --datadir=/var/lib/mysql --user=mysql<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* запустите <code>/etc/rc.d/mysqld start</code> для старта MySQL в качестве демона.<br />
<br />
=====Дополнительная настройка=====<br />
{{out of date}}<br />
* Тестируем mysql (как root):<br />
# mysql<br />
<br />
* Создайте root пароль для mysql (в терминале, как root):<br />
# mysqladmin -u root password 'roots_password'<br />
<br />
* Добавьте mysqld</code> в список загружаемых сервисов:<br />
# systemctl enable mysqld<br />
<br />
* Для входа в mysql, напишите (в терминале, ''hostname'' такой же, как в <code>/etc/hosts</code>)<br />
# mysql -u root -h ''hostname'' -p<br />
<br />
* Вы можете добавить менее привелигерованного пользователя для доступа к редактированию таблиц в вашей базе данных <code>mysql</code> через веб-скрипты. Вы должны перезапустить mysql, чтобы применить изменения.<br>Не забудьте проверить <code>mysql/users</code> таблицу. Если при повторном входе от имени root и с вашего хоста не был поставлен пароль, кто угодно с вашего хоста сможет получить полный доступ.<br>Для подготовки к этим работам смотри следующую секцию.<br />
<br />
* Вы можете получить сообщение об ошибке "error no. 2013: Lost Connection to mysql server during query" при соединении к сервису mysql через TCP/IP. Это может быть система TCP wrappers (tcpd), которая использует систему hosts_access(5) для разрешения или запрета соединения.<br />
<br />
* Если у вас появилась данная ошибка, добавьте это в файл /etc/hosts.allow:<br />
<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
* Notes: Пример сверху говорит tcpd, чтоб разрешил все соединения отовсюду. Вы можете использовать более безопасные приёмы для доступа, просто замените ALL. Только удостоверьтесь, что localhost и IP адресс (численный или DNS) с которого вы соединяетесь разрешались для доступа.<br />
<br />
* Также может потребоваться редактирование <code>/etc/my.cnf</code> и изменение следующей строки:<br />
<br />
skip-networking<br />
<br />
на<br />
<br />
#skip-networking<br />
<br />
{{Tip|Вы также можете установить [[PhpMyAdmin (Русский)|PhpMyAdmin]] для работы с Вашими базами данных.}}</div>PavelVershininhttps://wiki.archlinux.org/index.php?title=Apache_HTTP_Server_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)&diff=233039Apache HTTP Server (Русский)2012-11-01T16:25:39Z<p>PavelVershinin: /* Apache */</p>
<hr />
<div>[[Category:Русский]]<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 />
[[pl:LAMP]]<br />
[[sr:LAMP]]<br />
[[tr:LAMP]]<br />
[[zh-CN:LAMP]]<br />
Этот документ описывает, как поставить веб-сервер Apache на Arch Linux. Также он описывает, как дополнительно установить PHP и MySQL и встроить их в Apache-сервер.<br />
Если вам нужен настроенный сервис для разработки и тестирования, то можете просто установить [[Xampp]].<br />
<br />
==Установка пакетов==<br />
<br />
# pacman -S apache php php-apache mysql<br />
<br />
Если вы хотите, вы можете установить только apache, apache и php, или всё. Этот документ описывает установку всех трёх составляющих, но если вы хотите, вы можете остановиться после любой из команд.<br />
<br />
==Настройка==<br />
<br />
===Apache===<br />
По соображениям безопасности при запуске сервера Apache от имени суперпользователя (напрямую или через скрипт инициализации) происходит смена идентификаторов группы и пользователя, от имени которого сервер начинает работу. Значения идентификаторов берутся из конфигурационного файла /etc/httpd/conf/httpd.conf и по умолчанию равны http. Происходит передача управления работой сервера от пользователя root к пользователю http, не имеющего привилегированных полномочий в операционной системе. <br />
* Для начала проверим наличие пользователя ''http'' в выводе следующей команды:<br />
# grep http /etc/passwd<br />
<br />
* Если его там нет, то создаем:<br />
# useradd -d /srv/http -r -s /bin/false -U http<br />
Эта команда создает системную учетную запись нового пользователя http с домашним каталогом /srv/http/, фиктивным интерпретатором команд /bin/false и одноименной группой, в которую новый пользователь включается.<br />
* Добавьте строку в <code>/etc/hosts</code> (Если файла не существует, создайте его)<br />
127.0.0.1 localhost.localdomain localhost<br />
'''Note:''' если вы хотите другое имя хоста, добавьте его в конец строки:<br />
127.0.0.1 localhost.localdomain localhost myhostname<br />
<br />
* Редактирование <code>/etc/hostname</code>:<br />
Если вы установили имя хоста, то оно должно совпадать с именем в файле /etc/hostname:<br />
localhost<br />
<br />
* Запустите через терминал (от имени root):<br />
# systemctl start httpd<br />
<br />
* Apache должен запуститься. Протестируйте, введя <code>http://localhost/</code> в веб-браузере. Он покажет простую домашнюю страницу Arch Linux. Если не запустился протестируйте настройку с помощью команды: <br />
# apachectl configtest<br />
<br />
* Для автозагрузки Apache выполнить (от имени root):<br />
# systemctl enable httpd<br />
'''Или''' добавьте эту строку в <code>rc.local</code>:<br />
systemctl start httpd<br />
<br />
* Если вы хотите чтобы папка юзера (например: <code>~/public_html</code> на машине будет доступна как <code>http://localhost/~user/</code>) была доступна через веб, раскомментируйте следующие строки в <code>/etc/httpd/conf/extra/httpd-userdir.conf</code>: <br />
UserDir public_html<br />
и<br />
<Directory /home/*/public_html><br />
AllowOverride FileInfo AuthConfig Limit Indexes<br />
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI<br />
<Limit GET POST OPTIONS PROPFIND><br />
Order allow,deny<br />
Allow from all<br />
</Limit><br />
<LimitExcept GET POST OPTIONS PROPFIND><br />
Order deny,allow<br />
Deny from all<br />
</LimitExcept><br />
</Directory><br />
<br />
У вас должны быть правильно выставлены права на директорию, чтобы apache смог брать данные. Ваша домашняя директория <code>~/public_html/</code> должна быть "запускаема" для всех ("rest of the world"). Этого будет достаточно:<br />
$ chmod o+x ~<br />
$ chmod o+x ~/public_html<br />
<br />
Здесь может быть что-нибудь ещё, более безопасные пути установки прав на доступ созданием специальной группы и разрешение только apache и вам входить туда... Вы сами знаете, какой вы параноик :)<br />
<br />
===PHP===<br />
<br />
PHP сейчас доступен из коробки.<br />
<br />
* Добавьте строки в <code>/etc/httpd/conf/httpd.conf</code><br />
LoadModule php5_module modules/libphp5.so<br />
Include conf/extra/php5_module.conf<br />
<br />
* Для того чтобы обрабатывались *.php файлы добавьте<br />
AddType application/x-httpd-php .php<br />
AddType application/x-httpd-php-source .phps<br />
<br />
* Для того чтобы врезки php кода обрабатывались в файлах *.html добавьте<br />
AddType application/x-httpd-php .html<br />
AddType application/x-httpd-php .htm<br />
<br />
<code> # /etc/rc.d/httpd restart</code><br />
<br />
====Дополнительные настройки====<br />
* Добавляем строку:<br />
DirectoryIndex index.php index.phtml index.html<br />
<br />
* Если вам нужен модуль libGD, установите пакет php-gd, и исправьте в <code>/etc/php/php.ini</code>:<br />
;extension=gd.so<br />
на<br />
extension=gd.so<br />
<br />
* Если ваш <code>DocumentRoot</code> находится вне директории <code>/home/</code>, добавьте его в <code>open_basedir</code> в <code>/etc/php/php.ini</code> как показано:<br />
open_basedir=/srv/http:/home/:/tmp/:/usr/share/pear/<br />
<br />
* Перезапустите Apache Server для того, чтобы изменения применились (как root):<br />
# /etc/rc.d/httpd restart<br />
<br />
* Протестируйте PHP с помощью простого, но очень информативного скрипта:<br />
<html><br />
<head><br />
<title>PHP Test Page</title><br />
</head><br />
<br />
<body><br />
This is Arch Linux, running PHP.<br />
<br />
<?php<br />
phpinfo();<br />
?><br />
</p><br />
</body><br />
</html><br />
<br />
Сохраните этот файл как <code>test.php</code> и скопируйте в <code>/home/httpd/html/</code> или в <code>~/public_html</code> если вы указали это в конфигурации. Также надо сделать его запускаемым (<code>chmod a+x test.php</code>).<br />
<br />
* Тестирование PHP:<br />
http://localhost/test.php или http://localhost/~myname/test.php<br />
<br />
====Установка поддержки MySQL ====<br />
<br />
Делайте это, если вам нужна поддержка MySQL<br />
<br />
=====Начальная настройка=====<br />
<br />
* Отредактируйте <code>/etc/php/php.ini</code> (это в <code>/usr/etc</code> на старых системах) раскомментируйте следующие строки:<br />
<code>;extension=mysql.so</code><br />
*Для настройки вашей системы выполните <code>/etc/rc.d/mysqld start</code> как '''root''' '''''ИЛИ''''' проделайте следующие шаги самостоятельно:<br />
:* Добавьте группу с именем mysql <br />
# groupadd -g 89 mysql<br />
:* Добавьте юзера с именем mysql<br />
# useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql<br />
:* измените владельца корневой папки MYSQL - её ещё может не существовать<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* Установка базы данных. Если вы хотите запускать mysql как root вы можете не применять опцию --user и изменять владельца<br />
# mysql_install_db --datadir=/var/lib/mysql --user=mysql<br />
# chown -R mysql:mysql /var/lib/mysql<br />
:* запустите <code>/etc/rc.d/mysqld start</code> для старта MySQL в качестве демона.<br />
<br />
=====Дополнительная настройка=====<br />
{{out of date}}<br />
* Тестируем mysql (как root):<br />
# mysql<br />
<br />
* Создайте root пароль для mysql (в терминале, как root):<br />
# mysqladmin -u root password 'roots_password'<br />
<br />
* Добавьте <code>mysqld</code> в список сервисов в <code>/etc/rc.conf</code> (как для httpd выше)<br />
<br />
* Для входа в mysql, напишите (в терминале, ''hostname'' такой же, как в <code>/etc/hosts</code>)<br />
# mysql -u root -h ''hostname'' -p<br />
<br />
* Вы можете добавить менее привелигерованного пользователя для доступа к редактированию таблиц в вашей базе данных <code>mysql</code> через веб-скрипты. Вы должны перезапустить mysql, чтобы применить изменения.<br>Не забудьте проверить <code>mysql/users</code> таблицу. Если при повторном входе от имени root и с вашего хоста не был поставлен пароль, кто угодно с вашего хоста сможет получить полный доступ.<br>Для подготовки к этим работам смотри следующую секцию.<br />
<br />
* Вы можете получить сообщение об ошибке "error no. 2013: Lost Connection to mysql server during query" при соединении к сервису mysql через TCP/IP. Это может быть система TCP wrappers (tcpd), которая использует систему hosts_access(5) для разрешения или запрета соединения.<br />
<br />
* Если у вас появилась данная ошибка, добавьте это в файл /etc/hosts.allow:<br />
<br />
# mysqld : ALL : ALLOW<br />
# mysqld-max : ALL : ALLOW<br />
# and similar for the other MySQL daemons.<br />
<br />
* Notes: Пример сверху говорит tcpd, чтоб разрешил все соединения отовсюду. Вы можете использовать более безопасные приёмы для доступа, просто замените ALL. Только удостоверьтесь, что localhost и IP адресс (численный или DNS) с которого вы соединяетесь разрешались для доступа.<br />
<br />
* Также может потребоваться редактирование <code>/etc/my.cnf</code> и изменение следующей строки:<br />
<br />
skip-networking<br />
<br />
на<br />
<br />
#skip-networking<br />
<br />
{{Tip|Вы также можете установить [[PhpMyAdmin (Русский)|PhpMyAdmin]] для работы с Вашими базами данных.}}</div>PavelVershinin