Apache
(Fedora Core 3)
Как правило , апач и все , что к нему относится , лежит в пакетах , которые начинаются с префикса
httpd.
Для конфигурации апача можно запустить команду
chkconfig httpd on
Для вступления в силу изменений в конфиге , который лежит в /etc/init.d , нужно запустить
service httpd restart
Обычно основным конфигурационным файлом является
/etc/httpd/conf/httpd.conf
Вебсайты можно конфигурировать в секции
VirtualHost
Для сайта необходимо определить servername и DocumentRoot-какталог . Апач по умолчанию будет искать
в таком каталоге файл index.html.
Также по умолчанию апач будет искать все сайты в каталоге /var/www/html/.
Имеет смысл создать непривилегированного пользователя с рутовыми правами с домашней директорией
/home/www и дать ему рекурсивные права на все подкаталоги :
useradd -g users www
chown -R www:users /home/www
chmod 755 /home/www
ll /home/www/site1/index.*
Если при просмотре веб-сайта вы получаете 403 Forbidden , значит где-то неверные пермишины на файлы.
SE Linux , который встроен в Fedora Core 3 , имеет переключатель -Z для тестирования .
Если вместо каталога по умолчанию - /var/www/html - мы помещаем наш сайт в каталог /home/www ,
необходимо изменить контент-type для этого каталога :
ls -Z
Получаем ответ :
-rw-r--r-- www apache system_u:object_r:user_home_t index.html
Теперь выполняем
chcon -t httpd_sys_content_t index.html
ls -Z index.html
Получаем ответ :
-rw-r--r-- www apache system_u:object_r:httpd_sys_content_t index.html
Каждому отдельному сайту можно привязать отдельный IP - это делается с помощью директивы
NameVirtualHost 97.158.253.26
< VirtualHost *>
Default Directives. (In other words, not site #1 or site #2)
< /VirtualHost>
< VirtualHost 97.158.253.26>
servername www.my-site.com
Directives for site #1
< /VirtualHost>
< VirtualHost 97.158.253.26>
servername www.another-site.com
Directives for site #2
< /VirtualHost>
Рассмотрим конфигурацию :
Domain
|
IP address
|
Directory
|
Type of Virtual Hosting
|
www.my-site.com
my-site.com
www.my-cool-site.com
|
97.158.253.26
|
Site2
|
Name Based
|
www.test-site.com
|
97.158.253.27
|
Site3
|
Name Based
(Wild card)
|
www.another-site.com
All other domains
|
97.158.253.27
|
Site1
|
Name Based
|
www.default-site.com
|
97.158.253.26
|
Site1
|
Name Based
|
Скрипт для этой конфигурации :
ServerName localhost
NameVirtualHost 97.158.253.26
NameVirtualHost 97.158.253.27
#
# Match a webpage directory with each website
#
< VirtualHost *>
DocumentRoot /home/www/site1
< /VirtualHost>
< VirtualHost 97.158.253.26>
DocumentRoot /home/www/site2
ServerName www.my-site.com
ServerAlias my-site.com, www.my-cool-site.com
< /VirtualHost>
< VirtualHost 97.158.253.27>
DocumentRoot /home/www/site3
ServerName www.test-site.com
< /VirtualHost>
< VirtualHost 97.158.253.27>
DocumentRoot /home/www/site4
ServerName www.another-site.com
< /VirtualHost>
#
# Make sure the directories specified above
# have restricted access to read-only.
#
< Directory "/home/www/*">
Order allow,deny
Allow from all
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
< Limit GET POST OPTIONS>
Order allow,deny
Allow from all
< /Limit>
< LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
< /LimitExcept>
< /Directory>
Для того , чтобы запретить просмотр каталога путем вызова страницы по умолчания для данного каталога ,
нужно проставить опцию
Options -Indexes
При вызове несуществующей страницы можно обрабатывать ошибку путем перенаправления :
ErrorDocument 404 /missing.htm
Данный файл должен быть во всех подкаталогах .
Апач имеет возможность динамически сжимать содержимое статических веб-страниц и в таком виде отсылать контент клиенту.
Для этого в конфиге необходимо прописать модуль deflate .
После чего в /var/log/httpd/access_log можно проверить размер передаваемых страниц :
grep dns-static /var/log/httpd/access_log
Для защиты контента в апаче существует утилита htpasswd , которая генерит комбинацию пользователь-пароль,
htpasswd -c /etc/httpd/conf/.htpasswd peter
chmod 644 /etc/httpd/conf/.htpasswd
В конфиге апача нужно прописать :
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName EnterPassword
AuthType Basic
require user peter
Права:
chmod 644 /home/www/.htaccess
Конфиг апача :
< Directory /home/www/*>
AllowOverride AuthConfig
< /Directory>
< Directory /home/www/*>
AllowOverride AuthConfig
< /Directory>
Таблица формата файла /var/log/httpd/access_log :
Field #
|
Description
|
Separator
|
1
|
IP Address of the remote web
surfer
|
Spaces
|
2
|
Time Stamp
|
Square Brackets []
|
3
|
HTTP query including the web
page served
|
Quotes ""
|
4
|
HTTP result code
|
Spaces
|
5
|
The amount of data in bytes
sent to the remote web browser
|
Spaces
|
6
|
The web page that contained the
link to the page served.
|
Quotes ""
|
7
|
The version of the web browser
used to get the page
|
Quotes ""
|
Ошибки складируются в /var/log/httpd/error_log.
|
Тимуро | Слишком мало инфы, людям нужно больше! 2007-11-22 13:00:40 | |
|
|