На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » Фундамент (dns, ftp, http ..) » HTTP (Стандарты, ...)

Apache + Perl + PHP3 + MySQL для Windows 95/98: руководство по установке

Оглавление

1. Дистрибутивы и ссылки
2. Введение - зачем нужен домашний виртуальный сервер?
3. От слов к делу - установка Apache
4. Виртуальные хосты Apache - как это настроить?
5. Установка PHP версии 3
6. Установка Perl
7. Установка MySQL
8. Часто задаваемые вопросы

Хотелось бы поблагодарить коллектив студии RealDesign, проверивший "на своей шкуре" все описываемые действия. Если у Вас возникнут вопросы в процессе выполнения инструкций в статье, буду рад ответить. Мой адрес электронной почты dk@dizain.ru. Пожалуйста, описывайте свою проблему подробнее! Комментарии бесплатные, но весьма краткие. Компьютерная революция не ждет никого, в том числе и меня...

Дмитрий Котеров
Лаборатория dk

1. Дистрибутивы и ссылки

"А не послать ли нам гонца?.."
Кинорежиссер

Вот программы, на которые ссылается данная статья:

  1. Apache версии 1.3.6
  2. PHP версии 3.0.13
  3. Perl версии 5.004.02
  4. MySQL версии 9.13

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

  1. Официальный сайт Apache: http://www.apache.com
  2. Официальный сайт PHP: http://ru.php.net
  3. Официальный сайт Active Perl: www.activestate.com
  4. Официальный сайт MySQL: http://www.mysql.com

И еще несколько ссылок:

  1. Полезная информация об Apache: http://www.apache.ru
  2. Всероссийский клуб вебмастеров: http://www.webclub.ru
  3. Клуб разработчиков PHP: http://www.phpclub.net
  4. Ну и, конечно, Лаборатория dk: http://www.dizain.ru/dklab

2. Введение - зачем нужен домашний виртуальный сервер?

"Ну к чему все это, лучше бы водки выпили"
Из писем Белинского Гоголю

Если Вы читаете этот документ, а также если у Вас установлен Windows 95/98 (а наше личное мнение такое, что эта операционная система наиболее сбалансирована с точки зрения интерфейса и удобства работы), значит, Вы уже столкнулись с проблемой виртуального домашнего сервера, а точнее, с проблемой его отсутствия! Эта небольшая статья поможет Вам скачать и установить один из лучших серверов - Apache, а также те приложения, из-за отсутствия которых народ в бешенстве сметает все остальные сервера (например, Sambar Server) со своего многострадального жесткого диска и устанавливает Apache для Windows 95/98. Имеются в виду, конечно, Perl, PHP3 и MySQL, также работающие под Windows. Прочитав эту статью и скачав дистрибутивы, Вы будете вооружены всеми инструментами, которые так необходимы для профессиональной работы в Web!

Обращаем Ваше внимание: бытует мнение, что MySQL (а тем более для Windows 95/98) нельзя получить бесплатно, а можно только купить. Так вот, можете вздохнуть с облегчением: MySQL для Windows 95/98 существует, и ее установка не будет стоить Вам и копейки!

Если Вы - профессиональный Web-программист, то после внимательного ознакомления с этой (увы, ставшей некоторое время назад довольно объемистой) статьей Вы сможете на порядок упростить себе жизнь - точнее, ее часть, касающуюся написания и отладки скриптов. И это благодаря тому, что все описанное здесь почти на 100% совместимо с тем ПО, которое скорее всего установлено у Вашего хостера (а больше половины современных хостеров работают с Unix). Именно для этих, и никаких других, целей и была написана эта статья - помочь разработчику скриптов. Однако, если Вы собераетесь всерьез заняться хостингом на платформе Win32, то лучше будет использовать на Apache и PHP, а Microsoft IIS и ASP, и про это, я уверен, написано множество других статей.

Поговорим теперь с теми пользователями Windows 95/98, которые заглянули сюда из простого любопытства. Часто возникает ситуация, когда необходимо проверить полный вид html-страницы. Однако чаще всего это невозможно при работе дома - технологии SSI, CGI и, конечно, PHP, например, точно требуют сервера. Как же быть? Не стоит впадать в апатию - нужно просто установить на Ваш домашний компьютер (пусть даже и не подключенный к Интернет) специальную программу - Web-сервер. Вообще-то серверов существует множество - плохие и хорошие, медленные и быстрые... Мы же выбрали сервер, подходящий под последние две категории, - Apache. Самое главное то, что это чуть ли не единственный сервер, который позволяет работать в Windows 95/98 с технологиями PHP, CGI и Perl-скриптами одновременно так же просто и непринужденно, как будто у Вас стоит Unix.

3. От слов к делу - установка Apache

"У меня для вас две новости: плохая и хорошая. Плохая: мяса
мало, будем есть бизоний помет. И хорошая: его-то у нас много!.."
Из выступления вождя апачей

Итак, Вы решились установить на свой компьютер Apache для Windows 95/98. В таком случае Вам следует запастись терпением и для начала скачать дистрибутив сервера - файл с именем apache_setup.exe (3.061.629 байт). Скачали? Прекрасно. Теперь самое интересное - настройка Apache для Вашей системы.

Важно: мы попросим Вас в точности выполнять перечисленные ниже шаги, не пропуская и не откладывая ни одного. В этом случае все заработает - это проверено.

