Вступление

Данный мануал написан на основе моего личного опыта установки связки Apache, PHP, MySQL, SMTP под Windows XP. Все инструкции приводятся для Windows XP (но и для других Windows систем семейства NT они будут верны, с некоторыми поправками), Apache 2.0.53, PHP 4.3.4, MySQL 4.1.11, SPECTral Personal SMTP Server 0.4.2.

Содержание мануала

1. Вступление

2. Об этом руководстве

3. Дистрибутивы

4. Установка
4.1 Установка Apache
4.2 Установка PHP
4.3 Установка MySQL
4.4 Установка SMTP

5. Настройка
5.1 Настройка Apache
5.2 Настройка PHP
5.3 Настройка MySQL
5.4 Настройка SMTP

6. Настройка файрвола

7. Тестирование

8. Ошибки
8.1 Ошибки. Вступление
8.2 Примеры возможных ошибок и способов их исправления

9. Полезные ссылки

Приложение
Русский перевод файла "httpd.conf"
Русский перевод файла "php.ini"

Также к этому руководству прилагаются готовые файлы для пост-установочного тестирования конфигурации Apache, PHP, MySQL и SMTP. Если у вас их нет, то вы можете получить их, скачав архив с полной версией данного мануала на сайте http://neebet.com.

Удачи!!!


Об этом руководстве

Лицензионное соглашение

Все права на данное руководсво (в дальнейшем - "Руководство") принадлежат его автору. Вы можете свободно распрострянять "Руководство", делать миллиарды копий, делать доступным для скачивания на любых сайтах и т. д. Вы можете продать "Руководство" какому-нибудь идиоту (ну не купит же его нормальный человек?). В этом случае вы должны поделиться с автором полученными ценностями. В случае, когда использование "Руководства" помогло вам в получении материальной прибыли (например, вы с помощью "Руководства" настроили веб-сервер Apache, тестировали на нем свой сайт, потом выложили сайт в Интернете и он принес вам прибыль), то вы должны выплатить автору денежную сумму в размере от 70 до 99% (на усмотрение автора), от полученной вами, с помощью "Руководства", прибыли. При использовании материалов "Руководства" ссылка на сайт http://neebet.com обязательна. Если вы не поставите ссылку на этот сайт мы вас найдем и жестоко покараем. Все, дальше в падлу писать. А. Вот еще. Если вы каким-либо образом используете "Руководство" (по прямому или не прямому назначению: читаете, что в нем написано, выкладываете его в Сети, продаете на рынке, храните на каком-либо накопителе, удаляете его и т. д.), то вы автоматически принимаете данное Лицензионное соглашение.

Об авторе

Автор данного мануала - не совсем вменяемый социопат, лауреат Нобелевской Премии Мира 2050 года, контр-культурный "писатель", падонок и вообще редкостный негодяй - Подлый Электрик.

Обратная связь

Отзывы, пожелания, предложения, поправки, дополнения и пр. можно либо: оставить в гостевой, где вам всегда будут рады и с удовольствием ответят на ваши вопросы, либо отправить на e-mail - electric_nah@mail.ru.

(c) 2005 - Подлый Электрик


Дистрибутивы Apache, PHP, MySQL, SMTP

Дистрибутивы. Какие выбрать и где их взять

Как выбрать подходящий дистрибутив

При написании данного мануала я устанавливал дистрибутивы: Apache 2.0.53, PHP 4.3.4, MySQL 4.1.11, SPECTral Personal SMTP Server 0.4.2. Это не самое лучшее сочетание. Я рекомендую вам использовать Apache 2.0.5x, PHP 4.3.x, MySQL 4.1.xx, SPECTral Personal SMTP Server 0.4.3.

При выборе дистрибутива, имхо, не стоит гнаться за последними версиями. Лучше скачать более ранний, но и более надежный дистрибутив. Однако, если в новой версии нет никаких нововведений, а только пофиксены баги предыдущей, то естественно стоит качать последнюю. Также можно ориентироваться на ту версию, которая установлена у вашего хостинг-провайдера.

Apache

Загрузить Apache можно здесь.
Какую версию выбрать? На данный момент есть две версии: Apache 1.3.33 и Apache 2.0.54. Они значительно отличаются друг от друга. Чем - сами прочитаете. Как утверждают многие люди, второй Apache не очень дружит с PHP и вообще полон багов. Не знаю как насчет 2.0.54, но 2.0.53 вызвал много нареканий. Лично у меня он работал вполне нормально. Размер дистрибутива примерно 4 Mb.

PHP

Загрузить PHP можно здесь.
С PHP также возникает проблема выбора дистрибутива, как и с Apache. Сейчас доступны две версии: PHP 5.0.4 и PHP 4.4.0. Я не рекомендую качать ни ту ни другую. Зайдите сюда и скачайте там какой-нибудь дистрибутив PHP 4.3.x. В этой статье речь пойдет о версии 4.3.4. Если вы все же решите установить себе PHP 5, то качайте последнюю версию (на сегодня это PHP 5.0.4). Обратите внимание, что инсталлятор в виде exe-файла - это сильно урезанная версия PHP. Кроме нее вам нужно скачать zip-архив с полной версией, которая содержит расширения PHP. Весит все это около 7-10 Mb, в зависимости от релиза.

MySQL

Загрузить MySQL можно здесь.
Качаем MySQL 4.1. Размер - 37 Mb.

SMTP

Найти хороший бесплатный SMTP-сервер под Windows не так-то просто. Хотя я особо и не искал. Довольно не плохой, неглючный, удобный почтовик с русскоязычным интерфейсом - SPECTral Personal SMTP Server. Я пользуюсь версией 0.4.2. Скачать последнюю можно на сайте программы. Весит она менее мегабайта.


Установка Apache

Запускаете установщик:

Установка Apache. Шаг №1

Принимаете лицензионное соглашение:

Установка Apache. Шаг №2

Далее жмете "Next":

Установка Apache. Шаг №3

В строке "Network Domain" пишите "localhost" (здесь и далее - без кавычек), в строке "Server Name" - "localhost", в строке "Administrator's Email Address" - ваш адрес электронной почты (он будет выводиться в браузер при некоторых ошибках сервера как e-mail администратора); ниже выбираете опцию "for All Users, on Port 80, as a Service - Recommended" (Apache будет запускаться как сервис):

Установка Apache. Шаг №4

В следующем окне выбирайте тип установки - "Typical":

Установка Apache. Шаг №5

Далее указывайте куда установить Apache; я рекомендую ставить его в "C:\Server\Apache", т. к. далее во всех разъяснениях будут использоваться пути, котрые я указал:

Установка Apache. Шаг №6

В следующем окне нажимаете "Install":

Установка Apache. Шаг №7

Когда установка закончится - нажимайте "Finish":

Установка Apache. Шаг №8

В системном трее должен появиться значок монитора сервера с зеленым треугольником (Apache запущен):

Значок Apache в системном трее

Установка завершена.


Установка PHP

Запускаете инсталлятор:

Установка PHP. Шаг №1

Принимаете лицензионное соглашение:

Установка PHP. Шаг №2

В следующем окне выбирайте тип установки - "Standard":

Установка PHP. Шаг №3

Путь для установки - "C:\Server\PHP":

Установка PHP. Шаг №4

Затем, указываете SMTP сервер - "localhost", адрес для поля "from" - ваш адрес электронной почты:

Установка PHP. Шаг №5

Следующее окно - выбираете "Apache" или, лучше "None":

Установка PHP. Шаг №6

Чтобы начать установку нажимаете "Next":

Установка PHP. Шаг №7

Теперь самое важное. После завершения установки - распаковываете архив (тот, который вы скачивали вместе с инсталлятором) с расширениями в папку с установленным PHP. На вопрос о замене файлов, ответьте "Заменить все". Теперь у вас установлена полная версия PHP.


Установка MySQL

Запускаете программу инсталляции:

Установка MySQL. Шаг №1

Выбираете тип установки - "Custom":

Установка MySQL. Шаг №2

Отмечаете все компоненты, указываете папку для установки - "C:\Server\MySQL":

Установка MySQL. Шаг №3

В следующем окне нажимаете "Install":

Установка MySQL. Шаг №4

После установки отмечаете опцию "Skip Sign-Up":

Установка MySQL. Шаг №5

Установка закончена. Далее вам будет предложено сконфигурировать MySQL. Откажитесь:

Установка MySQL. Шаг №6

Конфигурирование MySQL описано в соответствующем разделе.


Установка SMTP

Установка программы SPECTral Personal SMTP Server очень проста. Запустите установщик и следуйте инструкциям.


Настройка Apache

Файл "httpd.conf"

Основной файл конфигурации этого сервера - "httpd.conf". Лежит он в каталоге "conf" в root-директории Apache. Вот над ним вам и придеться издеваться. Скажу сразу, если вы не понимаете английского, удалите из этого файла все комментарии и пояснения, оставьте только сами директивы (и закоментированные тоже); таким образом вы сможете быстрее находить нужную директиву, не роясь среди множества непонятных вам пояснений. Синтаксис файла очень простой: "директива значение", все строки не соответствующие этому виду можно удалить.

ACHTUNG! Некоторые директивы могут выглядеть так:

#директива значение

<блок директив />
директива значение
</блок директив>

<блок директив />
# Комментарий
директива значение
# Комментарий
</блок директив>

 и т. п. Эти строки удалять не нужно!

Символ комментария в "http.conf" - "#" (решетка). Т. е. все символы, идущие в строке после "#" не воспринимаются сервером. Так вы можете добавлять собственные комментарии. Убирая этот символ перед закомментированными строками вы делаете их доступными для чтения сервером.

Общие настройки

Вам нужно будет сделать правку файла "httpd.conf". У некоторых директив изменить значение, другие раскомментировать, третьи добавить. Далее я приведу список директив и их значений, которые должны присутствовать в файле конфигурации Apache.

Каталог с файлами сервера (не путать с "DocumentRoot"):

ServerRoot "C:/Server/Apache/Apache2"

Привязывает Apache к конкретному порту:

Listen 80

Имя сервера (на работу это не влияет):

ServerName localhost:80

Администратор сервера. Содержит ваш адрес электронной почты, который будет отображаться при некоторых ошибках сервера:

ServerAdmin your@email.name

Вам необходимо создать папки, где будут храниться ваши сайты. По умолчанию Apache устанавливает "DocumentRoot" - "%ServerRoot%/htdocs" (т. е. если вы установили Apache в папку "C:\Server\Apache", то "DocumentRoot" будет выглядеть так: "C:/Server/Apache/Apache2/htdocs"). Вы должны изменить значение "DocumentRoot" на "C:/Sites/home/localhost/www".

DocumentRoot "C:/Sites/home/localhost/www"

Строго следуйте моим инструкциям, чтобы быть уверенными, что все это у вас потом заработает. Создайте на диске "C:" папку "Sites". В ней создайте каталог "home", уже в нем - "localhost", "neebet", "mysite". В каждую из этих папок ("localhost", "neebet", "mysite") положите каталоги "www" (для хранения html документов), "cgi" (для хранения cgi-скриптов), пустые файлы access.log (журнал доступа к серверу) и error.log (журнал ошибок сервера). Т. о. структура каталогов, в которых будут храниться ваши сайты должна выглядеть так:

Структура каталогов для ваших сайтов

Зачем это нужно, поймете потом, а сейчас просто сделайте как я говорю.

Далее замените блок "<Directory "C:/Server/Apache/Apache2/htdocs">" на следующее:

<Directory "C:/Sites">
Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Этими директивами вы разрешите просмотр содержимого каталога в браузере при отсутствии индексных файлов, включите поддержку SSI, разрешите использовать файлы .htaccess для настройки каталогов и разрешите доступ для всех к сайту.

Задание индексного файла для директории (этот файл сервер будет отображать при обращении к каталогу без указания имени файла):

DirectoryIndex index.php index.html index.html.var

Настройки CGI

Задание псевдонима для каталога с cgi-скриптами "C:\Sites\home\localhost\cgi". При указании пути вида http://localhost/cgi/ или http://localhost/cgi-bin/, Apache будет обращаться к каталогу "C:\Sites\home\localhost\cgi":

ScriptAlias /cgi/ "C:/Sites/home/localhost/cgi/"
ScriptAlias /cgi-bin/ "C:/Sites/home/localhost/cgi/"

Каталог "C:\Sites\home\localhost\cgi" также будет доступен вашим виртуальным хостам при обращении вида "http://имя_виртуального_хоста/cgi-bin/cgi-скрипт.bat". Напрмер, если вы введете в браузере http://neebet/cgi-bin/cgitest.bat, то будет выполнен код, находящийся в файле "C:\Sites\home\localhost\cgi\cgitest.bat", который также доступен по адресу http://localhost/cgi/cgitest.bat. У виртуальных хостов есть свой каталог для cgi-скриптов, доступный по адресу "http://имя_виртуального_хоста/cgi/cgi-скрипт.bat". Каталоги "cgi" не доступны для просмотра в браузере, и при прямом обращении к ним вы получите сообщение об ошибке "403".

Указывает Apache, что файлы с расширением "cgi", "bat", "exe" нужно воспринимать как cgi-скрипты:

AddHandler cgi-script .cgi .bat .exe

Блок "<Directory "C:/Server/Apache/Apache2/cgi-bin">" замените на:

<Directory "C:/Sites/home/localhost/cgi">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

Языковые настройки

Остальные строки вида "AddLanguage lang .lang" можете закомментировать (если конечно вам не нужна поддержка этих языков):

AddLanguage en .en
AddLanguage ru .ru

Устанавливает языковой приоритет:

LanguagePriority en ru

Настройка кодировок:

AddDefaultCharset WINDOWS-1251
AddCharset WINDOWS-1251 .cp-1251 .win-1251

Настройки PHP

Подключение PHP:

AddType application/x-httpd-php php phtml
ScriptAlias /_php_/ "C:/Server/PHP/"
Action application/x-httpd-php "/_php_/php.exe"

Настройки SSI

Включение SSI:

AddType text/html .shtml
AddHandler server-parsed .shtml .html .htm

Теперь основные дерективы заданы. Для вступления изменений в силу - перезапустите Apache.

Виртуальные хосты

Итак, вы создали каталог "localhost" для хранения и тестирования документов вашего сайта. Но если у вас не один сайт? Можно конечно создать каталоги для других сайтов внутри "localhost" и обращаться к ним "http://localhost/site", но это не совсем удобно. Тем более, что Apache дает возможность решить эту проблему с помощью виртуальных хостов. Есть два вида виртуальных хостов: отдельные для каждого IP адреса и использующие один IP (name-based хосты). Я объясню как настроить последние.

Вы уже создали ранее папки "neebet" и "mysite" в директории "home". Это и есть корни ваших виртуальных хостов. В них должны быть папки "www" и "cgi", файлы access.log и error.log. Т. е. все так же как и с каталогом "localhost". Все ваши виртуальные хосты будут использовать IP "127.0.0.1".

Добавьте в файл "httpd.conf" следующее:

NameVirtualHost 127.0.0.1

#localhost

<VirtualHost localhost>
ServerAdmin me@localhost
ServerName localhost
DocumentRoot "C:/Sites/home/localhost/www"
ScriptAlias /cgi/ "C:/Sites/home/localhost/cgi/"
ErrorLog C:/Sites/home/localhost/error.log
CustomLog C:/Sites/home/localhost/access.log common
</VirtualHost>

#neebet

<VirtualHost neebet>
ServerAdmin me@neebet
ServerName neebet
DocumentRoot "C:/Sites/home/neebet/www"
ScriptAlias /cgi/ "C:/Sites/home/neebet/cgi/"
ErrorLog C:/Sites/home/neebet/error.log
CustomLog C:/Sites/home/neebet/access.log common
</VirtualHost>

#mysite

<VirtualHost mysite>
ServerAdmin me@mysite
ServerName mysite
DocumentRoot "C:/Sites/home/mysite/www"
ScriptAlias /cgi/ "C:/Sites/home/mysite/cgi/"
ErrorLog C:/Sites/home/mysite/error.log
CustomLog C:/Sites/home/mysite/access.log common
</VirtualHost>

Можно добавить в блоки "<VirtualHost>" и другие параметры, однако лучше управлять виртуальными хостами с помощью .htaccess. Также стоит отметить, что все параметры, не указанные в блоках "<VirtualHost>" или в .htaccess, наследуются от главного хоста (т. е. от "localhost").

Т. о. вы настроили Apache для работы с виртуальными хостами. Имена, естесственно, можно изменить, но при этом будте внимательны с путями!

Теперь определимся с тем, как Windows узнает о существовании виртуальных хостов? Для этого придется отредактировать файл "hosts" (не путать с файлом "hosts.sam"), хранящийся в папке "%WINDOWS%\System32\drivers\etc". Выглядит он примерно так:

# (C) Корпорация Майкрософт (Microsoft Corp.), 1993-1999
#
# Это образец файла HOSTS, используемый Microsoft TCP/IP для Windows.
#
# Этот файл содержит сопоставления IP-адресов именам узлов.
# Каждый элемент должен располагаться в отдельной строке. IP-адрес должен
# находиться в первом столбце, за ним должно следовать соответствующее имя.
# IP-адрес и имя узла должны разделяться хотя бы одним пробелом.
#
# Кроме того, в некоторых строках могут быть вставлены комментарии
# (такие, как эта строка), они должны следовать за именем узла и отделяться
# от него символом '#'.
#
# Например:
#
# 102.54.94.97 rhino.acme.com # исходный сервер
# 38.25.63.10 x.acme.com # узел клиента x

127.0.0.1 localhost

В него нужно будет дописать две строки:

127.0.0.1 neebet
127.0.0.1 mysite

Теперь, при обращении http://neebet загрузится содержимое "C:\Sites\home\neebet\www".

Для вступления изменений в силу - перезапустите Apache.


Настройка PHP

Файл "php.ini"

Конфигурационный файл PHP - "php.ini". Обнаружить его можно здесь: "%WINDOWS%\php.ini". Бэк-ап лежит в папке "PHP\BACKUP". С этим файлом стоит поступить так же, как и с "httpd.conf", т. е. удалить из него все комментарии и пояснения. Синтаксис файла: "директива = значение". Выглядеть это может по разному:

директива = значение ; пояснение
директива =
;директива = значение
;директива =

и т. п.

Знак комментария в php.ini - ";" (точка с запятой). Все, что находится в строке после ";" не воспринимается PHP.

Общие настройки

Так же как и в случае с "httpd.conf", вам нужно будет сделать правку файла "php.ini".

Директива, разрешающая заключать PHP-код в короткие тэги:

short_open_tag = On

Т. е. вот в такие "<? ?>", вместо таких "<?php ?>" или "<script>".

Вывод ошибок в браузер. Для облегчения отладки сценариев:

display_errors = On

Показывать все ошибки, кроме замечаний:

error_reporting = E_ALL & ~E_NOTICE

Запись ошибок в файл журнала. Для локального тестирования лучше отключить:

log_errors = Off

Порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными. Задайте следующий порядок:

variables_order = "EGPCS"

Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, "$переменная"). Не рекомендуется включать эту опцию, но включайте, иначе вы сможете обращаться к этим переменным только через суперглобальные массивы (например, "$_POST['переменная']):

register_globals = On

Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie:

magic_quotes_gpc = Off

Загрузка файлов

Разрешает загрузку файлов:

file_uploads = On

Каталог для временных закачанных файлов (не забудте создать этот каталог!):

upload_tmp_dir = C:\Temp\uploadtemp

Максимальный размер закачиваемого файла:

upload_max_filesize = 5M

Динамически загружаемые расширения

Путь к папке с расширениями PHP:

extension_dir = extensions

или абсолютный:

extension_dir = C:\Server\PHP\extensions

Подключение динамических библиотек. Включайте только те, которые вам нужны. Для подключения того или иного расширения просто раскомментируйте нужную строку. Например, для подключения графической библиотеки GD, раскомментируйте следующую строку:

extension=php_gd2.dll

Настройка SMTP-сервера

Используемый SMTP-сервер:

SMTP = localhost

Порт:

smtp_port = 25

Адрес, который будет указываться в поле "From" в элетронных письмах:

sendmail_from = your@email.name

Настройка MySQL

ACHTUNG! В каких-то версиях PHP, поддержка MySQL встроена в ядро, и следовательно, никаких дополнительных расширений для работы с этой БД подключать не надо, а в каких-то нет. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки "php_mysql.dll", то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить:

extension=php_mysql.dll

Указание порта:

mysql.default_port = 3306

и хоста MySQL по умолчанию:

mysql.default_host = localhost

Настройка сессий

Хранить данные сессий в файлах:

session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

session.save_path = C:/Temp/session

Использовать cookie в сессиях:

session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:

session.name = PHPSESSID

Запрет на инициализацию сессии при начале соединения:

session.auto_start = 0

Время жизни сессионных cookie ("0" - до закрытия окна браузера):

session.cookie_lifetime = 0

ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie):

session.use_trans_sid = 1

Настройка PHP завершена. Перезапустите Apache для вступления в силу сделанных изменений.


Настройка MySQL

Настроить MySQL вы можете сразу же после установки, отметив опцию "Configure the MySQL server now". Откроется окно мастера конфигурации.

Мастер конфигурации MySQL

По порядку отмечаете опции:

Detailed Configuration
Developer Machine
Multifunctional Database
Decision Support (DSS)/OLAP
Enable TCP/IP Networking
Port Number: 3306
Manual Selected Default Character Set / Collation: cp1251
Install As Windows Service
Launch the MySQL Server automatically
Modify Security Settings

Вводите и подтверждаете root-пароль.

Настройка MySQL сервера закончена.

В дальнейшем вы можете изменить настройки либо воспользовавшись ярлыком "MySQL Server Instance Config Wizard" в меню "Пуск", либо с помощью правки файла my.ini из каталога MySQL, либо запустив "MySQL Server Instance Config Wizard" из подкаталога "bin" (файл "MySQLInstanceConfig.exe").


Настройка SMTP

Все настройки приводятся для программы SPECTral Personal SMTP Server, версии 0.4.2. Конфиг-файл лежит в каталоге с программой и называется "spsmtp.ini". Этот файл гораздо меньше "httpd.conf" и "php.ini", и содержит только сами директивы, управляющие работой сервера, без каких либо комментариев и пояснений.

Но я объясню как настраивать SPECTral Personal SMTP Server через стандартный графический интерфейс.

Откройте меню настроек через главное окно программы, или нажав "Ctrl+Alt+O".

Вкладка "Запуск и интерфейс", отметьте все пункты из этого списка, остальное отключите (далее поступайте так же):

Запускать вместе с Windows
Только для меня
Запускать свернутым
Сворачивать программу при щелчке на "X"
Язык интерфейса: Russian

Вкладка "Отчеты":

Очищать отчет после (строк): 100

Вкладка "Сервер":

