Search     or:     and:
 LINUX 
 Language 
 Kernel 
 Package 
 Book 
 Test 
 OS 
 Forum 
iakovlev.org

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