Этап первый - установка

  1. Определитесь с директорией, в которую Вы будите устанавливать Apache. Все дальнейшие рассуждения основаны на том, что Вы выбрали для этой цели такой каталог: f:\usr\local\apache Если диска F: у Вас нет, или если Вы не хотите его захламлять, советуем сделать одно из трех:
    1. Создайте диск F: с помощью какой-нибудь программы для виртуальных разделов (например, с помощью встроенной в Windows 95/98 программы DriveSpace). Это самое лучшее решение, и с точки зрения экономии памяти, и с точки зрения быстродействия. Ведь что такое Web-сайт, как не набор очень небольших файлов? А DriveSpace как раз и оптимизирует работу с такими файлами.
    2. Сделайте виртуальный диск F:. Для этого создайте где-нибудь на любом диске директорию, которая в будущем будет являться корневой для диска F:. Предположим, Вы выбрали C:\INTERNET. Далее, в начале файла c:\autoexec.bat пропишите такую строку:
      subst f: C:\INTERNET
      и перезагрузите компьютер. У вас должен появиться виртуальный пустой диск F:.

      ВНИМАНИЕ: имеются сведения, что в Windows 95/98 есть ошибка, в результате которой иногда subst-пути "сами по себе" преобразуются в абсолютные. То есть, например, иногда в рассмотренном выше примере команды

        f:
        cd \
        cd \
        dir
        
      (а точнее, команда dir в своем заголовке) ошибочно выведут, что текущая директория C:\ (а не F:\, как это должно быть). Указанная ошибка чаще всего проявляется в неработоспособности Perl-транслятора. Так что лично мы не рекомендуем Вам использовать subst. Вместо этого воспользуйтесь пунктом 1.
    3. Наконец, Вы можете всего этого не делать и поставить Apache на любой другой диск, только тогда Вам придется немного тяжелее при выполнении всех остальных действий. Нужно будет все указываемые пути заменять на Ваши собственные, а это крайне неприятно. Еще раз настоятельно рекомендуем воспользоваться диском F:.

    Рекомендуем все же разместить Apache в указанном в начале каталоге, так как он максимально соответствует каталогу для реального Web-сервера Интернета. Ведь чем ближе в плане конфигурации мы будем к такому серверу, тем лучше и эффективнее сможем работать.

  2. Запустите только что скачанный файл. В появившемся диалоге нажмите кнопку Yes, а затем - кнопку Next.
  3. Теперь нажмите Browse. Вручную задайте директорию для установки: f:\usr\local\apache и нажмите кнопку OK.
  4. Выберите тип установки - Сustom и уберите флажок Source Code (если, конечно, не хотите посмотреть исходные тексты Apache). Этим Вы сэкономите себе 3 Мбайта.
  5. Нажмите Next и подождите, пока будут копироваться файлы Apache.
  6. На запрос о перезагрузке компьютера ответьте "Перезагрузить".

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

Этап второй - настройка файла конфигурации Apache mime.types

  1. Откройте директорию f:\usr\local\apache\conf. Откройте находящийся там файл mime.types.
  2. Найдите в нем такую строчку:
    text/html      html htm
    Измените ее на
    text/html      html htm shtml shtm sht

Следует заметить, что если Вы по каким-то причинам не хотите портить файл mime.types, то можно вместо этого прописать в файле httpd.conf (см. ниже) строки вида

AddType text/html html htm shtml shtm sht

Этап третий - настройка файла httpd.conf

Внимание! Это - самый ответственный момент установки. Просим соблюдать инструкции БУКВАЛЬНО.

  1. Откройте директорию f:\usr\local\apache\conf Откройте находящийся там файл httpd.conf. Это - единственный файл, который Вам осталось настроить. Вам предстоит найти и изменить в нем некоторые строки, а именно те, о которых упоминается далее. Во избежание недоразумений не трогайте все остальное. Следует заметить, что в нем каждый параметр сопровождается несколькими строками комментариев, разобраться в которых с первого раза довольно тяжело. Поэтому не обращайте на них внимание.
  2. В поле ServerAdmin укажите Ваш E-mail адрес, который будет показываться в сообщениях об ошибке сервера. Например:
    ServerAdmin my@email.com
  3. В поле ServerName напишите любое слово - на работе это не сказывается, например:
    ServerName ApacheServer
    Только не забудьте раскомментировать поле ServerName, то есть убрать символ "#" перед этим параметром (по умолчанию он закомментирован)!
  4. В поле DocumentRoot укажите ту директорию, в которой будут храниться Ваши html-файлы, например:
    DocumentRoot f:/www
    Разумеется, можете указать и любую другую директорию, если хотите. В любом случае, не забудьте ее создать, лучше сделайте это прямо сейчас!
  5. Найдите блок, начинающийся строкой и заканчивающийся (вообще, такие блоки обозначают установки для заданной директории и всех ее поддиректорий). Его нужно изменить на:
    
      Options Indexes Includes
      AllowOverride All
    
    Таким образом, в этом блоке будут храниться установки для всех директорий по умолчанию (т.к. это - корневая директория).
  6. Найдите аналогичный блок, начинающийся и заканчивающийся . Там будет много комментариев, не обращайте на них внимание. Этот блок следует заменить на:
    
      Options Indexes Includes
      AllowOverride All
      Order allow,deny
      Allow from all
    
    Это - установки для директории с Вашими html-документами. Если хотите, можете установить другую директорию, главное, чтобы она совпадала с той, которая прописана в параметре DocumentRoot
  7. Идем дальше. Установите UserDir, например так:
    UserDir f:/home
    Это будет директория, в которой хранились бы домашние страницы пользователей, если бы это был настоящий Web-сервер, а также корневые каталоги виртуальных хостов (см. ниже). Не забудьте также создать этот каталог.
  8. Установите DirectoryIndex так:
    DirectoryIndex index.htm index.html
    Это - так называемые файлы индекса, которые автоматически выдаются сервером при обращении к какой-либо директории, если не указано имя html-документа. В принципе, можно добавить сюда и другие имена, например, index.phtml, если Вы будите работать с PHP и т.д.
  9. Найдите и пропишите такой параметр:
    ScriptAlias /cgi-bin/ "f:/cgi-bin/"
    Да, именно так, с двумя слэшами. Это будет та директория, в которой должны храниться Ваши CGI-скрипты. Если хотите, можете задать другое имя, например:
    ScriptAlias /mycgi/ "f:/mycgidir/"
    Подобный параметр говорит Apache о том, что, если будет указан путь вида http://localhost/cgi-bin, то на самом деле следует обратиться к директории f:/cgi-bin.
  10. Теперь следует найти и настроить блок параметров, начинающийся с и заканчивающийся . Это - установки для Вашей CGI-директории (если Вы установили для нее другое имя на предыдущем шаге, соответственно модифицируйте путь). Там должно быть:
    
      AllowOverride All
      Options ExecCGI
    
  11. Настройте следующий параметр:
    AddHandler cgi-script .bat .exe
    Это говорит Apache о том, что файлы с расширением .exe и .bat нужно рассматривать как CGI-скрипты.
  12. И последнее - установите:
    AddHandler server-parsed .shtml .shtm .sht
    Или, если Вы хотите, чтобы и обычные файлы html обрабатывались SSI, напишите так:
    AddHandler server-parsed .shtml .shtm .sht .html .htm

Поздравляем - Вы настроили свой Apache, и он должен уже работать! Для запуска сервера нажмите Пуск->Программы->Apache Web Server->Start Apache as console app, при этом появится окно, очень похожее на Сеанс MS-DOS, и ничего больше не произойдет. Не закрывайте его и не трогайте до конца работы с Apache.

Несколько слов о том, как можно упростить запуск и завершение сервера. В Windows можно назначить любому ярлыку функциональную комбинацию клавиш, нажав которые, Вы запустите этот ярлык. Так что щелкните правой кнопкой на панели задач, в контекстном меню выберите Свойства, затем Настройка меню и кнопку Дополнительно. В открывшемся Проводнике назначьте ярлыку Start Apache as console app комбинацию Ctrl+Alt+A, а ярлыку Shutdown Apache as console app - Ctrl+Alt+S

Вот шаги, которые можно проделать для проверки работоспособности сервера:

  • Проверка html: в директории f:/www с html-документами Apache создайте файл index.html. Теперь запустите браузер и наберите:
    http://localhost/index.html
    или просто
    http://localhost/
    Загрузится Ваш файл.
  • Проверка CGI: в директории f:/cgi-bin для CGI-скриптов создайте файл test.bat с таким содержанием:
    @echo off
    echo Content-type: text/html
    echo.
    echo.
    dir
    Теперь в браузере наберите:
    http://localhost/cgi-bin/test.bat
    В окне отобразится результат команды DOS dir. (Хотелось бы отметить, что указанный тест работает не на всех версиях Windows: иногда вместо того, чтобы выполнить файл test.bat, Apache выводит в браузер его содержимое. С чем это связано - не совсем ясно, однако, кажется, можно избавиться от указанной ошибки путем манипулирования с Реестром. Если у Вас test.bat не запускается, не расстраивайтесь: вряд ли Вы когда-нибудь будете писать скрипты в виде bat-файлов, тем более, что это несовместимо с Unix.)
  • Проверка SSI: аналогична проверке html. Используйте, например, директиву
    Если bat-файлы Ваш Apache запускать не хочет (см. выше), то дождитесь установки Perl или PHP.
Если что-то пошло не так, либо окно Apache открывается и тут же закрывается, значит, где-то произошла ошибка - скорее всего, в httpd.conf. За детальным разъяснением ее причин можно обратиться к log-файлам, расположенным в директории f:/usr/local/apache/logs.

4. Виртуальные хосты Apache - как это настроить?

"Виртуальные хосты - хосты, имеющие уникальный адрес
в Интернет, эмулируемые и поддерживаемые сервером"
Древнее языческое заклинание

Итак, Вы установили Apache. Получили, таким образом, директорию f:/www для хранения документов и f:/cgi-bin для CGI. Но вот беда: в Интернете вы поддерживаете несколько серверов, а Apache создал для вас только один. Конечно, можно структуру этих несколькох серверов хранить на одном сервере, однако проще и удобнее было бы создать несколько виртуальных хостов с помощью Apache, например, один с именем serv1 и адресом 127.0.0.2, а другой - с именем serv2 и адресом 127.0.0.3. (Конечно, вместо "serv1" и "serv2" Вам нужно будет указать желаемые имена Ваших виртуальных хостов. Советуем назвать их так же, как и на Вашем настоящем Web-сервере - это может многое упростить при программировании скриптов.)

Как это принято в Unix, каждый сервер будет представлен своим каталогом в директории f:/home с именем, совпадающим с именем сервера. Например, сервер serv1 будет храниться в директории f:/home/serv1, которую Вам необходимо создать прямо сейчас. В этой директории будут находиться:

  • файл access.log с журналом доступа к виртуальному серверу.
  • файл errors.log с журналом ошибок сервера.
  • директория www, где будут храниться html-документы.
  • директория cgi для хранения CGI-программ.

Последние две директории (www и cgi) Вам тоже необходимо создать прямо сейчас.

Далее, для установки виртуального хоста необходимо сделать некоторые изменеия в файле конфигурации Apache httpd.conf (см. выше), а также в некоторых файлах Windows. Вот необходимые действия:

  1. Откройте директорию f:\usr\local\apache\conf. Откройте находящийся там файл httpd.conf. Перейдите в его конец, Вам предстоит добавить туда несколько строк.
  2. Пропишите следующие строки в конце файла после всех комментариев:
    #----serv1
    
      ServerAdmin webmaster@serv1.ru
      ServerName serv1
      DocumentRoot "f:/home/serv1/www"
      ScriptAlias /cgi/ "f:/home/serv1/cgi/"
      ErrorLog f:/home/serv1/error.log
      CustomLog f:/home/serv1/access.log common
    
    
    При желании можно добавить и другие параметры (например, DirectoryIndex и т.д.) Вообще, не переопределенные параметры наследуются виртуальным хостом от главного.
  3. Теперь надо немного подправить системный файл hosts, который находится в C:\WINDOWS\hosts (такого файла может не быть по умолчанию - в этом случае его надо создать). hosts (не путать с файлом hosts.sam!) - обычный текстовый файл, и в нем обычно заранее прописана только одна строка:
    127.0.0.1       localhost
    именно эта строка и задает соответствие имени localhost адресу 127.0.0.1. (Ради справедливости следует сказать, что имя localhost работает и без указанной выше строки. Ну и выдумщики же эти парни из компании Microsoft!) Для нашего виртуального хоста надо добавить соответствующую строчку, чтобы файл выглядел так:
    127.0.0.1       localhost
    127.0.0.2       serv1
    
Этим Вы создадите виртуальных хост со следующими свойствами:
  • Имя - serv1
  • Доступен по адресу http://serv1 (или http://127.0.0.2).
  • Расположен, соответственно, в директории f:/home/serv1.
  • Директория для хранения документов - f:/home/serv1/www, доступная по адресу http://serv1/.
  • Директория для CGI - f:/home/serv1/cgi, доступная по адресу http://serv1/cgi/
  • Файлы журналов хранятся в f:/home/serv1

Ну вот, мы создали один виртуальный хост! Если будет необходимо сделать второй, нужно просто проделать аналогичные действия, заменив параметры, связанные с расположением хоста на диске. Главное, не забудьте в этом случае указать другой IP-адрес (лучше всего указывать их последовательно, начиная с 127.0.0.2, затем 127.0.0.3 и т.д. - в этом случае все работает корректно). Желательно также для этих целей не указывать IP-адрус http://127.0.0.1, так как это - адрес главного сервера.

