Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Operating Systems > Unix
Register

Reply
 
LinkBack Thread Tools
Old 02.10.2002, 05:55   #1
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post Article: Apache Web Server

Apache Web Server
Установка, настройка и администрирование.
Автор: Vahram Igityan <[email protected]>

About:
Apache это веб сервер оргинально созданный для UNIX систем,имеющий свой API,
со встроеным механизмом защиты и авторизации, который подходит как для "домащных" сететй
так и для сайтов типа yahoo (сайт http://www.yahoo.com являеться самым посешяемым в Мире).

Краткая история:
После прекрщения существования проекта NCSA HTTPd (автором которого был
Rob McCool) многие программисты начали писать заплаты для этого севера в
целях устранения ошибок добавления новых функций, программисты постоянни
обменивалиць етими заплатами ни ети все дейцтвия были
неуправляемимы.Brian Behlendorf создал общедоступний репозиторий всеь
этих заплат так радился проект Apache (что означает A Patchy
- заплатаный).
По статистике компании NetCraft, Apache в настоящее
время является самым распространеным сервером в интернет.

На сегоднешный день употребляються две ветки Апапча:
</font><ul type="square"><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> 1.3.x Старая ветка которая являеться стабильной (автор советует скачать версию не ранее 1.3.26)
и использует стандарный вариант создания процесса в системах UNIX (fork)
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> 2.0.x Новая ветка, в которой усовершенстован Apache API(Для naписания модулей), и которая работает
методом UNIX Threads.
</font></li></ul><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Так как ветка 2.0.х еще на експеремтальном уровне и не советуеться использоваться как production server
то мы рассмотрим ветку 1.3.х

Установка:
Итак качаем Apache 1.3.26 с http://httpd.apache.org/ если нужен язык скриптинга PHP также качаем PHP s http://www.php.net/download.

Распаковываем : tar -xvzf apache_1.3.26.tar.gz
Переходим в директорию: cd apache_1.3.26

Есть 2 способа конфигурации апача, т.как этa статья назначена новичкам, я не буду описовать.
сложный метод.

Если мы не будем использовать PHP то набираем ./configure и Апаче начнет
готовить себя для установке в директорию /usr/local, (если вы хотите
другыю укавите ее с помощю --prefix=/my/path как ключь к configure).
Если вы устовавливаете сервер под виндовс то автор советует скачать
бинарнк апача под винндовс
с http://httd.apache.org/httpd/binaries/win32/)

Для активации PHP
Качаем PHP
Распаковываем: tar -xvzf php-4.x.x.tar.gz
Конфигурем: ./configure --with-apache=/path/to/apache_1.3.26

Переьодим в директорию апача:
./configure --activate-module=src/modules/php4/libphp4.a
ВНИНАНИЕ: директории /modules/php4/ да и файла libphp4.a не существют, они создаються при компиляции.

Если все прошло без ошибок набираем:
make
make install
(последную команду надо набирать от имени root-a)

После этого в директории /usr/local/apache/sbin/ (/usr/local замените на ваш prefix)
должен появиться файл httpd поздравлаю это и есть веб сервер!

Сервер управляеться при помощи команд: /usr/local/apace/bin/apachectl start|stop|restart)
В случае с rpm: /etc/init.d/httpd start|stop|restart


Конфигурация:
В каталоге /usr/local/apache/etc/ расположен файл httpd.conf , в случаи
если это RadHat или Mandrake Linux и Apache устоновлен с rpm то файл
конфигурации расположен в /etc/httpd/conf. В виндовс он расположен в
"c:/program files/apache group/apache/conf/httpd.conf" (Пути написанны
так специально т.к. апача там их так и понимает)
После каждого изменения в файле httpd.conf сервер надо перегружать.


Откройте httpd.conf в своем любимом редакторе (vim, pico, emacs, notepad).
Все строки со знаком # в начале это комментарии которые как и пустые строки игнорируються.
Директивы определены след. образом:
directive option1 option2...
однострочные

Code:
	<MultyLineDirective something>
	directive option1 option2..
	directive option1 option2..
	</MultyLineDirective>

Многострочные.


Директивы:
</font><ul type="square"><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">ServerType standalone которая может иметь значения inetd и snadalone.
inetd давно устарел, ставить его не имеет смысла вообще.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">ServerRoot /usr/local/apache обсолютный путь к катологу сервера.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Port 80 Порт на котором будет слушать сервер
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">User nobody
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Group nobody Имя пользователя от которого будет работать сервер (UNIX only)
ВНИМАНИЕ: Никогда не устонавливайте user на root это ПОТЕНЦИАЛЬНАЯ БРЕШ В БЕЗОПАСТНОСТИ.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">ServerAdmin [email protected] E-mail администратора сервера, который отображается н екране в случае.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> ServerName http://www.wizard.am Имя сервера, не путайте его с настройками DNS, если DNS http://www.wizard.am
не указывает на ваш сервер то он не будет отвечать на етот адрес.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">DocumentRoot /path/to/html/files Директория которую апаче будет обслужовать.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Alias /mydir/ /path/ouside/docroot/ Псвдоним для католога вне DocumentRoot
к которому можно обращяться по адресу http://www.myserver.am/mydir/
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">ScriptAlias /cgi-bin/ /path/to/cgi-bin/ Псевдоним для директории со скриптами
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">UserDir public_html имя котолога в домашнем каталоге пользователей в конкретной системе
в котором находятся обшедоступные фаылы, к которым можно обращяться по адресу http://www.mydomain.am/~username
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">DirectoryIndex index.htm index.html index.php файл который будет выдоваться сервером при
обращении к катологу например (при обращении к http://acid.land.am/ выдаеться http://acid.land.am/index.html )
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> AccessLog /path/to/access.log Путь к файлу журнала, в который пишутся запоросы
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> ErrorLog /path/to/error.log Путь к файлу журнала, в который пишутся неудачно оконченые запоросы
</font></li></ul><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Ограничение к доступу:
Ограничение к доступу осушествляется при помощи директивы Directory

Code:
	<Directory /www/html>
	Options None
	AllowOverride None
	
	Allow from All
	Deny from evil.machine
	</Directory>

(Все вышеуказаные настройки распространяются также на подкотологи.

Options:
</font><ul type="square"><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Indexes Если в катологе не обнарувено файлов из DirectoryIndex то будет выдан листинг
католога в HTML формате.
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Includes в этом катологе разрешено использовать Server Side Includes
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">FollowSynLinks если затребован файл которы
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">ExecCGI Запускать файлы как cgi скрипты в этой директории если на них стоит handler cgi-script
</font></li></ul><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">P.S. Если на каком нибудь каталоге установлен один из опций и на его подкатологе снять и/или уснатовить новую
опцию, то можно указать +- Option (например +Indexs)
AllowOverride:
.htaccess:
Чтоб каждый раз не редактировать httpd.conf то можно разрешить пользователям устанавливать опции самим
(например Аутентификацию, или -Indexes)

</font><ul type="square"><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Options Дополнительные опции
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">AuthConfig Дерективы доступа (об этом поговориться в разделе трюки данного руководства)
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Limit .htaccess может содержать директивы allow, deny, order
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">FileInfo разрешение измения информации о типе документа (AddType)
</font></li></ul><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Виртуальные Хосты:
Виртуальные Хосты бывают двух видов
</font><ul type="square"><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> На основе имен (например узел имеет один ip адрес и обслуживает несколько хостов)
</font></li><li><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica"> На основе ip аддрессов (т.е. каждый ip отвечает за конкретный хост)
</font></li></ul><font size="2" face="MS Sans Serif, , sans-serif, Verdana, Helvetica">Помню у меня как-то был сервер на котором былы как Name Based так и IP Based виртуаьные хосты.

Внинамие: Если на сервере стоит хотябы один виртуальный хост, то глобальный DocumentRoot теряет
свой смысл. При поытке обращения к северу на которм установленно неколько хостов путем написания
IP адреса выдаеться хост который был сконфигурирован первым.

Пример хостов на основе имен:
Code:
	<VirtualHost 1.2.3.4>
		ServerName www.domain.am
		ServerAdmin [email protected]
		ServerAlias domain.am
		DocumentRoot /www/virtual/domain.am/html
		ScriptAlias /cgi-bin/ /www/virtual/domain.am/cgi-bin/
		AccessLog /www/virtual/domain_am_access_log
		ErrorLog  /www/virtual/domain_am_error_log

		<Directory /www/virtual/domain.am/>
			Options None
			AllowOverride None
			Order allow,deny
			Allow from All
			Deny from None
		</Directory>
	</VirtualHost>
ServerAlias Указывает на имя-псевдоним например домаин http://www.domain.am можно также вызывать как domain.am
И другой тоже Хост который предназначен только для внутренегго использования
Code:
	<VirtualHost 1.2.3.4>
		ServerName internal.domain.am
		ServerAdmin [email protected]
		DocumentRoot /www/virtual/internal.domain.am/html
		ScriptAlias /cgi-bin/ /www/virtual/internal.domain.am/cgi-bin/
		AccessLog /www/virtual/internal_access_log
		ErrorLog  /www/virtual/internal_error_log

		<Directory /www/virtual/internal.domain.am/>
			Options None
			AllowOverride None
			Order allow,deny

			Allow from 192.168.0.0/255.255.255.0
			Deny from All
			
		</Directory>
	</VirtualHost>
Здесь также показан пример как отгородить конкретный домайн от Интернета
(предпологаеться что 192.168. это ваша локальная подсетка

Тоже самое делаться при IP-Based витуал хостах, просто вместо ip адреса прописоваться другой

Трюки:
1.Предположым вам надо запоролить конкретную директорию
Code:
	<Directory /www/secret>
	AuthType Basic
	AuthName &quot;my secret place&quot;
	AuthUserFile /www/passwords
	require valid-user
	</Directory>
Теперь в командной строке набираеться htpasswd -c /www/passwords username и пользователю ставится пароль.

2. У вас на сервере находятся файлы .ankap которые на самом деле содержат html код,
прописываем
AddType text/html .ankap


Сопрововждение:

Чтоб просмотреть статитику домайна я предлагау использовать программы webalizer(http://mrunix.net/webalizer)
Чтоб пролистать и "выловить из лога конкретную строку используйте след. команду:
grep "1.2.3.4" /path/to/access/log
Чтоб посмотреть последние 100 строчек:
tail -n100 /path/to/access/log
Чтоб мониторить лог в режиме реального времени:
[B] tail -f /path/to/access/log [B], по окончаниу просмотра нажмите Ctl+C



На этом я временно заканчиваю, буду рад услышать вашы вопросы, комментария,
поправления в орфографии, я собираюсь продолжить эту статью про другие боле
advanced директивы, написать про модули апача, про его API, примеры конфигурации,
администрирования Webalizer-а и других подобных программ.

© Vahram Igityan
__________________
Праздник к нам приходит...

|^^^^^^^^^'''^\| ||\__
| ВОДКА-ВОДКА | ||','''|'''''''\_____,_
| _..... _ | ||_ _|'__|_____||.........| |
'(@)'(@)'(@)''''''''''''''''''''''*|(@)""""|(@)*
Reply With Quote
Old 02.10.2002, 15:37   #2
»
 
z0mbie's Avatar
 
Join Date: 01 2002
Posts: 777
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Post

!

a shas vopros:

ya nikak ne mogu normal'no nastroit' php(u menya Apache pod win)

Code:
     <Directory &quot;C:/www/php/&quot;>
        AllowOverride None
        Options ExecCGI
        Order allow,deny
        Allow from all
    </Directory>

AddType application/x-httpd-php .php
Action application/x-httpd-php &quot;c:/php/php.exe&quot;
posle etogo pri popыtke zapustit' php poluchayu oshibku:

[error] c:/www/php/z.php is not executable; ensure interpreted scripts have "#!" first line
[error] couldn't spawn child process: c:/www/php/z.php

esli dobavit' v php file
#!c:/php/php.exe vse rabotaet

chto nepravil'no ?
Reply With Quote
Old 02.10.2002, 17:52   #3
Школьник
 
Join Date: 04 2002
Location: Vanadzor
Posts: 227
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Quote:
esli dobavit' v php file
#!c:/php/php.exe vse rabotaet

chto nepravil'no ?
vsyo pravilno
du vorpes CGI es ashxatacnum PHP-n, dra hamar el pti php.exe-i path@ gres.bayc es xorhurd ktam tenc chanes.

porci senc.

httpd.conf-i mej prosto avelacru es togher@ u php-n kashxati. filerd el voch te cgi-bin gci , ayl prosto htdocs.

LoadModule php4_module modules/php4apache.dll
Action application/x-httpd-php "/php/php.exe"
AddType application/x-httpd-php .php
Reply With Quote
Old 02.10.2002, 23:55   #4
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Z0mbie, sowetuu tebe zagruzit' module php v apache, variant straxa ne podxodit, nzado ukazatx direktoruu s filami php
1. nado ckopirowat' w papku c:\windows\ php4ts.dll
Code:
LoadModule php4_module c:/bin/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .php3 .phtml
Reply With Quote
Old 03.10.2002, 01:02   #5
»
 
z0mbie's Avatar
 
Join Date: 01 2002
Posts: 777
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Post

vo pervыx netu u menya nikakix dll
vo vtorыx esli ya ne xochu ix ispol'zovat' chto bez stroki #!.. nikak ne oboytis' ??
ona mne ochen' sil'no meshaet, iz-za nee nevozmozhno ispol'zovat' Header() :[
Reply With Quote
Old 03.10.2002, 01:07   #6
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

http://www.php.net/get_download.php?....2.3-Win32.zip
budet tebe etot dll )
Reply With Quote
Old 03.10.2002, 01:24   #7
Школьник
 
Join Date: 04 2002
Location: Vanadzor
Posts: 227
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Quote:
Originally posted by VX:
Z0mbie, sowetuu tebe zagruzit' module php v apache, variant straxa ne podxodit, nzado ukazatx direktoruu s filami php
1. nado ckopirowat' w papku c:\windows\ php4ts.dll
Code:
LoadModule php4_module c:/bin/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .php3 .phtml
net dorogoi moi rabotaet i eshe kak

2zombie

vor module-ov(dll) anes, arden et problem@ ches unena. php code-t kgres prosto <? ?> tegeri mech.

udachi.

mek el chmoranas php.ini.dist file-@ copy anes c:\windows\php.ini
Reply With Quote
Old 03.10.2002, 01:34   #8
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Soory for off-topic (prodojenniya razgowora po e-mailu)
Strax: Sporim na 100$?
Reply With Quote
Old 08.11.2002, 08:20   #9
Младенец
 
Join Date: 11 2002
Location: Wild Wild West
Posts: 17
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

Kstati po moemu rabotaet i v CGI variante tol'ko nujno pod windami nastroit accos tak chtob files s rashireniem php zapuskalis' pri pomoshi php.exe
komanda po moemu tak i [email protected] assoc
--
Dark
---
Reply With Quote
Old 21.03.2003, 07:42   #10
Младенец
 
Join Date: 09 2002
Location: Yerevan,Armenia
Posts: 10
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Default

офигительний copy-paste, вернее copies and pastes !!
Reply With Quote
Old 03.04.2003, 13:35   #11
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Karen, eto ne copy /past.

Protso kogda megrirovali s bazy odnogo foruma s drugogo, polichilis' eti '<font face>'-i
Reply With Quote
Old 03.04.2003, 13:52   #12
Младенец
 
Join Date: 09 2002
Location: Yerevan,Armenia
Posts: 10
Downloads: 1
Uploads: 0
Reputation: 0 | 0
Default

я имел ввиду какраз не теги а текст
Reply With Quote
Old 04.04.2003, 15:50   #13
Консервативн
 
VX's Avatar
 
Join Date: 01 2002
Location: Кавказская Албания
Posts: 889
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Карен, как вы думаете, если б ето был копи/паст? то было бы допусчено столько синтаксических и орфографических ошибок?
Или на это вы можете привести "довод" что это я "зделал так" чтоб потом оправдоваться?
Мне не зачем перед вами оправдоватся или что-то вам доказовать Г-н Мкоян, тем более в том что я не совершал.

И наконец если вы решите продолжать настаевать на своем, то попрошу высказовать мысль фактами, иначе я обращусь к модератору данной секции стереть ваши сообщения.

Чеерс Vahram Igityan
Reply With Quote
Old 21.04.2003, 15:30   #14
Creator
 
Join Date: 06 2002
Location: Sliema, Malta
Age: 39
Posts: 28
Downloads: 1
Uploads: 0
Reputation: 12 | 0
Question

Господа!
Такой вопрос на тему о Apache!
Кто нибудь использовал Apache 2.0.x + mod_ssl (ну и, разумеется, другие модули) на FreeBSD или на какой нибудь другой системе?
Прошу ваши мнения.
Reply With Quote
Old 21.04.2003, 18:53   #15
Moderator
 
acid's Avatar
 
Join Date: 09 2001
Location: South Korea, Gumi
Posts: 7,699
Downloads: 102
Uploads: 34
Blog Entries: 16
Reputation: 561 | 6
Default

А в чем собственно проблема? Apache 2.0 еще не stable, хотя www.apache.org сидит на нем.
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 19:17.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.