Apache в Debian Lenny

Knoppix

Модераторы: Warderer, Модераторы разделов

Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Apache в Debian Lenny

Сообщение sunny1983 »

Подскажите, пожалуйста, в Debian что используется какая-то своя собственная сборка Apache. Все конфиги расположены не там, где они должны быть. В руководствах сказано, что главный файл конфигурации называется /usr/apache/etc/httpd.conf, однако здесь httpd.conf расположен в /etc/apache2 и он пустой. Самый большой файл в этом каталоге называется /etc/apache2/apache2.conf, я так понимаю он и является основным файлом конфигурации, а все остальные подключены к нему с помощью директивы include.
Подскажите, пожалуйста, как мне конфигурировать апач: в каком файле искать основные директивы (о том какие интерфейсы и какие порты слушать), где настраиваются дополнительные модули. Или мне лучше удалить дебиановскую сборку и собрать апач из оригинальных исходников с http://svn.apache.org/?
Кстати, можно ссылку на какую-нибудь вменяемую русскоязычную статью по конфигурированию апача? Я в этом деле новичок, мне апач нужен для того чтобы под ним работал веб-интерфейс rtorrent и для эксперементов с PHP-движками.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Apache в Debian Lenny

Сообщение IMB »

zless /usr/share/doc/apache2/README.Debian.gz
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

При перезапуске апача выводится:

Код: Выделить всё

Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

В чём дело?
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Apache в Debian Lenny

Сообщение watashiwa_daredeska »

sunny1983 писал(а):
19.08.2010 20:25
В чём дело?
Надо в /etc/hosts прописать:

Код: Выделить всё

127.0.1.1 localweb
например.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

watashiwa_darede... писал(а):
19.08.2010 23:21
например
или в конфиге явно указать servername.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

Вот где только эту директиву servername искать? Как сказано в файле документации, который мне тут указали, вся основная конфигурация находится в /etc/apache2/apache2.conf. /etc/apache2/httpd.conf - пустой, видимо в этой сборке он считается аттавизмом. При исследовании apache2.conf, обнаружил что к нему директивами include подключён файл: /etc/apache2/ports.conf, а также директории /etc/apache2/mods-enabled и /etc/apache2/sites-enabled. Куда именно нужно servername прописывать?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

sunny1983 писал(а):
31.08.2010 23:16
Куда именно нужно servername прописывать?
в любой из вами перечисленных. ведь apache их все прочитывает.
но наиболее логичным (с точки зрения человека-администратора) будет, пожалуй apache.conf или httpd.conf (тут уж на ваш личный вкус).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

Ладно. С директивами я на apache.ru разберусь. А вот пока другой вопрос: все сайты должны располагаться в директории /var/www. А какому пользователю и какой группе должны принадлежать файлы в этой директории и какие должны быть у них права доступа?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Apache в Debian Lenny

Сообщение SLEDopit »

sunny1983 писал(а):
02.09.2010 20:41
А какому пользователю и какой группе должны принадлежать файлы в этой директории и какие должны быть у них права доступа?
По дефолту www-data. А вообще описывается это в