Кстати, необходимо заметить, что главный хост (невиртуальный, тот, который мы создали в разделах 1 и 2) по-прежнему доступен по адресу http://127.0.0.1 или http://localhost. Более того, его директория cgi-bin "видна" всем созданным виртуальным хостам, так что Вы можете ее использовать.

И последнее: если описанная выше схема настройки виртуальных хостов у Вас не заработала, обратитесь к списку часто задаваемых вопросов в конце этой статьи.

5. Установка PHP версии 3

"- Больной, читайте первую строчку сверху!
- Ша, Бэ, Пэ Ха Пэ... Доктор, кодировочку-то пофиксите..."
Народный фольклор

В отличие от установки Apache, установка PHP короче, однако мы бы не сказали, что проще. Дело в том, что, во-первых, у PHP нет нормальной setup-программы, как у Apache, а во-вторых, при его установке необходимо также настраивать сервер.

Итак, прежде всего поговорим о каталоге, в котором у Вас будут находиться файлы PHP. В дистрибутиве по умолчанию стоит такой:

f:/usr/local/php3

Если Вы физически не можете или просто не хотите иметь такой каталог (хотя, если Вы читали инструкцию по установке Apache, все должно быть в порядке), то Вы вольны установить PHP в другой каталог, но тогда Вам предстоит следующее: в файле php_iis_reg.inf из дистрибутива PHP найти ВСЕ строки "f:\usr\local\php3" (их там, кстати, 6 штук) и заменить их на тот каталог, где Вы предполагаете разместить PHP. Могу сразу сказать, что это не самое приятное провождение времени, но уж ничего не поделаешь, такова жизнь...

Как обычно, приведем по порядку те действия по установке PHP, которые у нас привели к результату.

Установка PHP

  1. Создайте директорию f:/usr/local/php3 (если хотите другое имя, см. рассуждения выше). Это - та директория, в которую будет установлен PHP.
  2. Скачайте дистрибутив PHP - файл с именем php3_setup.exe (1.970.356 байт), желательно в только что созданную директорию. Это саморазворачивающийся zip-архив, который Вы должны будете запустить, чтобы разархивировать. По умолчанию он развернется в текущую директорию, так что будьте внимательны.
  3. Еще раз напоминаем: если Вы решили установить PHP в другую директорию, Вам необходимо вручную отредактировать файл php_iis_reg.inf с целью замены в нем имен директории на нужную (см. выше).
  4. В файле php3.ini из дистрибутива есть закомментированные строки, выглядящие так:
    ;extension=имя_модуля.dll
    Если Вы хотите включить какой-нибудь модуль (по умолчанию уже включена поддержка GD и mSQL), раскомментируйте соответствующую строку (уберите точку с запятой).
  5. Теперь в Проводнике Windows нажмите правой кнопкой мыши на файле php_iis_reg.inf и выберите в контекстном меню пункт Установить - этим Вы автоматически добавите в Реестр некоторые установки, касающиеся PHP.
  6. Скопируйте файл php3.ini в каталог с Windows (например, в c:/windows);

Настройка Apache

  1. В файл конфигурации Apache conf/mime.types добавтьте такую строку:
    application/x-httpd-php3 phtml php3 php
  2. Теперь откройте файл conf/httpd.conf и добавьте в его конец (но перед блоков виртуальных хостов, если они там есть) такие строки:
    
      Options ExecCGI
    
    ScriptAlias "/__php_dir__/" "f:/usr/local/php3/"
    Action application/x-httpd-php3 "/__php_dir__/php.exe"
    
Ну вот, пожалуй, и все. Если Вы все сделали правильно, то PHP установлен. Проверьте его работоспособность с помощью простого скрипта, например такого:
It works!
phpinfo()
PHP Logo

PHP Version 5.4.45


System Linux web.megatis.ru 3.10.0-1160.25.1.vz7.180.2 #1 SMP Fri May 14 18:17:39 MSK 2021 x86_64
Build Date Feb 18 2017 15:55:34
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc
Loaded Configuration File /etc/php.ini
Scan this dir for additional .ini files /etc/php.d
Additional .ini files parsed /etc/php.d/apc.ini, /etc/php.d/curl.ini, /etc/php.d/dom.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/gmp.ini, /etc/php.d/intl.ini, /etc/php.d/json.ini, /etc/php.d/mbstring.ini, /etc/php.d/mcrypt.ini, /etc/php.d/mongo.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/soap.ini, /etc/php.d/sqlite3.ini, /etc/php.d/wddx.ini, /etc/php.d/xmlreader.ini, /etc/php.d/xmlwriter.ini, /etc/php.d/xsl.ini, /etc/php.d/zip.ini
PHP API 20100412
PHP Extension 20100525
Zend Extension 220100525
Zend Extension Build API220100525,NTS
PHP Extension Build API20100525,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streamshttps, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filterszlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*

Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies


PHP Credits


Configuration

apache2handler

Apache Version Apache/2.2.22 (@RELEASE@)
Apache API Version 20051115
Server Administrator webmaster@i2r.ru
Hostname:Port i2r.ru:0
User/Group apache(48)/48
Max Requests Per Child: 4000 - Keep Alive: off - Max Per Connection: 300
Timeouts Connection: 15 - Keep-Alive: 15
Virtual Server Yes
Server Root /etc/httpd
Loaded Modules core itk http_core mod_so mod_auth_basic mod_authn_file mod_authz_host mod_authz_user mod_include mod_log_config mod_env mod_mime_magic mod_headers mod_setenvif mod_mime mod_status mod_autoindex mod_info mod_vhost_alias mod_negotiation mod_dir mod_actions mod_alias mod_substitute mod_rewrite mod_cgi mod_realip2 mod_php5

DirectiveLocal ValueMaster Value
engine11
last_modified00
xbithack00

Apache Environment

