РНР 5 в подлиннике

Страница 64 из 554


Гпава 5. Установка РНР и MySQL

131

в которую включены все пользовательские комментарии. Скачать ее можно по адресу: http://webIabor.hU/php-doc-chra/#download.

Состав дистрибутива РНР

В дистрибутиве РНР содержатся три ЕХЕ-файла, предназначенные для разных целей. CGI-версия РНР

Файл php-cgi.exe — программа, которую мы будем использовать в дальнейшем. Она представляет собой CGl-версию РНР. Далее мы настроим Apache так, чтобы при каждом запросе файла с расширением РНР вызывалась именно эта программа.

CGI-версия РНР характерна тем, что всегда дает корректный CGI-вывод. Попробуйте запустить следующую команду в консоли командной строки:

echo Wake up, Neo. I php-cgi.exe

Вы немедленно получите что-то вроде:

Content-type: text/html X-Powered-By: PHP/5.0.1 <пустая строка > Wake up, Neo.

Что же произошло? Вы запустили программу php-cgi.exe, передав ей на вход некоторый поток символов, напечатанный командой echo (значок | в Windows и Unix означает "туннель"' из одной программы в другую). Интерпретатор воспринял этот поток, как программу на РНР, и запустил ее на выполнение. Результатом работы программы является та же строка, что была сгенерирована командой echo (если в программе нет вставок PHP-кода, оформленных в виде <?...?>, интерпретатор воспринимает ее как обычный текст и выводит — мы еще поговорим об этой полезной особенности языка). Однако, т. к. мы используем CGI-версию РНР, интерпретатор добавил в начало стандартные заголовки ответа CGI.

Консольная версия РНР

Программа php.exe — так называемая консольная версия интерпретатора РНР. Она предназначена для использования вне CGI-окружения — например, для написания скриптов, которые будут запускаться не под управлением Apache, а отдельно. Давайте введем еще одну команду:

echo What is real? | php.exe результатом будет всего лишь текст:

What is real?

Любители Perl сразу же заметят, что консольная версия РНР очень напоминает язык Perl: последний также не выводит ничего лишнего.

То есть перенаправление вывода в другую программу или файл. — Ред.

132

Часть II. Выбор и настройка инструментария

"Бесконсольная" версия

В РНР версии 5 наконец-то появилась версия исполняемого файла, не создающая при запуске консольного окна. Она называется php-win.exe и работает точно так же, как php.exe, однако делает это "бесшумно". Давайте попробуем запустить следующую команду (не забудьте точку с запятой!):

php-win.exe "sleep (100);"

Вы увидите, что управление сразу же передалось обратно в командную строку, как будто бы ничего не произошло. Нажмите комбинацию клавиш <Ctrl>+<Alt>+ +<Del>, чтобы посмотреть список выполняющихся в данный момент процессов. Вы увидите, что программа php-win.exe все еще находится в памяти и работает.

Что произошло? Строка sleep (100) в действительности является программой на РНР, которая заставляет интерпретатор "заснуть" на 100 секунд, оставаясь при этом в памяти. Тем не менее запуск php-win.exe всегда происходит в фоновом режиме, и никакое новое окно не открывается. Поэтому РНР остается работать, входит в функцию sleep о и 100 секунд в ней "крутится".

"Бесконсольную" версию РНР удобно использовать для написания различных системных утилит, не требующих вмешательства пользователя при своей работе. Например, можно написать программу, периодически очищающую каталог временных файлов или архивирующую данные. В этом отношении РНР стал ничем не хуже Perl, применяемого для подобных целей уже почти десятилетие.

Динамическая библиотека Apache

В дистрибутиве содержится файл php5apache.dll, представляющий собой загружаемый модуль для сервера Apache версий 1.3.x. Чуть позже мы рассмотрим, как с ним работать.

Файл конфигурации php.ini-dist

Данный файл следует скопировать в php.ini и расположить в том же каталоге, что и ЕХЕ-файлы РНР (и модуль Apache). В этом случае РНР при запуске будет считывать из него свою конфигурацию. Далее мы подробно рассмотрим процесс конфигурирования РНР и некоторые директивы, которые вам необходимо настроить для начала работы.

Библиотеки расширения

РНР поддерживает множество дополнительных библиотек, обеспечивающих работу с различными базами данных, доступ по протоколам FTP и HTTP к внешним серверам, работу с XSLT, архиваторами gzip и bz2 и т. д. Чтобы не перегружать ядро интерпретатора, все такие библиотеки оформлены в виде отдельных dll-модулей, подгружаемых во время работы при указании в php.ini соответствующей директивы extension. Библиотеки располагаются в подкаталоге ext дистрибутива.

til ITI'IITII—)

Обратите внимание, что, начиная с версии РНР 5.0.0 beta 4, структура дистрибутива РНР сильно изменилась. Теперь библиотеки расширения располагаются в подкаталоге ext, а не extensons, как было ранее. Кроме того, полностью упразднена папка dlls, содержащая




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006