Порт сервера: 25
Ограничить размер письма (МБайт): 5
Отключить аутентификацию (НЕ РЕКОМЕНДУЕТСЯ!)

На вкладке "Сервер/Фильтр подключений":

Принимать только разрешенные подключения
Разрешенные: 127.0.0.1

Вкладка "Отправка":

Сохранять успешно отправленные
Использовать A-доставку при неуспешной MX
Пытаться начать отправку при получении
Всплывающая подсказка с результатами
Показывать процесс отправки в отдельном окне

Вкладка "Дополнительно":

Автоматически перезапускать после критического сбоя

Настройка закончена. Сервер будет перезапущен автоматически.


Настройка файрвола

Все установленные вами сервисы будут запрашивать сетевые подключения, и ваш файрвол, скорее всего, будет пытаться их блокировать и надоедать вам. Чтобы вы не сошли с ума, до того, как настроите файрвол для работы со всеми вашими серверами, я сразу напишу как это сделать (настроить файрвол).

Apache

Разрешить все исходящие соединения по протоколу "TCP" на IP "127.0.0.1", порт "80".
Разрешить все входящие соединения по протоколу "TCP" с IP "127.0.0.1", порт "80".
Все остальные соединения запретить.

PHP

Разрешить все исходящие соединения по протоколу "TCP" на IP "127.0.0.1", порт "80", "3306" и "25".
Все остальные соединения запретить.

MySQL

"mysql.exe":
Разрешить все исходящие соединения по протоколу "TCP" на IP "127.0.0.1", порт "3306".
Все остальные соединения запретить.

"mysqld-nt.exe":
Разрешить все входящие соединения по протоколу "TCP" с IP "127.0.0.1", порт "3306".
Все остальные соединения запретить.

SMTP

Разрешить все исходящие соединения по протоколу "TCP" на любые IP, порт "25".
Разрешить все входящие соединения по протоколу "TCP" с IP "127.0.0.1", порт "25".
Все остальные соединения запретить.

ACHTUNG! Если у вас нет файрвола, то лучше вам его в ближайшее время установить. А иначе хакеры могут получить полный доступ к вашей машине и, например, похитить конфиденциальную информацию, использовать ваш компьютер в качестве платформы для каких-либо атак, спам-рассылок и т. п. От настоящих кул-хацкеров файрвол вас конечно же не спасет, а от малолетних дегенератов, начитавшихся журнала "Хакер" - вполне сможет защитить. Рассказывать сейчас о принципах работы файрвола, уязвимостях вашей машины, взломе и т. п. я конечно не буду, вы наверняка это сами знаете (если не знаете - прочитаете, не маленькие). И еще, для тех, кто пренебрегает сетевой безопасностью - если у вас статический внешний IP, просто введите его в адресной строке браузера, при работающем Apache, - перед вами предстанет содержимое вашего "Document Root".

Какой файрвол установить? Забудте о всяких "Kaspersky Anti-Hacker", встроенном брандмауэре Windows и т. п. дряни. Один из самых надежных - Agnitum Outpost Firewall Pro. Это удобная и мощная программа: имеет множество настроек - вы сможете провести очень тонкую настройку под свои нужды (малые и большие); встроенные модули: фильтрация почты, блокировщик рекламы, блокировщик интерактивных элементов (JavaScript, Java, Flash и т. д.), поддержка русскоязычного интерфейса и еще куча преимуществ. Для новичков подойдет Zone Alarm Pro. Простой в установке и настройке файрвол, обеспечивающий надежную защиту вашего компьютера в Интернете и локальной сети.


Тестирование

После установки необходимо все протестировать. Для тестов вам нужно будет создать несколько файлов и положить их в подкаталоги "www" или "cgi" каталога "localhost". Вы также можете воспользавоться готовым набором файлов для тестирования конфигурации, которые прилагаются к этому мануалу. Инструкции по установке вы найдете в файле "ReadMe.txt", в папке с тест-файлами. Если вы располагаете только данной статьей, то вам стоит загрузить полную версию мануала; сделать это можно здесь.

Если вы будете пользоваться готовыми тест-файлами, плилагающимися к этому руководству, то после их копирования наберите в адресной строке браузера http://localhost. Вы увидите примерно это:

Жмите на ссылки. Если вы все правильно настроили, то после нажатия на ссылку, вы должны увидеть следующее:

для CGI - "CGI тест прошел успешно - cgitest.bat!";

для SSI - "SSI тест прошел успешно - ssi.html!" и "SSI тест прошел успешно - ssi.bat!";

для PHP - "PHP тест прошел успешно - phptest.php!" и информация о конфигурации PHP, вызванная функцией phpinfo();

для GD - GD

Пройдя по ссылке "SMTP тест", введите адрес электронной почты, на который будет отправлено тестовое сообщение. После того, как ваш SMTP-сервер отправит послание, заберите почту с этого ящика. В письме должно быть написано "SMTP тест прошел успешно - smtptest.php!".

MySQL тест. Введите пароль root и нажмите "Connect". При удачном коннекте будет выведено сообщение: "MySQL тест прошел успешно - mysqltest.php!", а при неудачном - сообщение об ошибке.

Если у вас нет готовых тестовых файлов, то вам придеться создать их самим. Ниже описано как это сделать.

Тестирование CGI

Создайте файл cgitest.bat и положите его в "localhost\cgi". Файл должен содержать следующий код:

@echo off
echo Content-type: text/html
echo.
echo.
echo CGI тест прошел успешно - cgitest.bat!

Введите в браузере http://localhost/cgi/cgitest.bat или http://localhost/cgi-bin/cgitest.bat. Результат, как в случае с этим файлом, так и далее, будет почти таким же, что описан для готовых тест-файлов.

Тестирование SSI

Создайте в "localhost\www" два файла: "ssitest.html"

<!--#include virtual="/ssi.html" -->

и "ssi.html"

SSI тест прошел успешно - ssi.html!

Пройдите по ссылке http://localhost/ssitest.html. Вы должны увидеть: "SSI тест прошел успешно - ssi.html!".

Тестирование PHP

В "localhost\www" создайте файл phptest.php:

<?
echo "PHP тест прошел успешно - phptest.php!<br><br>";
phpinfo();
?>

Введите в браузере http://localhost/phptest.php.

Тестирование GD

После того как вы удостоверились в работоспособности самого PHP, можно проверить его графические функции - библиотеку GD (о том, как установить эту библиотеку читайте в разделе "Настройка PHP"). Для этого в "localhost\www" создайте файл "gdtest.php":

<?
$pic=imagecreate(350,100);
$piccolor=imagecolorallocate($pic, 255,255,255);
$textcolor=imagecolorallocate($pic, 0,0,0);
$linecolor=imagecolorallocate($pic, 0,0,255);
$text="GD test successful - gdtest.php!";
imagerectangle($pic, 1,99, 349,0, $linecolor);
imagestring($pic,5,30,40, $text, $textcolor);
header("content-type: image/png");
imagepng($pic);
imagedestroy($pic);
?>

Кликните на http://localhost/gdtest.php. Вы увидите картинку с надписью "GD test successful - gdtest.php!".

Тестирование SMTP

В "localhost\www" создайте файл "smtptest.php":

<?
if(!isset($go)) {
echo "<form name=mailform action=smtptest.php method=POST>";
echo "Введите адрес, на который будет отправлено сообщение:<input name=email type=text size=30>";
echo "<input type=submit value=Отправить почту name=go>";
echo "</form>";
}
else {
mail("$email", "Test", "SMTP тест прошел успешно - smtptest.php!");
echo "Проверьте почту на ".$email;
}
?>

Откройте http://localhost/smtptest.php, введите адрес, на который будет отправлено сообщение. Если ваш SMTP-сервер правильно настроен, почта будет отправлена. Получите почту с указанного вами ящика.

Тестирование MySQL

Создайте файл "mysqltest.php" в "localhost\www":

<?
if(!isset($go)) {
echo "<form method=POST action=mysqltest.php>";
echo "Введите пароль root: ";
echo "<input type=password name=pass size=30> ";
echo "<input type=submit value=Connect name=go>";
echo "</form>";
}
else {
if(!@mysql_connect("localhost","root","$pass")) {
echo "Ошибка подключения к MySQL:<br>";
echo mysql_error();
exit();
}
echo "MySQL тест прошел успешно - mysqltest.php!";
}
?>

Наберите в адресной строке http://localhost/mysqltest.php, введите root-пароль, и жмите "Connect".

Основные функции того, что вы устанавливали - протестированы. В принципе, если вы следовали моим инструкциям, то проблем у вас возникнуть не должно. Если они все-таки появились - обратитесь к разделу "Ошибки". В нем я описал ошибки, с которыми столкнулся лично при установке Apache, PHP, MySQL и SMTP под NT. Может там вы найдете ответы на свои вопросы.


Возможные ошибки. Вступление

Ты написал программу, а она не работает. Вариантов ты видишь немного - либо сидеть и пытаться умственным усилием обнаружить ошибку, в сотый раз просматривая код, либо пойти на форум и попросить, чтобы там тебе нашли ошибку. Самое интересное, что есть третий, в сто раз лучше первых двух. Этот способ называется "Отладка программы". По-английски - debugging. Заключается он в том, чтобы заставить программу саму показать, где в ней ошибка. Это мало того, что получится быстрее, чем спрашивать на стороне - так зачастую это единственный способ решить проблему. Единственный. Я тебе сейчас открою страшный секрет. В мире НЕТ программистов, которые пишут код, как художники на Арбате - сел, наваял, отдал. Нету. И не будет. Процесс написания программы - циклический: Написал кусок кода - посмотрел, как работает. Если не работает - ищем ошибки. Работает - пишем дальше. Только так. Других вариантов нет. Больше того. В большинстве случаев совершенно бесполезно вываливать на форум свой код, и спрашивать - "В чём ошибка?". На форуме не сидят волшебники вперемешку с телепатами. И гадалок с прорицателями - тоже нет. Поэтому отгадывать, в чём, теоретически, может быть ошибка, никто не будет. Ошибку найти может только хозяин программы. На своём сервере. Со своими нстройками и опечатками. Поэтому локализовать ошибку - найти мето, где она происходит, определить тип ошибки - можно только самостоятельно. А вот исправить её на форуме помогут. Если не получится самому. Те, кто приходит к веб-программированию от дизайна, или от игр, или от нечего делать, проcто не знают этой страшной тайны: основное время программиста уходит не на написание кода. Основное время программиста уходит на поиск ошибок и отладку. Это не шутка. Это правда. И если вы решили заняться программированием, то вам придётся искать ошибки точно так же, как это делают все остальные. К сожалению, очень много людей приходят к PHP вообще без опыта программирования и, как следствие - никогда не слышали об отладке. А это и есть самое главное в программировании - умение искать ошибки.

Источник: http://phpfaq.ru


Примеры возможных ошибок и способов их исправления

Здесь описаны только те ошибки и способы их исправления, с которыми я столкнулся лично при установке и настройке связки Apache, PHP, MySQL, SMTP.

Apache

1. При запуске/перезапуске выдается такое сообщение:

Ошибка запуска Apache

Скорее всего ошибка в файле "httpd.conf". Проверьте пути (они не должны содержать пробелов и русских букв), наличие указанных там каталогов.

PHP

1. Не работает PHP. При открытии php-файла, браузер предлагает его сохранить, выводит php-код на страницу.

Проверьте подключен ли PHP в "httpd.conf". Правильно ли прописаны пути, указаны псевдонимы, сопоставлены ли файлы с расширением "php", "phtml" интерпретатору, php-код находиться в файлах с расшинием "php", "phtml", заключен ли php-скрипт в теги "<? ?>" или "<?php ?>".

2. Ошибки при подключении динамических расширений PHP.

Выдается сообщение:

Ошибка подключения динамических расширений PHP

Проверьте правильность пути к папке с расширениями PHP в "php.ini". Как правило это папка "ext" или "extensions" в каталоге PHP. Убедитесь, что в папке с расширениями присутствует подключаемая библиотека. Не подключайте рашрений, если вы не знаете для чего они предназначены и если они вам не нужны. Что касается "php_mysql.dll": ее необходимо подключать только в тех версиях PHP, в которых поддержка MySQL не встроена в ядро. Если скачивали какую-либо библиотеку отдельно, не в архиве с полной версией PHP на сайте http://php.net, возможно она от другой версии PHP, и с вашей не совместима.

MySQL

1. При попытке подключения к БД, выдается сообщение: "Client does not support authentication protocol requested by server; consider upgrading MySQL client".

Начиная с MySQL 4.1 изменен алгоритм хэширования паролей. Вместо 16 byte используется 42 byte. Решить проблему можно несколькими способами: установить MySQL версии ниже 4.1; запустить MySQL с параметром "--old-passwords"; через командную строку MySQL ввести следующее:

SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('root-пароль');

2. При попытке подключения к БД, выдается сообщение: "Access denied for user 'root'@'localhost' (using password: NO)".

Вы не ввели пароль.

3. При попытке подключения к БД, выдается сообщение: "Access denied for user 'root'@'localhost' (using password: YES)".

Вы ввели неверный пароль.

4. При попытке подключения к БД, выдается сообщение: "Can't connect to MySQL server on 'localhost' (10061)".

Убедитесь в том, что MySQL запущен. Либо через "Пуск -> Настройка -> Панель управления -> Администрирование -> Службы" - в графе "Состояние", напротив MySQL должно быть написано "Работает"; выставьте тип запуска - "Авто". Либо через диспетчер задач Windows ("Ctrl+Alt+Delete"); в списке процессов должен быть "mysqld-nt.exe".

SMTP

У меня с ним проблем не было. Если вы настраивали его, следуя моим инструкциям, однако он не отправляет письма, попробуйте отключить файрвол, и попытаться еще раз. Если почта будет отправлена - проблема в файрволе. Вообще это достаточно хороший SMTP-сервер из бесплатных.


Полезные ссылки

Здесь можно поучиться, прочитать статьи и документацию, задать вопросы.

http://neebet.com | Статьи веб-мастеру по HTML, PHP, JavaScript, CSS, установке и настройке серверного ПО. Учебники, справочники, заметки.
http://lenininc.narod.ru | Сайт Владимира Дригалкина - автора одного из лучших учебников по HTML - "HTML в примерах".
http://mysql.ru | Русскоязычный сайт, посвященный БД MySQL. Одобрено лучшими российскими программистами.
http://www.apache.ru | Русскоязычный сайт, посвященный веб-серверу Apache. Новости, документация, форум, FAQ.
http://codenet.ru | Все для программиста!
http://www.php5.ru | Сайт о PHP 5. Новости, статьи, ссылки.
http://phpfaq.ru | Сайт с ответами на вопросы по PHP и не только.
http://softtime.nodex.ru | Учебники, скрипты, статьи, форумы для веб-разработчиков.
http://www.phpworld.ru | Все о программировании на PHP.
http://www.webclass.ru | Статьи, уроки по HTML, PHP, JavaScript, Perl, Photoshop, Flash.
http://php.com.ua | Учимся вместе!
http://www.dklab.ru | Здесь вы найдете достаточно много полезной информации, касающейся процесса создания сайтов, скриптов и т.д.
http://phpclub.ru | Множество статей с примерами php-скриптов.
http://phpinside.ru | Сайт редакции журнала о PHP - "PHPInside".
http://webstudent.ru | В помощь начинающему веб-мастеру.


Русский перевод файла "httpd.conf"

Для Apache 2. Перевод взят здесь. Самому переводить мне было лень, да и зачем, если есть готовый. В переводе присутствуют некоторые неточности, но они не существенны.

В переводе применяются следующие соглашения и сокращения

конфиг, конфиг-файл - конфигурационный файл

errlog, error-файл - файл, содержащий сообщения об ошибках

log, лог, - лог-файл файл, в котором ведется журнал системы (или какой-то ее компоненты)

default, дефолт (дефолтное, и т.д.) - что-либо (значение, действие, компонента), действующее «по умолчанию» - т.е. «автоматически», если явно ничего не задано

инстанция (процесса, программы) - одна отдельная копия программы (или процесса) из множества параллельно запущенных копий одной и той же программы (процесса)

(sic) - примечание переводчика о том, что в этом месте в оригинале возможно допущена ошибка, или неточная/неудачная/неясная формулировка. Поскольку это перевод, а не статья, то исправление последних не входит в компетенцию переводчика. Следует обратиться к документации для полной ясности в этих случаях

пп - примечание переводчика (некоторые пояснения по тексту)

тайм-аут - истекание срока какого-либо ожидаемого события или действия, просроченность

content-negotiation - динамическое определение содержимого - выбор одного из многих существующих на сервере вариантов документа, подлежащего выдаче, исходя из разных параметров запроса (или диалога с клиентом)

agent, агент - браузер, или другая программа-клиент, пославшая запрос серверу

referer - документ (или его URL), по ссылке из которого сделан тот запрос, к которому это значение относится

персистентное соединение (persistent connection, keep-alive) - тип виртуального соединения между сервером и клиентом, при котором сервер может обслуживать более одного запроса от одного и того же клиента в рамках одного и того же соединения; т.е. которое не завершается сразу, как только сервер обслужил тот первый запрос клиента, ради которого данное соединение было установлено, а ждет поступления дальнейших запросов по тому же каналу.

Непосредственно перевод

# Основан на конфигурационных файлах сервера NCSA,
# написанных Rob McCool.
#
# Это главный конфиг-файл сервера Apache,
# содержащий директивы, управляющие
# работой сервера. За более подробной информацией об этих директивах,
# обращайтесь по адресу <URL:http://httpd.apache.org/docs-2.0/>
#
# Не стоит читать приведенные здесь команды, не вникая в их суть. Здесь
# они служат лишь в качестве примера или шпаргалки. Если вы не
# уверены - обращайтесь к онлайновой документации. Вы предупреждены.
#
# Конфигурационные директивы сгруппированы в три основные разделы :
#
# 1. Директивы, управляющие серверным процессом Apache в целом
# ("глобальная среда").
#
# 2. Директивы, определяющие параметры "главного"
# или дефолтного сервера,
# который отвечает на запросы, не обрабатываемые каким-либо
# виртуальным хостом. Эти директивы также задают дефолтные
# установки для всех виртуальных хостов.
#
# 3. Установки для виртуальных хостов, позволяющие единым серверным
# процессом Apache обрабатывать веб-запросы, на самом деле
# адресованные различным хостам (по имени хоста или по IP).
#
# Наименования конфиг- и лог-файлов : Если имя файла начинается с "/" (или c
# "диск:/" под Win32) - сервер использует явно указанный путь. Если же имя
# НЕ начинается с "/", то к нему префиксируется значение ServerRoot.
# Т.о., если ServerRoot="/usr/local/apache", то "logs/foo.log" сервер
# интерпретирует как "/usr/local/apache/logs/foo.log"
#
#
# ПРИМЕЧАНИЕ: При определении имен файлов необходимо использовать прямые
# слэши вместо обратных (т.е. "c:/apache" вместо "c:apache").
# Если диск не указан, по умолчанию используется тот, на котором размещен
# Apache.exe. Для однозначности, все же, рекомендуется в абсолютных путях
# всегда четко указывать диск.
#
#
#
### Раздел 1: Глобальная среда
#
# Директивы в этом разделе задают общие параметры работы Apache, такие, как,
# например, максимальное число одновременных запросов или
# месторасположение конфиг файлов.
#
# ServerRoot: Вершина дерева директорий, в которых содержатся конфиг-, лог- и
# error-файлы.
#
# ПРИМЕЧАНИЕ : Если это дерево будет располагаться на томе монтируемой
# файловой системы NFS (или на другом сетевом ресурсе),
# просьба прочесть описание директивы LockFile
# (по адресу <URL:http://httpd.apache.org/docs-2.0/mod/core.html#lockfile>)
# - во избежание массы проблем.
#
# В конце строки добавлять слэш НЕ следует.
#
ServerRoot "E:/Apache2"
#
# ScoreBoardFile: Файл для хранения информации внутреннего процесса сервера.
# Если не указан (по дефолту не указан), то эта информация хранится в
# неименованном разделе общей памяти, и не доступна посторонним программам.
# Если же файл указан, то он должен быть уникальным для каждой отдельной
# инстанции Apache. Этот файл должен располагаться на МЕСТНОМ диске.
#
#ScoreBoardFile logs/apache_runtime_status
#
# Файл записи идентификационного номера процесса (PID) сервера при запуске.
#
PidFile logs/httpd.pid
#
# Timeout: Время ожидания в секундах, прежде чем попытки приема или отправления
# выдают сообщение о тайм-ауте.
#
Timeout 300
#
# KeepAlive: Допускаются ли персистентные соединения (см. примечания).
# Для запрета укажите "Off".
#
KeepAlive On
#
#
# MaxKeepAliveRequests: Максимальное количество запросов при одном
# персистентном соединении. Значение 0 снимает ограничения. Для максимального
# быстродействия рекомендуем высокое значение.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Время ожидания (в секундах) следующего запроса от того же
# клиента в рамках одного персистентного соединения
#
KeepAliveTimeout 15
#
#
# Server-Pool Size Regulation (MPM specific)
#
# Установка размеров серверного пула. Параметры данного подраздела
# меняются в зависимости от конкретного модуля мультизадачного режима
# (MPM - Multi-Processing Module), который, в свою очередь, меняется в
# зависимости от конкретной базовой ОС.
#
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
#
# WinNT MPM : Мультизадачный модуль для Win32
# ThreadsPerChild: Постоянное число рабочих нитей (тредов) в серверном(sic)
# процессе
# MaxRequestsPerChild: Максимальное количество запросов, обслуживаемых
# серверным(sic) процессом
#
# (В обоих случаях, речь, на самом деле, идет о дочерних процессах сервера,
# а не о самом серверном процессе. Дело в том, что в случае Win32, который
# как раз здесь рассматривается, запускается один лишь единственный дочерний
# процесс, поэтому для WinNT_MPM эти понятия, в некоторой степени,
# совпадают -пп)
#
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
#
# Listen: Позволяет привязать Apache к конкретным адресам IP и/или портам,
# помимо(sic) дефолтных. См. также директиву <VirtualHost>.
#
# Следует поменять это на конкретные адреса IP (как показано ниже), чтобы
# Apache не "прилипал" ко всем привязанным адресам (0.0.0.0)
#
# (Автор здесь немного противоречит себе. Возможно, правильнее второй абзац,
# а первый просто остался по наследству от предыдущих версий. Следует
# отметить, что в отличии от предыдущих версий, директива Listen теперь
# является обязательной - без нее Apache стартовать не будет -пп).
#
#Listen 12.34.56.78:80
Listen 80
#
#
# Поддержка динамических, разделяемых объектов (DSO, Dynamic Shared Object)
#
# Для того, чтобы использовать модули, созданные как DSO, следует поместить
# здесь соответствующие строки с директивой "LoadModule", чтобы команды этого
# модуля были доступны ДО обращения к ним. Статически скомпилированные модули
# (выявляемые по команде "httpd -l") в этом не нуждаются.
#
# Пример:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#
# Директива ExtendedStatus определяет, будет ли Apache выдавать подробную
# информацию о состоянии (ExtendedStatus On), или только общую справку
# (ExtendedStatus Off), при обращении к функции "server-status". Значение по
# умолчанию - Off.
#
#ExtendedStatus On
#
#
#
### Раздел 2: Конфигурация "главного" (дефолтного) сервера
#
# Директивы этого раздела устанавливают значения, используемые "главным
# сервером", который отвечает на запросы, не обрабатываемые виртуальными
# хостами. Эти значения также задают дефолты для любых последующих
# контейнеров <VirtualHost> в этом файле.
#
# Любые из этих директив могут быть включены в контейнер <VirtualHost>; в таком
# случае дефолтные установки будут переопределены для этого виртуального хоста.
#
# ServerAdmin: Ваш адрес, по которому следует направлять сообщения о проблемах
# с сервером. Этот адрес появится на некоторых сгенерированных сервером
# страницах, таких, как сообщения об ошибках. Пример: admin@your-domain.com
#
ServerAdmin admin@admin.com
#
# Директива ServerName задает имя и порт, которыми сервер представляется.
# Это часто может быть определено автоматически, но рекомендуется явно задавать
# эти параметры, во избежание проблем при запуске.
#
# Если Servername не указывает на действительное DNS-имя вашего хоста,
# переадресация, сгенерированная сервером, не будет работать. См. также
# директиву UseCanonicalName
#
# Если ваш хост не имеет зарегистрированного DNS-имени, укажите здесь его IP.
# В любом случае вам придется обращаться к нему по адресу, при этом
# переадресация станет разумней.
#
ServerName server:80
#
# UseCanonicalName: Определяет как Apache строит внутренние URL-ссылки и
# значения переменных SERVER_NAME и SERVER_PORT. Когда задано "Off", Apache
# использует имя и порт, данные клиентом. Если же задано "On", то Apache
# использует значение директивы ServerName.
#
UseCanonicalName Off
#
# DocumentRoot: Директория, из которой будут выдаваться ваши документы.
# По умолчанию, все запросы обслуживаются из этой директории, но могут быть
# использованы символические линки (пересылки) и алиасы (псевдонимы) для
# указания других мест.
#
DocumentRoot "E:/Apache2/htdocs"
#
#
# Каждая доступная для Apache директория может быть сконфигурирована в
# отношении действий и сервисов, которые разрешены и/или запрещены в
# этой директории (и ее суб-директориях).
#
# Для начала, мы определяем "дефолт", как весьма ограниченный набор разрешений.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#
# Заметьте, что в дальнейшем вы должны явно разрешать конкретные действия так
# что, если что-то не работает так, как вы ожидаете, убедитесь, что вы явно
# разрешили это ниже.
#
# Здесь должна быть указана директория, которую вы установили как DocumentRoot.
#
<Directory "E:/Apache2/htdocs">
#
# Опции могут иметь значения "None", "All" или любую комбинацию из :
# "Indexes", "Includes", "FollowSymLinks", "SymLinksifOwnerMatch", "ExecCGI",
# и "Multiviews".
#
# Заметьте, что опция "MultiViews" должна быть ЯВНО указана - т.к.
# "Options All" ее НЕ включает.
#
# Директива Options является и сложной и важной. Для дополнительной информации
# см. "http://httpd.apache.org/docs-2.0/mod/core.html#options"
#
Options Indexes FollowSymLinks
#
# AllowOverride определяет какие директивы могут быть использованы в файлах
# .htaccess. Она может принимать значения "All", "None", или любую
# комбинацию из : "Options", "FileInfo", "AuthConfig", и "Limit"
#
AllowOverride None
#
# Эти директивы определяют, кто может получать материал с этого сервера.
#
Order allow,deny
Allow from all
</Directory>
#
#
# UserDir: Имя директории, которое постфиксируется к имени домашней директории
# пользователя при получении запроса ~user. Будьте особенно внимательны - здесь
# используются прямые слеши.
#
UserDir "My Documents/My Website"
#
# Управляет доступом к директориям UserDir. Приведен пример сайта, где эти
# директории имеют ограничение "read-only" (только чтение).
#
# Исправьте (в следующем) корневой путь, чтобы он соответствовал
# местонахождению директории пользователя в вашей системе, например,
# "C:/WinNT/profiles/*/My Documents/My Website".
#
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
#
#
# DirectoryIndex: Имя файла, выдаваемого Apache в ответ на запрос директории.
#
# Файл "index.html.var" (типа type-map или application/x-type-map) используется
# для выдачи конкретной разновидности многовариантного документа в зависимости
# от параметров запроса (content-negotiated). Опция MultiViews может служить
# той же цели, но она намного медленее.
#
DirectoryIndex index.html index.html.var
#
# AccessFileName: Имя файла в каждой директории, задающего правила доступа (к
# этой директории). См. также директиву AllowOverride.
#
AccessFileName .htaccess
#
# Следующие строки запрещают просмотр файлов ".htaccess" и ".htpasswd"
# со стороны Web-клиентов.
#
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>

#
# TypesConfig опеределяет местонахождение файла "mime.type" (или ему
# эквивалентного).
#
TypesConfig conf/mime.types
#
#
# Директива DefaultType - это дефолтный MIME-тип, используемый сервером для
# документов, тип которых не определяем по иным признакам, таким, как
# расширение имени файла. Если ваш сервер содержит в основном текстовые или
# HTML-документы, "text/plain" является подходящим значением. Если большая
# часть представляет собой бинарные файлы, такие, как программы или
# изображения, возможно использование "application/octet-stream", чтобы
# предотвратить попытки браузеров показывать содержимое двоичных файлов как
# текст.
#
DefaultType text/plain
#
#
# Модуль "mod_mime_magic" позволяет серверу использовать различные приемы для
# определения типа файла по его содержанию. Директива MIMEMagicFile указывает
# этому модулю месторасположение (файла с описаниями) этих приемов.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
#
#
# HostnameLookups определяет, записывать ли имена клиентов, или только их
# IP-адреса, например, "www.apache.org" ("On") или "204.62.129.132"("Off").
# По дефолту "Off", поскольку в целом для Интернета было бы лучше, если бы
# эта опция включалась сознательно, т.к. ее включение означает, что каждый
# клиентский запрос влечет за собой КАК МИНИМУМ еще один обратный запрос к
# серверу имен.
#
HostnameLookups Off
#
# ErrorLog: Расположение error-файла. Если вы не задаете директиву ErrorLog
# внутри контейнера какого-либо <VirtualHost>, его сообщения об ошибках
# будут записаны здесь. Если же вы определите error-файл для какого-либо
# <VirtualHost>, то его сообщения об ошибках будут записываться там, а не здесь.
#
ErrorLog logs/error.log
#
#
# LogLevel: Control the number of messages logged to the error.log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
# LogLevel: Определение количества(sic) ошибок, которые записываются в
# error.log. Возможные значения :
# "debug", "info", "notice", "warn", "error", "crit", "alert", и "emerg".
#
LogLevel warn
#
# Следующие директивы присваивают имена некоторым определениям
# форматов записей, для использования в директиве
# CustomLog (см. ниже).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
# (слово access - здесь как запрос о доступе, а не как доступ - пп)
#
# Расположение и формат лог-файла запросов (в общем формате лог-файлов -
# Common Logfile Format). Если вы не определяете никаких лог-файлов запросов
# внутри контейнера какого-либо <VirtualHost>, сведения будут записываться
# здесь. Если же вы определяете отдельные лог-файлы запросов для каждого(sic)
# <VirtualHost>, то транзакции будут отслеживаться там, а не здесь.
#
# (Наверное, здесь имеется в виду "для отдельных" <VirtualHost>, а не
# "для каждого" -пп)
#
CustomLog logs/access.log common
#
#
# Если вы хотите иметь лог-файлы для отслеживания значений agent и referrer
# (из соответствующих полей поступающих запросов -пп), раскомментируйте
# следующие директивы.
#
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent
#
# Если вы предпочитаете единый лог-файл с информацией о запросе, агенте и
# referrer (комбинированный формат лог-файла - Combined Logfile Format),
# вы можете использовать следующую директиву.
#
#CustomLog logs/access.log combined
#
#
# Добавить дополнительную строчку, содержащую версию сервера и имя виртуального
# хоста на страницах, сгенерированных сервером (таких, как сообщения об
# ошибках, FTP листинги директорий, выдачи модулей "mod_status" и "mod_info"
# и т.п.; документы, сгенерированные скриптами CGI, к ним не относятся).
# Установите "EMail", чтобы включить еще и линк "mailto:", направленный
# на ServerAdmin.
# Допустимые значения: On | Off | Email
#
ServerSignature On
#
#
# Алиасы (Псевдонимы): Можно добавлять любое количество алиасов (без
# ограничений). Формат: Alias псевдоним действительное_имя
#
# Обратите внимание, что если вы включаете завершающий слэш в псевдониме, то
# сервер потребует его наличия и в URL. Так, псевдоним "/icons" не определен в
# данном примере, только "/icons/". Если псевдоним закначивается на слеш,
# действительное_имя также должно заканчиваться на слеш, а если псевдоним его
# опускает, то и действительное_имя его должно опустить.
#
# Мы используем алиас "/icons/" для листингов директорий типа FancyIndexed.
# Можно закомментировать эту часть, если вы не используете FancyIndexing.
#
Alias /icons/ "E:/Apache2/icons/"

<Directory "E:/Apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# Следует поменять это значение на (ваш) ServerRoot/manual/. Данный алиас
# обеспечивает доступ к документации, даже если вы передвините свой
# DocumentRoot. Можно эту часть закомментировать, если документация не нужна.
#
Alias /manual "E:/Apache2/manual"
#
<Directory "E:/Apache2/manual">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
#
# ScriptAlias: Указывает директории, которые содержат серверные скрипты.
# Свойства ScriptAlias-ов в основном такие же, как и у простых Alias-ов,
# кроме того, что при запросе, документы в каталоге "действительное_имя"
# считаются приложениями и выполняются на сервере, а не отправляются
# клиенту. К директиве ScriptAlias применяются те же правила в отношении
# завершающего "/", что и к Alias.
#
ScriptAlias /cgi-bin/ "E:/Apache2/cgi-bin/"
#
# Значение "E:/Apache2/cgi-bin" следует поменять на существующую директорию
# CGI, указанную в ScriptAlias.
#
<Directory "E:/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#
# Директива Redirect позволяет сообщить клиенту о документах, ранее
# существовавших в именном пространстве сервера, но теперь не существующих.
# Она позволяет сообщить клиенту новый адрес перемещенного документа.
# Пример:
# "Redirect permanent /foo http://www.example.com/bar"
#
#
# Директивы, управляющие внешним видом листингов директории,
# генерируемых сервером.
#
#
# FancyIndexing задает, хотите ли вы стилизованные листинги директорий или
# же стандартные. VersionSort определяет, будут ли файлы с номерами версий
# сравниваться "естественно", т.е. так, чтобы в листинге файл
# "apache-1.3.9.tar" предшествовал файлу "apache-1.3.12.tar".
#
IndexOptions FancyIndexing VersionSort
#
#
# Директивы AddIcon* указывают серверу, какие иконы показывать для
# различных файлов, или расширений имен файлов. Они показываются только
# для директорий с FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

#
# DefaultIcon показывает какую икону показывать для файлов, не имеющих
# явно определенных икон.
#
DefaultIcon /icons/unknown.gif
#
#
# Директива AddDescription позволяет поместить краткое описание после имени
# файла в листингах, сгенерированных сервером. Они показываются только для
# директорий с FancyIndexing.
#
# Формат: AddDescription "описание" имя_файла
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
#
#
# ReadmeName - это дефолтное имя README-файла, который сервер будет искать по
# умолчанию и добавит в конце листингов директорий.
#
# HeaderName - имя файла, который будет добавлен в начале листингов директорий.
#
ReadmeName README.html
HeaderName HEADER.html
#
#
# IndexIgnore - это список файлов, которые должны быть исключены из
# листингов. В именах файлов допускается использование метасимволов замены в
# стиле shell.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
#
#
# AddEncoding позволяет некоторым браузерам (Mosaic/X 2.1+) на ходу
# распаковывать информацию. Замечание: не все браузеры поддерживают это.
# Несмотря на сходство имен, следующие директивы Add* не имеют ничего общего
# с директивами форматирования FancyIndexing, указанными выше.
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
#
# DefaultLanguage и AddLanguage позволяют указать языки документов. Вы можете
# в последствие использовать динамическое определение содержимого (content
# negotiation) для выдачи браузеру файла на языке понятном пользователю.
#
#
# Установка языка default. Это означает, что вся информация, идущая без
# конкретного языкового тэга (см. ниже), будет идти на дефолтном языке.
# Вероятно, не стоит задавать эту директиву, не будучи твердо уверенным в том,
# что она подходит для всех случаев.
#
#
# * В общем, лучше не указывать определенный язык
# * для страницы, чем задать неправильный язык.
#
# DefaultLanguage nl
#
# Примечание 1: Суффикс не обязательно должен совпадать с
# кодом-идентификатором языка. Те, у кого есть документы
# на польском языке (стандартный буквенный
# код Интернета pl), могут воспользоваться директивой
# "AddLanguage pl .po" во избежание конфликта с распространенным
# суффиксом скриптов на языке Perl.
#
# Примечание 2: Нижеследующие примеры показывают, что в некоторых
# случаях двухбуквенный код языка не совпадает с двухбуквенным
# кодом соответствующей страны.
# Например, Датский (da) и Дания (dk).
#
# Примечание 3: В случае "ltz" мы нарушаем требования RFC, используя
# трехбуквенный код. Ведется работа по устранению несоответствий и
# усовершенствованию "rfc1766".
#
# Danish, датский (da)
# Dutch, голландский, (nl)
# English, английский (en)
# Estonian, эстонский (et)
# French, французский (fr)
# German, немецкий (de)
# Greek-Modern, новогреческий (el)
# Italian, итальянский (it)
# Norwegian, норвежский (no)
# Norwegian Nynorsk (nn)
# Korean, корейский (kr)
# Portugese, португальский (pt)
# Luxembourgeois*, люксембургский (ltz)
# Spanish, испанский (es)
# Swedish, шведский (sv)
# Catalan, каталанский (ca)
# Czech, чешский(cz)
# Polish, польский (pl)
# Brazilian Portuguese, бразильско-португальский (pt-br)
# Japanese, японскский (ja)
# Russian, русский (ru)
# Croatian, хорватский (hr)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
#
# LanguagePriority позволяет задать порядок выбора некоторых языков (в случае
# неоднозначности) при динамическом определении содержания (content
# negotiation).
#
# Просто перечислите языки в порядке убывания приоритета. Здесь они даны в
# более-менее алфавитном порядке. Вероятно, вы захотите изменить этот порядок.
#
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
#
# ForceLanguagePriority позволяет вам (серверу) выдать конкретную страницу,
# вместо сообщения MULTIPLE CHOICES (задается Prefer), [в случае неоднозначного
# выбора], или сообщения NOT ACCEPTABLE (задается Fallback)[в случае, если
# не один язык не подошел]
#
ForceLanguagePriority Prefer Fallback
#
#
# AddDefaultCharset задает дефолтную таблицу символов (кодировку) для всех
# выдаваемых страниц. Это всегда полезно, и открывает возможность будущей
# мультилингвизации вашего веб сайта. Ее обозначение как дефолтной не
# наносит вреда, т.к. стандарт, в любом случае, определяет, что страница
# использует кодировку iso-8859-1 (latin1), если не указано иначе, т.е. вы
# просто подтверждаете очевидное. Существуют так же соображения о безопасности
# для браузеров, относящиеся к обработке javascript и URL, по которым всегда
# стоит указывать дефолтную кодировку.
#
AddDefaultCharset WINDOWS-1251
#
#
# Часто используемые расширения для обозначения кодировок. Вы, вероятно,
# захотите избежать столкновений с языковыми расширениями, если вы не
# специалист по тщательному тестированию установок после каждого изменения.
# См. "ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets" для
# официального списка кодировок и соответствующих им документов RFC.
#
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
#
#
# Для русского языка используется более, чем одна кодировка (в основном,
# зависит от клиента):
#
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
#
#
# Ниже приведенный список не соответствует конкретному (iso) стандарту, но
# работает с довольно широким списком браузеров. Заметьте, что верхний регистр,
# на самом деле, имеет значение (этого не должно происходить, но с некоторыми
# браузерами, тем не менее, происходит).
#
# См. "ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets" для своего
# рода списка (кодировок). Но браузеры поддерживают только некоторые из них.
#
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
#
# AddType позволяет добавить новые MIME-типы (или переопределить старые из
# конфигурационного файла "mime.types") для определенных типов файлов.
#
AddType application/x-tar .tgz
#
# AddHandler позволяет связать определенные расширения имен файлов с
# обработчиками (handlers), вне зависимости от типа файла.
# Обработчики могут быть либо встроены в сервер, либо добавлены директивой
# Action (см. ниже).
#
# Для использования скриптов CGI вне директорий типа ScriptAliased :
# (Кроме того, вам придется добавить "ExecCGI" к директиве "Options")
#
#AddHandler cgi-script .cgi
#
# Для файлов, которые включают свои HTTP заголовки:
#
#AddHandler send-as-is asis
#
# Для imagemap файлов, обрабатываемых сервером:
#
#AddHandler imap-file map
#
# Для type-maps (динамически определяемых ресурсов):
# Включено по умолчанию, чтобы допустить распространение страницы
# Apache "It Worked" ("Сработало!") на различных языках.
#
AddHandler type-map var
#
#
# Фильтры позволяют обработать содержание до отправки клиенту.
#
# Для обработки .shtml файлов на предмет вставок, производимых сервером
# (server-side includes - SSI):
# (Кроме того, вам придется добавить "Includes" к директиве "Options")
#
#AddOutputFilter INCLUDES .shtml
#
#
# Action позволяет определить MIME или другие типы (для которых задан
# какой-нибудь handler), при запросе которых выполняется соответствующий
# скрипт. Это устраняет необходимость многократного упоминания URL путей
# часто используемых скриптов CGI.
#
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
# Формат: Action название_MIME_типа путь/скрипт
# Action назавние_типа_или_обработчика(handler) путь/скрипт
#
#
# Существует три типа настроек для конфигурируемых сообщений об ошибках:
# 1) простой текст 2) местные ссылки 3) внешние пересылки
#
# Некоторые примеры:
#
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
# Собрав все это воедино, мы можем мультилингвизировать сообщения об ошибках.
#
# Мы используем Alias чтобы перенаправлять сообщения
# "/error/HTTP_<error>.html.var" на наборы сообщений на разных языках
# (собранных по типу ошибки). Мы используем "includes" для вставления
# необходимого текста.
#
# Alias /error/include/ "/your/include/path/"
#
#
# Можно изменить вид сообщения, не меняя никаких дефолтных
# "HTTP_<error>.html.var" файлов, добавив строку;
#
# Alias /error/include/ "/your/include/path/"
#
# которая позволяет вам создать свой набор файлов, начав с файлов
# "E:/Apache2/error/include/" и копируя их в "/your/include/path/",
# в том числе и для отдельных VirtualHost.
#
#
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ "E:/Apache2/error/"

<Directory "E:/Apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>

ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>
#
# Следующие директивы модифицируют обычное (в ответ на запросы HTTP)
# поведение сервера, с целью предотвращения некоторых известных проблем
# с конкретными браузерами.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
#
#
# Следующая директива блокирует переадресацию по запросу
# (не использующую метод GET) для директории, не заканчивающейся
# на слэш. Это решает проблему с пакетом "Microsoft WebFolders",
# который неправильно обрабатывает пересылки для папок методами
# DAV (коллективная система удаленного создания и контроля
# версий документов).
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
#
# Разрешить выдачу сообщений-отчетов о состоянии сервера по запросу на URL
# "http://servername/server-status" . Замените ".admin.admin.com" на имя
# своего домена для включения.
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
#
# Разрешить выдачу сообщений-отчетов о конфигурации удаленного сервера по
# запросу на URL "http://servername/server-info" . Замените ".your-domain.com"
# на имя своего домена для включения.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
# Директивы прокси-сервера. Раскомментируйте следующие строки, чтобы включить
# прокси-сервер.
#
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
# Order deny,allow
# Deny from all
# Allow from .your-domain.com
#</Proxy>
#
#
# Включить/выключить обработку заголовков "HTTP/1.1" типа "Via:" (через)
# (Опция "Full" добавляет номер версии сервера, "Block" отменяет все исходящие
# заголовки типа "Via:".
# Возможные варианты: Off | On | Full | Block
#
#ProxyVia On
#
# Чтобы включить еще и кэширование, откорректируйте и раскомментируйте
# следующие строки
#
#CacheRoot "E:/Apache2/proxy"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a-domain.com another-domain.edu joes.garage-sale.com

#</IfModule>
#
# Конец директив прокси сервера.
#
#
# Включить дополнительные конфиг-файлы для отдельных модулей
#
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
#
#
#
###Раздел 3: Виртуальные хосты
#
#
# VirtualHost: Если вы хотите держать множество доменов/хостов на своей машине,
# то задайте для них контейнеры VirtualHost. Большинство конфигураций задает
# только имена виртуальных хостов, с тем, чтобы серверу не требовались
# IP адреса. Данное обстоятельство обозначено звездочками (*) в следующих
# директивах.
#
# См. документацию по адресу <URL:http://httpd.apache.org/docs-2.0/vhosts/>
# для дополнительной информации, прежде чем создавать виртуальные хосты.
#
# Вы можете воспользоваться ключом "-S" для командной строки, чтобы выявить
# конфигурацию ваших виртуальных хостов.
#
#
#
# Использовать виртуальные хосты по их именам.
#
#NameVirtualHost *
#
#
# Пример виртуального хоста.
# Почти любые директивы Apache могут входить в контейнер VirtualHost.
# Первый VirtualHost используется для запросов, направленных на
# неизвестное имя сервера

#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>


Русский перевод файла "php.ini"

Для PHP 4. Перевод взят отсюда.

Непосредственно перевод

;;;;;;;;;;;;;;;;;
; Об этом файле ;
;;;;;;;;;;;;;;;;;