VariableValue
HTTP_HOST www.i2r.ru
HTTP_X_REAL_IP 44.199.212.254
HTTP_X_FORWARDED_FOR 44.199.212.254
HTTP_CONNECTION close
HTTP_ACCEPT */*
HTTP_USER_AGENT claudebot
PATH /sbin:/usr/sbin:/bin:/usr/bin
SERVER_SIGNATURE no value
SERVER_SOFTWARE Apache/2.2.22 (@RELEASE@)
SERVER_NAME www.i2r.ru
SERVER_ADDR 127.0.0.1
SERVER_PORT 80
REMOTE_ADDR 44.199.212.254
DOCUMENT_ROOT /vhosts/i2r.ru/web
SERVER_ADMIN webmaster@i2r.ru
SCRIPT_FILENAME /vhosts/i2r.ru/web/static/247/out_5278.shtml
REMOTE_PORT 58760
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.0
REQUEST_METHOD GET
QUERY_STRING no value
REQUEST_URI /static/247/out_5278.shtml
SCRIPT_NAME /static/247/out_5278.shtml

HTTP Headers Information

HTTP Request Headers
HTTP Request GET /static/247/out_5278.shtml HTTP/1.0
Host www.i2r.ru
X-Real-IP 44.199.212.254
X-Forwarded-For 44.199.212.254
Connection close
accept */*
user-agent claudebot
HTTP Response Headers
X-Powered-By PHP/5.4.45
Expires Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified Thu, 28 Mar 2024 17:02:10 GMT
Cache-Control no-store, no-cache, must-revalidate
Cache-Control post-check=0, pre-check=0
Pragma no-cache
Connection close
Content-Type text/html; charset=windows-1251

apc

APC Supportenabled
Version 3.1.15-dev
APC Debugging Disabled
MMAP Support Enabled
MMAP File Mask /tmp/apc.Q3bLWx
Locking type pthread mutex Locks
Serialization Support php
Revision $Revision$
Build Date Feb 14 2014 13:49:03

DirectiveLocal ValueMaster Value
apc.cache_by_defaultOnOn
apc.canonicalizeOnOn
apc.coredump_unmapOffOff
apc.enable_cliOffOff
apc.enable_opcode_cacheOffOff
apc.enabledOnOn
apc.file_md5OffOff
apc.file_update_protection22
apc.filtersno valueno value
apc.gc_ttl36003600
apc.include_once_overrideOffOff
apc.lazy_classesOffOff
apc.lazy_functionsOffOff
apc.max_file_size1M1M
apc.mmap_file_mask/tmp/apc.Q3bLWx/tmp/apc.Q3bLWx
apc.num_files_hint10001000
apc.preload_pathno valueno value
apc.report_autofilterOffOff
apc.rfc1867OffOff
apc.rfc1867_freq00
apc.rfc1867_nameAPC_UPLOAD_PROGRESSAPC_UPLOAD_PROGRESS
apc.rfc1867_prefixupload_upload_
apc.rfc1867_ttl36003600
apc.serializerdefaultdefault
apc.shm_segments11
apc.shm_size64M64M
apc.shm_strings_buffer00
apc.slam_defenseOnOn
apc.statOnOn
apc.stat_ctimeOffOff
apc.ttl00
apc.use_request_timeOnOn
apc.user_entries_hint40964096
apc.user_ttl00
apc.write_lockOnOn

bz2

BZip2 Support Enabled
Stream Wrapper support compress.bzip2://
Stream Filter support bzip2.decompress, bzip2.compress
BZip2 Version 1.0.5, 10-Dec-2007

calendar

Calendar support enabled

Core

PHP Version 5.4.45

DirectiveLocal ValueMaster Value
allow_url_fopenOnOn
allow_url_includeOffOff
always_populate_raw_post_dataOffOff
arg_separator.input&&
arg_separator.output&&
asp_tagsOffOff
auto_append_fileno valueno value
auto_globals_jitOnOn
auto_prepend_fileno valueno value
browscapno valueno value
default_charsetwindows-1251no value
default_mimetypetext/htmltext/html
disable_classesno valueno value
disable_functionsno valueno value
display_errorsOffOff
display_startup_errorsOffOff
doc_rootno valueno value
docref_extno valueno value
docref_rootno valueno value
enable_dlOffOff
enable_post_data_readingOnOn
error_append_stringno valueno value
error_logno valueno value
error_prepend_stringno valueno value
error_reporting2457524575
exit_on_timeoutOffOff
expose_phpOnOn
extension_dir/usr/lib64/php/modules/usr/lib64/php/modules
file_uploadsOnOn
highlight.comment#FF8000#FF8000
highlight.default#0000BB#0000BB
highlight.html#000000#000000
highlight.keyword#007700#007700
highlight.string#DD0000#DD0000
html_errorsOffOff
ignore_repeated_errorsOffOff
ignore_repeated_sourceOffOff
ignore_user_abortOffOff
implicit_flushOffOff
include_path.:/vhosts/1:/vhosts/i2r.ru/web:/usr/share/pear.:/usr/share/pear:/usr/share/php
log_errorsOnOn
log_errors_max_len10241024
mail.add_x_headerOnOn
mail.force_extra_parametersno valueno value
mail.logno valueno value
max_execution_time3030
max_file_uploads500500
max_input_nesting_level6464
max_input_time6060
max_input_vars10001000
memory_limit256M256M
open_basedir/vhosts/i2r.ru/web/:/var/tmp/i2r/:/vhosts/1:/usr/share/pearno value
output_buffering40964096
output_handlerno valueno value
post_max_size50M50M
precision1414
realpath_cache_size16K16K
realpath_cache_ttl120120
register_argc_argvOffOff
report_memleaksOnOn
report_zend_debugOnOn
request_orderGPGP
sendmail_fromno valueno value
sendmail_path/usr/sbin/sendmail -t -i/usr/sbin/sendmail -t -i
serialize_precision100100
short_open_tagOnOn
SMTPlocalhostlocalhost
smtp_port2525
sql.safe_modeOffOff
track_errorsOffOff
unserialize_callback_funcno valueno value
upload_max_filesize50M50M
upload_tmp_dir/var/tmp/i2rno value
user_dirno valueno value
user_ini.cache_ttl300300
user_ini.filename.user.ini.user.ini
variables_orderGPCSGPCS
xmlrpc_error_number00
xmlrpc_errorsOffOff
zend.detect_unicodeOnOn
zend.enable_gcOnOn
zend.multibyteOffOff
zend.script_encodingno valueno value

ctype

ctype functions enabled

curl

cURL support enabled
cURL Information 7.19.7
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate Yes
IDN Yes
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps, scp, sftp
Host x86_64-redhat-linux-gnu
SSL Version NSS/3.21 Basic ECC
ZLib Version 1.2.3
libSSH Version libssh2/1.4.2

date

date/time support enabled
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone Europe/Moscow

DirectiveLocal ValueMaster Value
date.default_latitude31.766731.7667
date.default_longitude35.233335.2333
date.sunrise_zenith90.58333390.583333
date.sunset_zenith90.58333390.583333
date.timezoneEurope/MoscowEurope/Moscow

dom

DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.7.6
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

ereg

Regex Library Bundled library enabled

exif

EXIF Support enabled
EXIF Version 1.4 $Id: 05041c5f0094cb46d9b516bd624d593b90cc38f9 $
Supported EXIF Version 0220
Supported filetypes JPEG,TIFF

DirectiveLocal ValueMaster Value
exif.decode_jis_intelJISJIS
exif.decode_jis_motorolaJISJIS
exif.decode_unicode_intelUCS-2LEUCS-2LE
exif.decode_unicode_motorolaUCS-2BEUCS-2BE
exif.encode_jisno valueno value
exif.encode_unicodeISO-8859-15ISO-8859-15

fileinfo

fileinfo support enabled
version 1.0.5

filter

Input Validation and Filtering enabled
Revision $Id: ad78b4a085153b8c7f4d6db5dc69df40e969c343 $

DirectiveLocal ValueMaster Value
filter.defaultunsafe_rawunsafe_raw
filter.default_flagsno valueno value

ftp

FTP support enabled

gd

GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.11
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.49
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled

DirectiveLocal ValueMaster Value
gd.jpeg_ignore_warning00

gettext

GetText Support enabled

gmp

gmp support enabled
GMP version 4.3.1

hash

hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b fnv132 fnv164 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5

iconv

iconv support enabled
iconv implementation glibc
iconv library version 2.12

DirectiveLocal ValueMaster Value
iconv.input_encodingISO-8859-1ISO-8859-1
iconv.internal_encodingISO-8859-1ISO-8859-1
iconv.output_encodingISO-8859-1ISO-8859-1

intl

Internationalization supportenabled
version 1.1.0
ICU version 50.1.2
ICU Data version 50.1

DirectiveLocal ValueMaster Value
intl.default_localeno valueno value
intl.error_level00

json

json support enabled
json version 1.2.1

libxml

libXML support active
libXML Compiled Version 2.7.6
libXML Loaded Version 20706
libXML streams enabled

mbstring

Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation disabled
libmbfl version 1.3.2

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) backtrack check On
Multibyte regex (oniguruma) version 4.7.1

DirectiveLocal ValueMaster Value
mbstring.detect_orderno valueno value
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputpasspass
mbstring.http_outputpasspass
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)^(text/|application/xhtml\+xml)
mbstring.internal_encodingno valueno value
mbstring.languageneutralneutral
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value

mcrypt

mcrypt supportenabled
mcrypt_filter supportenabled
Version 2.5.8
Api No 20021217
Supported ciphers cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream

DirectiveLocal ValueMaster Value
mcrypt.algorithms_dirno valueno value
mcrypt.modes_dirno valueno value

mhash

MHASH support Enabled
MHASH API Version Emulated Support

mongo

MongoDB Supportenabled
Version 1.6.16
Streams Support enabled
SSL Support enabled
Supported Authentication Mechanisms
MONGODB-CR enabled
SCRAM-SHA-1 enabled
MONGODB-X509 enabled
GSSAPI (Kerberos) enabled
PLAIN enabled

DirectiveLocal ValueMaster Value
mongo.allow_empty_keys00
mongo.chunk_size261120261120
mongo.cmd$$
mongo.default_hostlocalhostlocalhost
mongo.default_port2701727017
mongo.is_master_interval1515
mongo.long_as_object00
mongo.native_long11
mongo.ping_interval55

mysql

MySQL Supportenabled
Active Persistent Links 0
Active Links 1
Client API version 5.5.57
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_INCLUDE -I/usr/include/mysql
MYSQL_LIBS -L/usr/lib64/mysql -lmysqlclient

DirectiveLocal ValueMaster Value
mysql.allow_local_infileOnOn
mysql.allow_persistentOnOn
mysql.connect_timeout6060
mysql.default_hostno valueno value
mysql.default_passwordno valueno value
mysql.default_portno valueno value
mysql.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock
mysql.default_userno valueno value
mysql.max_linksUnlimitedUnlimited
mysql.max_persistentUnlimitedUnlimited
mysql.trace_modeOffOff

mysqli

MysqlI Supportenabled
Client API library version 5.5.57
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Client API header version 5.5.54
MYSQLI_SOCKET /var/lib/mysql/mysql.sock

DirectiveLocal ValueMaster Value
mysqli.allow_local_infileOnOn
mysqli.allow_persistentOnOn
mysqli.default_hostno valueno value
mysqli.default_port33063306
mysqli.default_pwno valueno value
mysqli.default_socketno valueno value
mysqli.default_userno valueno value
mysqli.max_linksUnlimitedUnlimited
mysqli.max_persistentUnlimitedUnlimited
mysqli.reconnectOffOff

openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL Header Version OpenSSL 1.0.1e-fips 11 Feb 2013

pcre

PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 8.38 2015-11-23

DirectiveLocal ValueMaster Value
pcre.backtrack_limit10000001000000
pcre.recursion_limit100000100000

PDO

PDO supportenabled
PDO drivers mysql, sqlite

pdo_mysql

PDO Driver for MySQLenabled
Client API version 5.5.57

DirectiveLocal ValueMaster Value
pdo_mysql.default_socket/var/lib/mysql/mysql.sock/var/lib/mysql/mysql.sock

pdo_sqlite

PDO Driver for SQLite 3.xenabled
SQLite Library 3.6.20

Phar

Phar: PHP Archive supportenabled
Phar EXT version 2.0.1
Phar API version 1.1.1
SVN revision $Id: ba734629367f9671b25202408d13914fa63d8396 $
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression enabled
Native OpenSSL support enabled

Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.

DirectiveLocal ValueMaster Value
phar.cache_listno valueno value
phar.readonlyOnOn
phar.require_hashOnOn

Reflection

Reflectionenabled
Version $Id: f6367cdb4e3f392af4a6d441a6641de87c2e50c4 $

session

Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx

DirectiveLocal ValueMaster Value
session.auto_startOffOff
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_httponlyOffOff
session.cookie_lifetime00
session.cookie_path//
session.cookie_secureOffOff
session.entropy_fileno valueno value
session.entropy_length00
session.gc_divisor10001000
session.gc_maxlifetime14401440
session.gc_probability11
session.hash_bits_per_character55
session.hash_function00
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_path/var/tmp/i2r/var/lib/php/session
session.serialize_handlerphpphp
session.upload_progress.cleanupOnOn
session.upload_progress.enabledOnOn
session.upload_progress.freq1%1%
session.upload_progress.min_freq11
session.upload_progress.namePHP_SESSION_UPLOAD_PROGRESSPHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefixupload_progress_upload_progress_
session.use_cookiesOnOn
session.use_only_cookiesOnOn
session.use_trans_sid00

shmop

shmop support enabled

SimpleXML

Simplexml supportenabled
Revision $Id: 16070fc92ad6f69cebb2d52ad3f02794f833ce39 $
Schema support enabled

soap

Soap Client enabled
Soap Server enabled

DirectiveLocal ValueMaster Value
soap.wsdl_cache11
soap.wsdl_cache_dir/tmp/tmp
soap.wsdl_cache_enabled11
soap.wsdl_cache_limit55
soap.wsdl_cache_ttl8640086400

sockets

Sockets Support enabled

SPL

SPL supportenabled
Interfaces Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException

sqlite3

SQLite3 supportenabled
SQLite3 module version 0.7
SQLite Library 3.6.20

DirectiveLocal ValueMaster Value
sqlite3.extension_dirno valueno value

standard

Dynamic Library Support enabled
Path to sendmail /usr/sbin/sendmail -t -i

DirectiveLocal ValueMaster Value
assert.active11
assert.bail00
assert.callbackno valueno value
assert.quiet_eval00
assert.warning11
auto_detect_line_endings00
default_socket_timeout6060
fromno valueno value
url_rewriter.tagsa=href,area=href,frame=src,input=src,form=fakeentrya=href,area=href,frame=src,input=src,form=fakeentry
user_agentno valueno value

tokenizer

Tokenizer Support enabled

wddx

WDDX Supportenabled
WDDX Session Serializer enabled

xml

XML Support active
XML Namespace Support active
libxml2 Version 2.7.6

xmlreader

XMLReader enabled

xmlwriter

XMLWriter enabled

xsl

XSL enabled
libxslt Version 1.1.26
libxslt compiled against libxml Version 2.7.6
EXSLT enabled
libexslt Version 1.1.26

zip

Zip enabled
Extension Version $Id: 6c872ebfb022206b0cc2a183c7a388c7b6ad8685 $
Zip version 1.11.0
Libzip version 0.10.1

zlib

ZLib Supportenabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3

DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value

Additional Modules

Module Name

Environment

VariableValue
TERM xterm-256color
PATH /sbin:/usr/sbin:/bin:/usr/bin
PWD /
LANG C
SHLVL 2
_ /usr/sbin/httpd.itk

PHP Variables

VariableValue
_SERVER["HTTP_HOST"]www.i2r.ru
_SERVER["HTTP_X_REAL_IP"]44.199.212.254
_SERVER["HTTP_X_FORWARDED_FOR"]44.199.212.254
_SERVER["HTTP_CONNECTION"]close
_SERVER["HTTP_ACCEPT"]*/*
_SERVER["HTTP_USER_AGENT"]claudebot
_SERVER["PATH"]/sbin:/usr/sbin:/bin:/usr/bin
_SERVER["SERVER_SIGNATURE"]no value
_SERVER["SERVER_SOFTWARE"]Apache/2.2.22 (@RELEASE@)
_SERVER["SERVER_NAME"]www.i2r.ru
_SERVER["SERVER_ADDR"]127.0.0.1
_SERVER["SERVER_PORT"]80
_SERVER["REMOTE_ADDR"]44.199.212.254
_SERVER["DOCUMENT_ROOT"]/vhosts/i2r.ru/web
_SERVER["SERVER_ADMIN"]webmaster@i2r.ru
_SERVER["SCRIPT_FILENAME"]/vhosts/i2r.ru/web/static/247/out_5278.shtml
_SERVER["REMOTE_PORT"]58760
_SERVER["GATEWAY_INTERFACE"]CGI/1.1
_SERVER["SERVER_PROTOCOL"]HTTP/1.0
_SERVER["REQUEST_METHOD"]GET
_SERVER["QUERY_STRING"]no value
_SERVER["REQUEST_URI"]/static/247/out_5278.shtml
_SERVER["SCRIPT_NAME"]/static/247/out_5278.shtml
_SERVER["PHP_SELF"]/static/247/out_5278.shtml
_SERVER["REQUEST_TIME_FLOAT"]1711645330.893
_SERVER["REQUEST_TIME"]1711645330

PHP License

This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.


Напоминаем, что php-скрипты - не то же самое, что cgi-скрипты. В частности, если cgi-скрипты обычно располагают в /cgi-bin/, то php-скрипт должен лежать в директории с документами. Иными словами, файл в этом примере должен называеться примерно так: f:/www/test.php3

6. Установка Perl

"Язык может считаться законченным только тогда, когда
в его синтаксисе используются все клавиши на клавиатуре"
Отец-основатель Perl

Это совсем просто, за исключением, может быть, выбора директории для Perl. А именно, Вы ДОЛЖНЫ разместить Perl в той же директории, в которой он находится на Вашем настоящем Web-сервере. Заметьте, что это очень важно, так как Perl требует, чтобы в каждом скрипте первой строкой стоял путь к Perl-интерпретатору; например, эта строка может выглядеть так:

#!/usr/local/bin/perl
Эту же строку можно было бы написать и так:
#!/usr/local/bin/perl.exe
или даже так:
#!f:\usr\local\bin\perl.exe
Это заставляет искать Perl-интерпретатор в директории f:/usr/local/bin/ (если диск f: не указан, это означает, что он совпадает с диском, на котором расположен Apache). Ясно, что если Вы установите Perl не в такую же директорию, как на настоящем Web-сервере, Вам придется каждый раз менять эту самую первую строку во всех скриптах при закачке их на сервер. Итак, далее мы будем считать, что эта директория такова, как на большинстве Apache-серверов:
f:/usr/local/bin
ВНИМАНИЕ: очень распространенной ошибкой является установка Perl не в ту директорию или не на тот диск. Еще раз обращаем внимание на то, где должен быть расположен транслятор. Если Вы все же по какой-то необъяснимой причине не придерживаетесь нашего совета, то проверьте первую строку в Вашем скрипте. Она должна указывать не на директорию с Perl, а на исполнимый файл perl.exe. Напоминаем, что
#!/usr/local/bin/perl
заставляет искать Perl-интерпретатор perl.exe в директории f:/usr/local/bin/, а не f:/usr/local/bin/perl

Если Вы все же установите пути неправильно, Apache выдаст непонятное сообщение об ошибке, а в errors.log появится сообщение: couldn't spawn child process. В этом случае проверьте все еще раз. Если кажется, что все в порядке, то, возможно, имеет место описанная выше ошибка с программой subst.

Вот шаги, приводящие к цели:

  1. Первым делом создайте директорию
    f:/usr/local/bin
    Затем скачайте дистрибутив Perl - файл с именем perl_setup.exe (436.137 байт), желательно в только что созданную директорию. Это саморазворачивающийся архив, Вам нужно будет просто его запустить, чтобы разархивировать в текущую директорию. (Заметим, что версия Perl в этом архиве довольно стара и пригодна разве что для демонстрационных целей. В частности, в ней нет ни одного стандартного модуля. Поэтому, если Вы хотите использовать Perl в сколько-нибудь серьезных целях, Вам придется установить более свежую версию. Как это сделать описано в списке часто задаваемых вопросов. Все же рекомендуем Вам установить сначала предлагаемый дистрибутив, благо он очень маленький, а уже потом - новую версию поверх.)
  2. Теперь настроим сервер. Найдите в файле конфигурации Apache conf/httpd.conf строчку
    AddHandler cgi-script .bat .exe
    Замените ее на
    AddHandler cgi-script .bat .exe .pl .cgi
    Как это ни странно, но эту директиву AddHandler иногда указывать не обязательно. Однако лучше перестраховаться...

Вот, собственно, и все. Можете пользоваться Perl-транслятором. Для проверки его работоспособности используйте такой скрипт (помещенный, разумеется, в директорию cgi-bin или аналогичную):

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "It works!
\n"; system("dir");

7. Установка MySQL

Что ж, очень полезно... Даже чересчур.
Дмитрий Котеров

Сначала определимся: зачем же вообще нужны базы данных Web-программисту? Неужели не проще писать все самому? Ведь обычно объем данных не очень велик (если Вы только не пишите поисковую систему). Наш личный опыт таков: оказывается, стоит затратить какое-то время на изучение MySQL - это удивительно мощный инструмент, который сэкономит в будущем немало часов, потраченных на отладку "взбесившегося" скрипта.

Итак, Вы решили установить у себя на локальном Apache поддержку MySQL. Как ни странно, это даже во многом проще, чем заставить работать Perl. Прежде чем привести точные инструкции, хотелось бы уточнить два момента:

  1. Эта статья не претендует ни в коей мере на то, чтобы быть учебником по MySQL. Предполагается, что Вы уже знаете, как работать с этой базой данных. Максимум, что здесь описывается - это то, как заставить MySQL работать под Window 95/98.
  2. В дальнейшем будем считать, что Apache у Вас установлен именно там, где это рекомендовалось выше.

Что ж, приступим.

  1. Для начала запаситесь терпением и скачайте дистрибутив MySQL - mysql.zip. Как можно заметить, он довольно большой. Затем разверните его в любую удобную Вам директорию.
  2. Запустите setup.exe. Он спросит, действительно ли Вы хотите установить MySQL. После того, как Вы ответите утвердительно, файлы начнут копироваться в директорию c:/mysql, т.е. он даже не спросит Вас, куда устанавливать MySQL. Ничего страшного.
  3. Теперь, если Вы любите порядок, можете скопировать директорию c:/mysql в какое-нибудь более приличное место - например, f:/usr/local/. Только после этого строго следуйте указаниям в статье.
  4. Создайте в директории f:/usr/ такие два .bat-файла:
    • server.bat:
      @echo off
      f:\usr\local\mysql\bin\mysqld.exe --basedir f:/usr/local/mysql
      f:\usr\local\apache\Apache.exe
      
    • shutdown.bat:
      @echo off
      f:\usr\local\apache\Apache.exe -d f:\USR\LOCAL\APACHE -k shutdown
      "f:\usr\local\mysql\bin\mysqladmin.exe" -u root shutdown
      
    Файл server.bat Вы будете запускать, когда захотите "включить" Apache и одновременно MySQL (ясно, что бессмысленно запускать MySQL без сервера), а shutdown.bat - для завершения работы Apache и MySQL. Очень важно завершать работу MySQL правильно - иначе могут быть испорчены таблицы баз данных. Собственно, для этого мы и сделали эти два .bat-файла. (Кстати говоря, в отличие от Apache, у MySQL нет своего окна - ее процесс можно увидеть, лишь нажав Ctrl+Alt+Del. Это еще одна причина существования shutdown.bat).

    Теперь для удобства можно создать ярлыки на Рабочем столе для этих файлов. Рекомендуем также назначить этим ярлыкам "горячие" клавиши: например, для запуска сервера - Ctrl+Alt+A, а для завершения работы - Ctrl+Alt+S. Кроме того, лучше поставить у этих ярлыков параметры "Запускать свернутыми в значок". Все это сильно упростит жизнь в дальнейшем.

  5. Что ж, считайте, MySQL уже установлена. Осталось только создать базу данных. Для этого следует запустить f:/usr/local/mysql/bin/mysqladmin с ключем create имя_базы. Например, если мы хотим создать базу testbase, нужно ввести в окне Сеанса MS-DOS:
    f:
    cd f:\usr\local\mysql\bin
    mysqladmin create testbase
    
  6. Если Вы планируете использовать MySQL в скриптах на PHP, проверьте, раскомментирована ли в файле php3.ini (расположенном в директории с PHP и в c:\windows) следующая строка:
    extension=php3_mysql.dll
    Если в ее начале стоит точка с запятой, уберите ее - иначе PHP не сможет опознавать функции для работы с MySQL
Поздравляем - теперь можно работать! Если хотите, можете проверить работоспособность MySQL следующим скриптом на PHP3 (скажем, расположенном в f:/www/test.php3):
Не могу соединиться с базой testbase!