Работа с уеб-сървър Apache Руски

От уеб-базиран сървър руски Apache

Исторически погледнато, че българските текстове в интернет може да бъде представен в различни кодировки, от които най-често срещаната KOI8-R (или просто KOI8) и Windows-1251: от първите творби повечето от сървърите и работните станции, работещи Unix, втората е стандарт за всички версии на Windows. Тъй като Windows-1251, разбира се, се отнася и за по-голямата част на клиентски машини, делът на тези, които пътуват на руската част на WWW, като се използват KOI8, не повече от 5% днес. Въпреки това, в този кодиране документи се съхраняват на много Unix сървъри, това е най-често се предава съобщения от електронната поща, и почти винаги - писмото в телеконферентна връзка с работата си, тъй като много рускоговорящи IRC канали (между другото, съкращението KOI означава "Кодекс за информационен обмен"). За решаване на проблемите, произтичащи от разминаването на текстови кодировки на сървъра и на клиентската машина, и е създаден от български Apache-RUS модул за Apache уеб-сървър.

В тази статия ще разгледаме как да се инсталира и конфигурира и сървърната прекодиране механизъм документи "в движение".

Така че първото нещо, което трябва да се пренапише колата си архив (по-малко от 1.5 MB) и го разопаковате:

# Ftp ftp://apache.lexa.ru/pub/apache-rus/ apache_1.3.3rusPL27.3.tar.gz

# Tar xvzf apache_1.3.3rusPL27.3.tar.gz

След това въведете създава, когато разопаковате apache_1.3.3rusPL27.3 директория и да стартирате скрипт който ./configure:

Ако е необходимо, сценарият може да укажете в аргумента (списъкът, издаден от конфигуриране -help команда). Така че, ако искате да инсталирате на сървъра в друга директория, отколкото по подразбиране, трябва да се извърши "Configure -prefix =".

Когато конфигурирате е направено, трябва, както обикновено, даде марката и да инсталирате (тези действия са извършени от ползвателя на корен).

Сега сървърът е инсталиран в / ЮЕсАр / местни / Apache, но не можете да го все още тече - ние трябва първо да редактирате конфигурационните файлове httpd.conf, access.conf и srm.conf в директорията / ЮЕсАр / местни / Apache / и т.н. / (от версия 27.4 - / ЮЕсАр / местни / Apache / конф).

Конфигуриране на конфигурационните файлове на уеб сървър - най-важната стъпка, докато го инсталирате. Тук ние считаме, само най-общите директиви и параметрите, защото пълния списък с описание отнема повече от десетина страници. Сървърът чете конфигурационните файлове при стартиране, а също и по време на сигнала за подготовка -HUP (твърд рестарт) или -uSR1 (мека рестартиране). Ако сървърът е в експлоатация, се препоръчва да рестартирате команда, когато е промяна в конфигурацията

# Kill -USR1 `котка / ЮЕсАр / местни / Apache / трупи / httpd.pid`

В този случай, съществуващите връзки са затворени насила и завършени по обичайния начин, както и следните клиентите вече работят с новите конфигурационни файлове.

В access.conf съдържа директиви, които описват правата върху файловете и уеб-сървър. На първо място, да реши коя директория за съхраняване на документи. По подразбиране това е / ЮЕсАр / местни / Apache / акции / htdocs, обаче, много администратори предпочитат да се поставят документите, които започват от директорията / WWW /<имя_сервера>/ Тъй като подобна схема е по-лесно да се придвижвате в структурата на файла. Да предположим, например, ние създаваме директория:

Те ще се изкорени за виртуалния сървър.

access.conf файл може да съдържа раздел Directory, Местоположение и файлове, които са ограничени от същите указания име. Параметрите на тези директиви могат да се използват символи "?" и "*". както и регулярни изрази предшествани от тилда, например,

"^ / Www. + / A? Сървър">. В секцията Directory поставени инструкции важат за определена директория на диска, в раздела за местоположение - свързани с виртуален път в раздела Файлове - свързани с даден файл или група от файлове.

# директиви, които се отнасят до всички документи, държани от

указател /www/rmt.ru и инвестира в него

# директиви, свързани с всички налични документи

# директиви, свързани с файл от директорията form.html

Разликата между секциите Directory и местоположението е, че първият се отнася до директориите на диска, а вторият - за виртуален път (URL), който браузърът поиска уеб-сървър. И в този, и в другия може да присъства, за директива, позволи и да се отрека, които ви позволяват да ограничите достъпа до директорията, или URL адреса на различните машини.

Следващите две директиви се отнасят до точка .

Възможни настройки:

ExecCGI - допуснат изпълнение на CGI-скриптове в тази директория и нейните под-дърво;

Включва - позволи SSI (Server Side Includes);

Индекси - да се даде възможност на директории въпрос, ако няма index.html файл (или индекс файл е посочено директива DirectoryIndex);

MultiViews - даде възможност на поддръжка на множество езици; по подразбиране е изключен, включете го, и, като правило, не е необходимо; подкрепа транскодиране "в движение" за българския език е създаден от други директиви, които ще бъдат разгледани по-късно;

Всички - за да се установи наведнъж всички тези режими с изключение на MultiViews.

При липса на специфични изисквания за безопасност, че е напълно възможно да се уточни раздел "Опции всички" ; в противен случай е необходимо да се описват параметрите на всяка директория отделно.

Повечето директиви могат да се определят не само в конфигурационните файлове на сървъра, но също така и към .htaccess файла в директория на сървъра. директива AllowOverride определя набор от директиви, които се допускат в .htaccess файлове. Параметрите могат да бъдат определени, както следва:

FileInfo - позволи директиви за контрол на видовете документи;

Индекси - да се даде възможност на директивите, свързани с включването на директории;

Options - Опции за решаване на по-горе директива.

Имайте предвид, че когато последния начин, потребителите ще могат да създават свои собствени .htaccess файлове и да ги разреши при изпълнение на CGI-скриптове. Затова, ако искате да управлявате потребителски CGI-скриптове, не трябва да бъде удължен до потребителски директории операция директива AllowOverride Options.

Въпреки това, в много случаи (особено когато правото да променя съдържанието на сървъра е само за администратора) access.conf може да изглежда файл Обява 1.

srm.conf файл съдържа директиви, свързани с структурата на директориите на обща конфигурация на сървъра Ви. Като правило, това е достатъчно, за да се промени само с няколко реда.

DocumentRoot <первый каталог сервера>

UserDir <имя пользовательского каталога>

<имя_пользователя>/. Standard public_html. Понякога, за да направят живота по-лесно за потребителите, администраторите дават директивата "UserDir WWW".

DirectoryIndex <список файлов индекса>

индекс на файла - това е файл, който ще бъде изпратен на клиента при достъп до директорията. Ако посочите повече от едно име, сървърът ще се търси подходящ файл "ляво на дясно". По подразбиране, списъкът съдържа само едно име - index.html, но реши да добави към него и другите общи имена на файлове с индекс. Например, директивата може да бъде във вида: DirectoryIndex .index.html index.html index.htm index.cgi index.shtml home.html home.htm подразбиране HTM подразбиране HTML

В основата на всеки виртуален сървър създава missing.html файл. Препоръчително е да се даде го свързва с основните раздели на сървъра - за удобство на потребителите, както и да предостави необходимата информация за паяците, индексиращи сървъри.

httpd.conf конфигурационния файл е основно и съдържа настройки, свързани с експлоатацията на уеб сървъри, виртуални сървъри, както и всички негови софтуерни модули. В допълнение, това е мястото, където транскодиране регулира български букви на предаване от сървъра към клиента и обратно.

директива Port се намира в началото на файла, се посочва номера на порта на HTTP сървър; По подразбиране е 80. Ако е необходимо, сървърът може да бъде възложен на друг порт или няколко пристанища, което е Слушайте директива.

Потребителят и директиви Група определят на потребителя, който ще администрира сървъра. От гледна точка на сигурност, че не е желателно да се уточни тук съществуващ потребител с достъп до други ресурси или файлове. По-добре е да се създаде отделен потребител и група специално за на HTTP сървър, например:

директива ServerRoot, ErrorLog, CustomLog определи съответно в главната директория на HTTP сървър, пътят към дневника за списание грешка (error_log) и пътя към исканията за труп на сървъра (access_log).

директива CacheNegotiatedDocs позволява кеширане на документи, получени от сървъра. По подразбиране, този режим е забранено, но тъй като капацитетът на местните интернет-канали ще бъде дълго време да напусне какво да се желае, би било добре да го включи: ако потребителят не трябва да чакаме, за да качвате снимки за всеки достъп до вашия сайт.

Създаване на виртуални сървъри в httpd.conf

директива ServerName, което е извън секциите VirtualHost, посочва името на главния сървър, тоест. Д. сървъра Главната директория, която е посочена в srm.conf файла за директива DocumentRoot. Виртуални сървъри ще наследят настройките на основните; ако е необходимо, специални директиви за конфигуриране са поставени в раздел VirtualHost, отнасяща се до този сървър. Важи всички директиви, които могат да се срещнат в файлове и httpd.conf srm.conf, например DocumentRoot, ErrorLog, CustomLog, Местоположение, ServerAdmin.

Създаване транскодиране руски документи

Инструкции отговорни за транскодиране са естествено разделени на три групи. Първият е на двете директиви, които определят какво кодиране на файлове се съхраняват на диска: CharsetSourceEnc <кодировка> и CharsetByExtension <кодировка> <расширение1> <расширение2>.

Например, файлът може да съдържа httpd.conf реда:

CharsetByExtension прозорци-1251 .txt

Тази нотация означава, че всички файлове са записани на диск, кодиран KOI8-R; с изключение на текстови файлове с TXT разширение, което използва Windows-1251.

Ако повече от един кодиране и документи се съхраняват във всеки знак, посочен в каталога си, директиви CharsetSourceEnc, настанени в съответния раздел или .htaccsess файлове в директорията.

Втората група се състои директива CharsetDecl, CharsetAlias ​​CharsetRecodeTable и CharsetWideRecode таблица, която посочва името на кодиране, транскодиране и тяхното синоними маса. Всички от тях са разположени в участъка - и в повечето случаи не е необходимо да бъде променена.

Третият и най-многобройната група включва директиви, които определят реда на повторно кодиране на знаци от сървъра към клиента и гърба.

Предполага се, че когато са в контакт с потребителското руски език сървъра получава страница в "" кодиране се определя автоматично въз основа на информацията за операционната система, която предава браузър сървър: например, се установи, че потребителят работи на Windows, сървърът издава страница кодиран -дограма- 1251, и е приел, че тя работи на Unix, предвижда страница KOI8. Ако избраната страница по този начин не е подходящ, клиентът може да промените кодирането ръчно. Основният избор от три схеми: префикс директория, името на сървъра и порт номер на виртуална. Всеки един от тях има своите предимства и недостатъци.

За организирането на подбора на кодирането на директория префикс, което трябва да се направи всякакъв вид в раздел линия VirtualHost

Alias ​​/ Koi / WWW / RMT

или да създадете подходящата директория символичен самата връзка:

Когато изберете кодирането за името на сървъра е необходимо тази информация на съответните имена бяха дадени в конфигурацията на DNS-сървър, който поддържа домейна, а във файла httpd.conf в раздела VirtualHost на линия, се прави:

CharsetByPort KOI8-R 8100

CharsetByPort прозорци-1251 8101

CharsetByPort ibm866 8102

CharsetByPort изо-8859-5 8103

Портовете не са много важни. В стандартната конфигурация на Apache-RUS номерацията, както виждаме, като се започне с 8,100, но най-често започва с 8000 или 8080.

Тази схема не изисква никакви допълнителни записи в DNS, и ви позволява да работите с виртуални сървъри, дори и клиенти, които не поддържат HTTP / 1.1 протокола - за кодиране се избира въз основа на броя посочване на пристанище Web-сървър (по подразбиране е 80). Въпреки това, мрежови защитни стени понякога забраняват наемането на работа на някои пристанища, и ако е така на клиента защитната стена защитена мрежа, тя няма да бъде в състояние да се свърже с вашия сървър. За съжаление, тази ситуация се случва по-често, отколкото бихме искали.

Избор на кодиране схема определено директива CharsetSelectionOrder. Нейните параметри определят реда на прилагане на правилата за подбор. Така че, изборът на префикса директория мачове низ

CharsetSelectionOrder Dirprefix потребителски агенти-порт Hostname UriHostname

Изборът на име на домейн - низ

CharsetSelectionOrder Hostname UriHostname потребителски агенти-порт Dirprefix

За да изберете номера на порта трябва да бъде написано

CharsetSelectionOrder-порт на потребителски агенти Hostname UriHostname Dirprefix

За да забраните напълно повторно кодиране в каталога или на сървъра на виртуалната директива Кодова Изключване на.

В края на процедурата за провеждане трябва да работи уеб-сървър. За да направите това, вие трябва да влезете в системата с привилегиите на потребителя на корен и да даде командата

(От версия 27.4 - # / ЮЕсАр / местни / Apache / хамбар / apachectl започнете)

Код Лист 1 е прост файл Фрагмент access.conf

## access.conf - Apache HTTP сървър конфигурационен файл

# Access.conf: конфигурация Global достъп