; Этот файл содержит большинство установок PHP. Чтобы PHP смог его
; обнаружить, он должен называться 'php.ini'. Интерпретатор ищет файл в
; текущем каталоге, в случае неудачи - в каталоге, указанном в
; переменной окружения PHPRC, и, наконец, в каталоге, заданном при -в
; компиляции и сборке PHP (именно в таком порядке).
; В системе Windows путь, указанный при компиляции PHP,
; соответствует каталогу Windows (в большинстве случаев это
; c:windows). Папка, в которой будет производиться поиск файла
; 'php.ini', может быть также определена с использованием ключа -c
; командной строки.
;
; Синтаксис файла крайне прост. Пробельные символы (то есть, пробелы,
; символы табуляции и т. д.), строки, начинающиеся с точки с запятой (
; игнорируются (как вы, наверное, уже догадались). Заголовки секций
; (например, [Foo]) также пропускаются, но, возможно, будут учитываться
; в будущих версиях PHP.
;
; Директивы задаются примерно так:
; directive=value
; Имена директив чувствительны к регистру символов - foo=bar не то же
; самое, что FOO=bar.
;
; Значение value может быть строкой, числом, константой PHP (например,
; E_ALL или M_PI), одной из INI-констант (On, Off, True, False, Yes, No
; или None), выражением (например, E_ALL & ~E_NOTICE), а также строкой
; в кавычках ("foo").
;
; В выражениях могут использоваться только побитовые и логические
; операторы, а также скобки:
; | поразрядное ИЛИ (OR)
; & поразрядное И (AND)
; ~ поразрядное НЕ (NOT)
; ! логическое отрицание (NOT)
;
; В качестве логических флагов со значением "истина" могут быть
; использованы значения 1, On, True или Yes. Значение "ложь" дают 0, Off,
; False и No.
;
; Пустая строка может быть задана, если "не указать ничего" после знака
; равенства, или же указать слово None:
; foo= ; устанавливаем foo равной пустой сторке
; foo=none ; аналогично
; foo="none" ; устанавливаем foo равным строке 'none'
;
; Если вы используете константы в качестве части значения директивы и эти
; константы определяются в каком-нибудь динамически загружаемом
; расширении (модуле PHP или Zend), вы можете указывать их только после
; строки, которая загружает расширение.
;
; Все значения в файле php.ini-dist соответствуют встроенным значениям
; по умолчанию. Если php.ini не задействуется, или же вы удалите из него
; некоторые строки, будут установлены значения по умолчанию.

;;;;;;;;;;;;;;;;;;;
; Настройки языка ;
;;;;;;;;;;;;;;;;;;;

; Разрешает работу PHP для сервера Apache.
engine = On

; Разрешает использовать короткие тэги <?. Иначе будут распознаваться
; только тэги <?php и <script>.
short_open_tag = On

; Позволяет использовать тэги <% %> а-ля ASP.
asp_tags = Off

; Число значащих цифр после запятой, которые отображаются для чисел с
; плавающей точкой.
precision = 14

; Признак коррекции дат (проблема 2000 года, которая может создать
; вызвать непонимание со стороны браузеров, которые
; на это не рассчитывают)
y2k_compliance = Off

; Использование буферизации вывода. Позволяет посылать заголовки (включая
; Cookies) после вывода текста. Правда, это происходит ценой
; незначительного замедления вывода.
; Вы можете разрешить буферизацию во время выполнения сценария путем
; вызова функций буферизации, или же включить ее по умолчанию с помощью
; следующей директивы:
output_buffering = Off

; Директива неявной отсылки говорит PHP о том, что выводимые данные нужно
; автоматически передавать браузеру после вывода каждого блока данных.
; Ее действие эквивалентно вызовам функции flush() после
; каждого использования print() или echo() и после каждого HTML-блока.
; Включение этой директивы серьезно замедляет работу, поэтому ее
; рекомендуется применять лишь в отладочных целях.
implicit_flush = Off

; Параметр определяет, должен ли PHP использовать возможность всегда
; передавать аргументы функциям по ссылке при выполнении сценария.
; Этог метод устарел, и, скорее всего, он не будет
; поддерживаться в будущих версиях PHP/Zend.
; Описание того, каким способом должен быть передан аргумент -
; по ссылке или по значению - рекомендуется указывать при объявлении
; функции. Лучше всего, если вы попробуете установить параметр в Off
; и проверите, все ли сценарии по-прежнему работают. Если это так,
; то все в порядке, и сценарии будут совместимы и с будущими версиями
; PHP. В противном случае вы будете получать предупреждения каждый раз,
; когда аргументы передаются ненадлежащим образом и по значению там,
; где должны передаваться по ссылке.
allow_call_time_pass_reference = On

; Безопасный режим
safe_mode = Off
safe_mode_exec_dir =

; Установка некоторых переменных окружения может потенциально породить
; "дыры" в защите сценариев. Следующая директива содержит разделенный
; запятыми список префиксов. В режиме включенного безопасного режима
; пользователь сможет изменять только те переменные окружения, имена
; которых начинаются с перечисленных префиксов.
; По умолчанию пользователь имеет возможность устанавливать только
; переменные окружения, начинающиеся с PHP_ (например,
; PHP_FOO=something).
; Замечание: если эта директива пуста, PHP позволяет пользователям
; модифицировать любые переменные окружения!
safe_mode_allowed_env_vars = PHP_

; Следующая директива содержит разделенный запятыми список имен
; переменных окружения, которые конечный пользователь не сможет изменять
; путем вызова putenv().
; Эти переменные будут защищены даже в том случае, если директива
; разрешает их использовать.
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; Эта директива позволяет вам запрещать вызовы некоторых функций
; из соображений безопасности. Список задается в виде имен функций,
; разграниченных запятыми. Директива действует независимо от того, установлен
; ли безопасный режим или нет!
disable_functions =

; Цвета для режима раскраски синтаксиса. Любой цвет, допустимый в тэге
; <font color=???>, допустим и здесь.
highlight.string = #DD0000
highlight.comment = #FF8000
highlight.keyword = #007700
highlight.bg = #FFFFFF
highlight.default = #0000BB
highlight.html = #000000

; Другие директивы

; Следующая директива указывает, должен ли PHP добавлять заголовок
; X-Powered-by в заголовки, посылаемые браузеру, и, таким образом,
; обнаруживать себя. Это никак не может повлиять на безопасность
; сценария, однако позволяет пользователю определить, использовался
; ли PHP для генерации страницы, или нет.
expose_php = On

;;;;;;;;;;;;;;;;;;;;;;;;
; Ограничения ресурсов ;
;;;;;;;;;;;;;;;;;;;;;;;;

; Максимальное возможное время выполнения сценария в секундах. Если
; сценарий будет выполняться дольше, PHP принудительно завершит его.
max_execution_time = 30
; Максимальный объем памяти, выделяемый сценарию (8MB)
memory_limit = 8M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Обработка ошибок и журнализация ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Директива error_reporting должна задаваться в виде битового
; поля. Его значение можно устанавливать с помощью следующих констант,
; объединенных оператором | (OR):
; E_ALL - Все предупреждения и ошибки.
; E_ERROR - Критические ошибки времени выполнения.
; E_WARNING - Предупреждения времени выполнения.
; E_PARSE - Ошибки трансляции.
; E_NOTICE - Замечания времени выполнения (это такие
; предупреждения, которые, скорее всего,
; свидетельствуют о логических ошибках в
; сценарии, - например, использовании
; неинициализированной переменной).
; E_CORE_ERROR - Критические ошибки в момент старта PHP.
; E_CORE_WARNING - Некритические предупреждения во время старта PHP.
; E_COMPILE_ERROR - Критические ошибки времени трансляции.
; E_COMPILE_WARNING - Предупреждения времени трансляции.
; E_USER_ERROR - Сгенерированные пользователем ошибки.
; E_USER_WARNING - Сгенерированные пользователем предупреждения.
; E_USER_NOTICE - Сгенерированные пользователем замечания.
; Пример:
; показывать все ошибки, за исключением замечаний
; error_reporting = E_ALL & ~E_NOTICE
; показывать только сообщения об ошибках
; error_reporting=E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
; отображать все ошибки, предупреждения и замечания
error_reporting = E_ALL & ~E_NOTICE

; Печать ошибок и предупреждений прямо в браузер.
; Для готовых сайтов рекомендуется отключать следующую директиву и
; использовать вместо нее журнализацию (см. ниже). Включенная директива
; display_errors в "рабочих" сайтах может открыть доступ пользователю к
; секретной информации: например, полному пути к документу, используемой
; базе данных и т. д.
display_errors = On

; Даже если display_errors включена, ошибки, возникающие во время старта
; PHP, не отображаются. Рекомендуется устанавливать следующую директиву
; в выключенное состояние, за исключением случая, когда вы применяете
; ее при отладке.
display_startup_errors = Off

; Сохранять ли сообщения об ошибках в файле журнала. Журнал может
; определяться настройками сервера, быть связанным с потоком stderr
; или же задаваться директивой error_log, описанной ниже. Как уже было
; сказано, в коммерческих проектах желательно использовать именно
; журнализацию, а не отображать ошибки в браузер.
log_errors = Off

; Сохранять ли последнее сообщение об ошибке или предупреждение в
; переменной $php_errormsg
track_errors = On

; Строка, которая выводится перед сообщением об ошибке.
;error_prepend_string = "<font color=ff0000>"

; Строка, которая отображается после сообщения.
;error_append_string = "</font>"

; Раскомментируйте, чтобы вести журнал в указанном файле.
;error_log = filename

; Раскройте, чтобы использовать системный журнал.
;error_log = syslog

; Предупреждать, когда оператор + применяется к строкам.
warn_plus_overloading = Off

;;;;;;;;;;;;;;;;;;;;
; Обработка данных ;
;;;;;;;;;;;;;;;;;;;;

; Замечание: track_vars всегда включена, начиная с PHP 4.0.3.

; Следующая директива определяет, в каком порядке PHP будет
; регистрировать данные, полученные методами GET, POST, а также
; переменные окружения и встроенные переменные (соответственно, значение
; задается буквами G, P, C, E и S, например, EGPCS или GPC). Регистрация
; производится на основе чтения этой строки слева направо, новые значения
; переопределяют старые.
variables_order = "EGPCS"

; Должен ли PHP регистрировать EGPCS-переменные как глобальные
; переменные. Возможно, вы захотите отключить эту возможность, если не
; хотите "засорять" глобальную область видимости сценария. Это имеет
; смысл, если вы используете директиву track_vars - в этом случае вы
; можете получить доступ к GPC-данным через массив $HTTP_???_VARS.
; Желательно так писать сценарии, чтобы они по возможности
; старались обходиться без директивы register_globals. Использование
; данных, поступивших из формы, как глобальных переменных, потенциально
; может породить проблемы в защите сценария, если программист не особенно
; позаботится об их устранении.
register_globals = On

; Следующая директива указывает PHP, обязан ли он создавать переменные
; $argv и $argc на основе информации, поступившей методом GET. Если вы не
; используете эти переменные, отключите директиву register_argc_argv для
; небольшого убыстрения работы PHP.
register_argc_argv = On

; Максимальный размер данных POST, который PHP сможет принять.
post_max_size = 8M

; Следующая директива устарела - используйте variables_order.
gpc_order = "GPC"

; Автоматическая обработка кавычек и апострофов:
; использовать ли автокавычки для входящих GET/POST/Cookie данных
magic_quotes_gpc = Off

; Заключать ли данные в автокавычки во время выполнения, например,
; для данных из SQL, exec() и т. д.
magic_quotes_runtime = Off

; Нужно ли PHP оформлять автокавычки в стиле Sybase-style (заменять '
; на '', а не на ')
magic_quotes_sybase = Off

; Следующие директивы указывают PHP, содержимое каких файлов он должен
; обрабатывать до и после вывода сценария.
auto_prepend_file =
auto_append_file =

; Начиная с версии 4.0b4, PHP всегда сообщает браузеру об используемой
; кодировке в заголовке Content-type. Для того, чтобы запретить это,
; просто установите следующую директиву пустой. По умолчанию
; используется text/html без указания кодировки.
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

;;;;;;;;;;;;;;;;;;;
; Пути и каталоги ;
;;;;;;;;;;;;;;;;;;;

; Для UNIX: "/path1:/path2".
; Для Windows: "path1;path2"
include_path =

; Корневой каталог для PHP-сценариев.
; Игнорируется, если значение равно пустому "".
doc_root =

; Каталог, который PHP использует при открытии сценария вида
; /~username. Не оказывает действия, если значение равно "".
user_dir =

; Каталог, в котором хранятся динамически загружаемые расширения.
extension_dir = /usr/local/php/extensions

; Следующая директива разрешает или запрещает использование функции dl().
; Функция dl() работает неправильно в многопоточных Web-серверах,
; например, в IIS или Zeus, и автоматически отключается для них.
enable_dl = On

;;;;;;;;;;;;;;;;;;
; Закачка файлов ;
;;;;;;;;;;;;;;;;;;

; Разрешает PHP обрабатывать закачку файлов
file_uploads = On

; Каталог для временных файлов, в который PHP помещает закачанные
; файлы (используется системный временный каталог, если в директиве
; указана пустая строка)
upload_tmp_dir = /tmp

; Максимальный размер закачанного файла
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Динамически загружаемые расширения ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Если вы хотите, чтобы какие-то модули загружались автоматически,
; задавайте директиву extension в формате:
; extension=modulename.extension
; Например, для Windows:
; extension=msql.dll
; или для UNIX:
; extension=msql.so
; Должно быть указано только имя, без пути. Чтобы задать каталог,
; в котором расположены расширения, используйте директиву
; extension_dir, описанную выше.

; Модули для Windows
; Замечание: поддержка MySQL и ODBC теперь включена в ядро PHP, так что
; для нее уже не нужны никакие библиотеки DLL. Подключение тех или иных
; модулей в системах, которые не предназначены для них, может вызвать
; неработоспособность сервера. Поэтому подключайте толькоте модули, в
; которых уверены.
;

; графическая библиотека GD
extension=php_gd.dll

;extension=php_cpdf.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mhash.dll
;extension=php_mssql65.dll
;extension=php_mssql70.dll
;extension=php_oci8.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_sablot.dll
;extension=php_swf.dll
;extension=php_sybase_ct.dll
;extension=php_zlib.dll

;;;;;;;;;;;;;;;;;;;;;;;;;
; Установки для модулей ;
;;;;;;;;;;;;;;;;;;;;;;;;;

[Syslog]
; Нужно или нет определять различные переменные Syslog, такие как
; $LOG_PID, $LOG_CRON и т. д. Для ускорения работы рекомендуется
; выключать следующую директиву. Во время выполнения сценария вы
; можете включить или выключить директиву путем вызова
; функции define_syslog_variables().
define_syslog_variables = Off

[mail function]
; Только для Win32 - используемый SMTP-сервер.
SMTP = mx.lazurnaya.ru

; Только для Win32 - поле From: по умолчанию.
sendmail_from = dko@lazurnaya.ru

; Только для UNIX - задает путь и аргументы программы sendmail (по
; умолчанию - 'sendmail -t -i').
;sendmail_path =

[Debugger]
debugger.host = localhost
debugger.port = 7869
debugger.enabled = False

[Logging]
; Следующие директивы используются сценарием-примером.
; При потребности в детальном описании см. examples/README.logging.
;logging.method = db
;logging.directory = /path/to/log/directory

[Java]
;java.class.path = .php_java.jar
;java.home = c:jdk
;java.library = c:jdkjrebinhotspotjvm.dll
;java.library.path = .

[SQL]
sql.safe_mode = Off

[ODBC]
;uodbc.default_db = Not yet implemented
;uodbc.default_user = Not yet implemented
;uodbc.default_pw = Not yet implemented

; Разрешает или запрещает устойчивые соединения
uodbc.allow_persistent = On

; Проверка доступности соединения перед его использованием.
uodbc.check_persistent = On

; Макс. число устойчивых соединений. -1 означает, что ограничений нет.
uodbc.max_persistent = -1

; Макс. число соединений (устойчивых + неустойчивых).
uodbc.max_links = -1

; Установки для LONG-полей.
uodbc.defaultlrl = 4096

; Установки для бинарных данных. 0 означает режим passthru, 1 - режим
; as is, 2 - преобразование в символы.
uodbc.defaultbinmode = 1

; См. документацию по odbc_binmode и odbc_longreadlen для более
; детального разъяснения смысла директив uodbc.defaultlrl и
; uodbc.defaultbinmode.

[MySQL]
mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1

; Порт по умолчанию для функции mysql_connect(). Если не задан, функция
; попытается использовать переменную $MYSQL_TCP_PORT или запись mysql-tcp
; в /etc/services, а также заданную во время компиляции PHP константу
; MYSQL_PORT (именно в таком порядке). К PHP для Win32 применимо только
; последнее.
mysql.default_port =

; Определяет имя сокета для локальных соединений MySQL. Если он не задан,
; использует встроенное значение по умолчанию.
mysql.default_socket =

; Хост по умолчанию для mysql_connect() (не работает в безопасном режиме).
mysql.default_host =

; Пользователь по умолчанию (не работает в безопасном режиме).
mysql.default_user =

; Пароль по умолчанию (не работает в безопасном режиме).
; Замечание: идея хранить пароль в этом файле просто отвратительна. Любой
; пользователь, который может запускать PHP, сможет узнать пароль путем
; выполнения:
; echo cfg_get_var("mysql.default_password")
; Конечно, узнать пароль сможет также и пользователь, который имеет права
; на чтение для файла php.ini.
mysql.default_password =

[mSQL]
msql.allow_persistent = On
msql.max_persistent = -1
msql.max_links = -1

[PostgresSQL]
pgsql.allow_persistent = On
pgsql.max_persistent = -1
pgsql.max_links = -1

[Sybase]
sybase.allow_persistent = On
sybase.max_persistent = -1
sybase.max_links = -1
;sybase.interface_file = "/usr/sybase/interfaces"

; Максимальный уровень серьезности отображаемых ошибок.
sybase.min_error_severity = 10

; Минимальный уровень серьезности отображаемых ошибок.
sybase.min_message_severity = 10

; Режим совместимости со старыми версиями PHP 3.0.
; Если следующая директива установлена в On, PHP будет автоматически
; присваивать тип результату на основе его типа в Sybase, вместо того,
; чтобы преобразовывать полученные значения в строки. Этот режим
; совместимости, возможно, в будущем не будет поддерживаться, так что
; лучше исправьте свои сценарии, если вам он нужен.
sybase.compatability_mode = Off

[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10

[bcmath]
; Число десятичных цифр для всех bcmath-функций.
bcmath.scale = 0

[browscap]
;browscap = extra/browscap.ini

[Informix]
ifx.default_host=
ifx.default_user=
ifx.default_password=
ifx.allow_persistent=On
ifx.max_persistent=-1
ifx.max_links=-1

; Если следующая директива установлена в On, выражение select возвращает
; содержимое поля типа text blob вместо его идентификатора.
ifx.textasvarchar=0

; Заставляет команду select возвращать значение поля типа byte blob
; вместо его идентификатора.
ifx.byteasvarchar=0

; Принуждает PHP удалять завершающие пробелы из колонок с типом char
; фиксированного размера. Может помочь пользователям Informix SE.
ifx.charasvarchar=0

; Если установлена, содержимое полей text и byte сохраняется в файле,
; вместо того, чтобы храниться в памяти.
ifx.blobinfile=0

; Если установлена в 0, значения NULL возвращаются как пустые строки,
; иначе они возвращаются как строки 'NULL'.
ifx.nullformat=0

[Session]
; Определяет режим хранения данных сессий.
session.save_handler = files

; Следующая директива задает аргумент, передаваемый save_handler-у. В
; случае режима сохранения в файлах здесь должен указываться каталог,
; в который будут помещены файлы сессий.
session.save_path = /tmp

; Должен ли PHP использовать Cookies.
session.use_cookies = 1

; Имя Cookie для сессии (имя сессии по умолчанию)
session.name = PHPSESSID

; Инициализировать ли сессии при старте.
session.auto_start = 0

; Время жизни Cookie для сессии. Если до закрытия браузера, то 0.
session.cookie_lifetime = 0

; Путь для Cookie с идентификатором сессии.
session.cookie_path = /

; Домен для Cookie с идентификатором сессии.
session.cookie_domain =

; Функция, используемая для сериализации данных. Значение php задает
; стандартную функцию.
session.serialize_handler = php

; Вероятность того, что при очередном запуске сценария, работающего с
; сессиями, будет вызвана функция "сборки мусора" для очистке сессий,
; которые пользователь уже покинул.
session.gc_probability = 1

; После указанного здесь промежутка времени сохраненные
; данные будут удалены автоматически сборщиком мусора.
session.gc_maxlifetime = 1440

; Проверять ли HTTP Referer на предмет того, не является ли ID сессии
; "фальшивым".
session.referer_check =

; Указывает, сколько байтов читать из файла со случайными числами.
session.entropy_length = 0
; session.entropy_length = 16

; Файл случайных чисел, используемый для генерации идентификаторов сессии.
session.entropy_file =
; session.entropy_file = /dev/urandom

; Установите одно из значений nocache, private, public для определения
; аспектов кэширования HTTP.
session.cache_limiter = nocache

; Документ будет считаться устаревшим по истечении заданного
; здесь количества минут
session.cache_expire = 180

; Использовать ли поддержку "переходящих" SID, то есть, поддерживать ли
; сессии, если пользователь отключил Cookies в браузере. Действует,
; если PHP был скомпилирован с включенной опцией --enable-trans-sid.
session.use_trans_sid = 1

[MSSQL]
;extension=php_mssql.dll
mssql.allow_persistent=On
mssql.max_persistent=-1
mssql.max_links=-1
mssql.min_error_severity=10
mssql.min_message_severity=10

; Режим совместимости со старыми версиями PHP 3.0.
mssql.compatability_mode=Off

[Assertion]
; Работает ли функция проверки assert(выражение) (по умолчанию работает)
;assert.active = On

; Генерирует предупреждения PHP для каждых неудавшихся проверок выражений.
;assert.warning = On

; По умолчанию не завершать программу в случае неудачи.
;assert.bail = Off

; Пользовательская функция, которая будет вызвана при неудаче проверки.
;assert.callback = 0

; Вычислять выражения в eval с использованием текущих установок
; error_reporting. Установите в true, если вы хотите, чтобы действие
; режима error_reporting(0) было сохранено и при переходе через
; границу eval().
;assert.quiet_eval =

[Ingres II]
ingres.allow_persistent=On
ingres.max_persistent=-1
ingres.max_links=-1

; База данных по умолчанию (формат: [node_id::]dbname[/srv_class]
ingres.default_database=
ingres.default_user=
ingres.default_password=

[Verisign Payflow Pro]
pfpro.defaulthost="test.signio.com"
pfpro.defaultport=443
pfpro.defaulttimeout=30

; IP-адрес proxy-сервера по умолчанию (если требуется).
; pfpro.proxyaddress=

; Порт proxy-сервера по умолчанию
; pfpro.proxyport=

; Логин для proxy-сервера по умолчанию
; pfpro.proxylogon=

; Пароль для proxy-сервера по умолчанию
; pfpro.proxypassword=

;;;;;;;;;;;;;;;;;;
;; Конец файла. ;;
;;;;;;;;;;;;;;;;;;