Код: Выделить всё

 $ cat /etc/apache2/envvars | grep www-data
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
sunny1983 писал(а):
02.09.2010 20:41
все сайты должны располагаться в директории /var/www.
Совершенно не обязательно. Если использовать виртуальные хосты, то там для каждого хоста все прописывается. Хоть в /tmp можно засунуть (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Fkabir
Сообщения: 369

Re: Apache в Debian Lenny

Сообщение Fkabir »

Насчет servername

создаем файл /etc/apache2/conf.d/fqdn - файл с именем сервера

ServerName web.server.com

тут web.server.com - имя вашего веб сервера по умолчанию
и рестарт апача

Также Директива ServerName может прописываться для любого вирт хоста своя в /etc/apache2/sites-available/
вида
#Начало описания виртуального хоста

<VirtualHost *:80>


# Установки для каталога
<Directory /var/www/doku.my/public_html>
AllowOverride All
</Directory>

#Мыльник админа - необязателен
ServerAdmin max@instanceof.ru

# имя сервера.
ServerName doku.my

# имена на которые сервер так же должен "откликаться"
ServerAlias www.doku.my

# Корневая директория для данного вирт. хоста
DocumentRoot /var/www/doku.my/public_html

# Файлы, которые будут обрабатываться, если файл явно не указан
DirectoryIndex index.php

# Конец описания виртуального хоста.
</VirtualHost>

См http://www.instanceof.ru/linux/lamp
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

Fkabir писал(а):
03.09.2010 01:20
Насчет servername

создаем файл /etc/apache2/conf.d/fqdn - файл с именем сервера

ServerName web.server.com

тут web.server.com - имя вашего веб сервера по умолчанию
и рестарт апача
точно-точно. только файл должен называться FQDN4, а не fqdn. иначе не заработает.

(улыбка)


sunny1983 писал(а):
02.09.2010 20:41
С директивами я на apache.ru разберусь.
там посоветуют записать в файл /etc/apache2/conf.d/FQDN6. не верьте — это неправильно.

(опять улыбка)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

Допустим мне нужно нужно поработать с php-скриптом. Создаю файл /etc/apache2/sites-available/site1.localhost, делаю на него симплинк /etc/apache2/sites-enable/001-site1.localhost

Код: Выделить всё

<VirtualHost localhost:80>
   ServerName site1.localhost
   DocumentRoot /var/www/site1.localhost
   DirectoryIndex index.html index.htm index.php
   <Directory /var/www/site1.localhost>
      AllowOverride All
   </Directory>
</VirtualHost>

После закачиваю в /var/www/site1.localhost необходимый php-скрипт, передаю его файлы во владение пользователя www-data и группы www-data и перезапускаю апач.
Захожу браузером на http://site1.localhost - и ничего. Зато этот скрипт обнаруживается работающим на http://localhost
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

sunny1983 писал(а):
03.09.2010 13:25
делаю на него симплинк /etc/apache2/sites-enable/001-site1.localhost
достаточно удобно использовать a2ensite/a2dissite. bash-completion и автодополнение имён делает.

sunny1983 писал(а):
03.09.2010 13:25
Захожу браузером на
$ host site1.localhost
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

sash-kan писал(а):
03.09.2010 15:17
$ host site1.localhost

Host site1.localhost not found: 3(NXDOMAIN)

Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Apache в Debian Lenny

Сообщение SLEDopit »

sunny1983 писал(а):
03.09.2010 18:08
Host site1.localhost not found: 3(NXDOMAIN)
а как, по-вашему, ваша система узнает, где находится site1.localhost?
следует прописать в /etc/hosts

Код: Выделить всё

127.0.0.1       site1.local
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

SLEDopit писал(а):
03.09.2010 18:14
а как, по-вашему, ваша система узнает, где находится site1.localhost?

Ну, я думал там какой-нибудь дополнительный модуль работает, позволяющий Apache выполнять ещё и роль DNS-сервера.

SLEDopit писал(а):
03.09.2010 18:14
следует прописать в /etc/hosts

Допустим у меня в /etc/hosts записано:

Код: Выделить всё

127.0.0.1    sunny-desktop localhost site1.localhost site2.localhost
192.168.1.1    router

Это значит, что когда я в браузере вбиваю site1.localhost или site2.localhost, простейший DNS-сервер, обеспечиваемый файлом /etc/hosts будет отправлять запросы на 127.0.0.1. Оба виртуальных хоста настроены так, что слушают адрес 127.0.0.1 и порт 80. Так я не понимаю как сервер определит какой сайт выдавать браузеру, если запросы в обоих случаях одинаковые. А что будет выдаваться если в браузере просто вбить 127.0.0.1?
И ещё. Как сделать, чтобы какой-нибудь виртуальный хост слушал только интерфейс ppp0, если адрес на нём динамический?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Apache в Debian Lenny

Сообщение SLEDopit »

sunny1983 писал(а):
03.09.2010 18:37
Так я не понимаю как сервер определит какой сайт выдавать браузеру, если запросы в обоих случаях одинаковые.
Это как это одинаковые? Там же site1 и site2.
вот, почитайте.
sunny1983 писал(а):
03.09.2010 18:37
А что будет выдаваться если в браузере просто вбить 127.0.0.1?
Первый загруженный виртуальный хост в апаче.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

sunny1983 писал(а):
03.09.2010 18:37
Так я не понимаю как сервер определит какой сайт выдавать браузеру, если запросы в обоих случаях одинаковые
запросы будут разные. то, что вы набираете в адресной строке браузера, передаётся http-серверу. который может предпринять разные действия в зависимости от того, что вы там набрали и что у него, сервера, написано в конфигурации.

p.s. подозреваю, что вас несколько сбивают с толку выбранные вами же имена.
измените директивы servername, находящиеся внутри блоков virtualhost на, например, такие:
site1.ru
site2.ru
больше ничего не меняйте, только добавьте в /etc/hosts строку
127.0.0.1 site1.ru site2.ru
и после reload-а апача в браузере у вас должно отобразиться то, что требуется, по обоим адресам http://site1.ru и http://site2.ru
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

Понятно, в GET-запросе, кроме адреса запрашиваемого файла, содержится имя хоста. А если клиент отправляет IP-адрес вместо имени хоста или отправляет имя хоста, которого в конфигурации сервера не существует, то клиенту как тут было сказано выдаётся первый загруженный виртуальный хост или хост определённый в общих настройках. А как сделать, чтобы в этом случае выдавалась страница с сообщением об ошибке?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

sunny1983 писал(а):
06.09.2010 12:14
А как сделать, чтобы в этом случае выдавалась страница с сообщением об ошибке?
вы же сами решение и описали:
sunny1983 писал(а):
06.09.2010 12:14
А если клиент отправляет IP-адрес вместо имени хоста или отправляет имя хоста, которого в конфигурации сервера не существует, то клиенту как тут было сказано выдаётся первый загруженный виртуальный хост или хост определённый в общих настройках.
вот и сделайте в первом virtualhost-е выдачу сообщения об ошибке.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
chamaco
Сообщения: 14
ОС: Debian Lenny 5

Re: Apache в Debian Lenny

Сообщение chamaco »

вот ТУТ все описано то что вам нужно, только на примере Ubuntu
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Apache в Debian Lenny

Сообщение sunny1983 »

Появился тут ещё один вопрос по apache2 от Debian.
Совершенно не обязательно. Если использовать виртуальные хосты, то там для каждого хоста все прописывается. Хоть в /tmp можно засунуть (:

Не так давно слышал, что держать сайты в /var/www - неверно, потому как /var вообще для этого не предназначен. В /home надо. Что тут на это скажут?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache в Debian Lenny

Сообщение sash-kan »

sunny1983 писал(а):
15.01.2011 18:42
Что тут на это скажут?
$ dpkg -S /var/www
yui, htdig, apache2.2-common: /var/www

если же сайты per-user-ные, то, естественно, располагаться они должны у юзеров в хоуме.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: