...
...

Установка PHP и Perl

Установка PHP и Perl

На этот раз мы займемся тем, ради чего, собственно, и затевали установку web-сервера Apache на домашней машине — наделением его способностью понимать популярные языки программирования, широко применяемые при разработке динамических сайтов.

Язык PHP ведет свою историю с 1995 года, когда Расмус Лердорф (Rasmus Lerdorf) создал для личного использования достаточно простой инструмент, который он назвал "Personal Home Page Tools/Forms Interpreter". Первой задачей, решаемой PHP/FI, стала работа с оставляемыми посетителями странички автора резюме. Предоставив исходные коды в свободное пользование всем желающим, Расмус Лердорф сделал первый шаг к дальнейшему успеху проекта. PHP/FI стал своеобразной предысторией PHP, проектом скорее авторским, чем предназначенным для действительно широкого использования. Последней его версией стал PHP/FI 2.0, представленный осенью 1997 года.
В 1998 году начался новый этап истории языка. Энди Гатмэнс (Andi Gutmans) и Зив Сураски (Zeev Suraski) практически полностью переписали код, самым существенным образом расширив его функциональность. С выходом PHP 3.0 — по сути, нового языка — меняется даже расшифровка самой аббревиатуры PHP. С того времени это обозначает "Personal Hypertext Preprocessor", или же просто "Hypertext Preprocessor". Официальный релиз PHP 3.0 состоялся в июне 1998, так что сейчас у него пятилетний юбилей.

Почти сразу после выхода PHP 3.0 его авторы начали разработку нового ядра пакета, которое должно было обеспечить ему еще большие возможности и значительно увеличить производительность решений, построенных с использованием PHP. Новый движок получил имя собственное — Zend Engine, что должно было подчеркнуть масштаб произведенных изменений. Построенный на нем PHP 4.0 был представлен в мае 2000 года. На сегодняшний день различные представители четвертой версии являются предпочтительным выбором для использования в составе проектов, ориентированных на сетевое использование. По статистике, PHP 4 используется приблизительно на двадцати процентах всех Internet-узлов, что означает миллионы сайтов в абсолютном выражении.
Дистрибутив PHP доступен на его официальном ресурсе, который располагается по адресу http://www.php.net . В разделе Downloads ищем подраздел Windows Binaries?, где выбираем пакет для дальнейшей загрузки. Мы имеем возможность выбора из следующих вариантов: installer и zip package. Таким образом, нам предлагают несколько способов установки PHP для работы под Windows. Первый подразумевает использование программы-инсталлятора, второй, соответственно, означает самостоятельную установку. Отличаются они и полнотой функциональных возможностей.
Загрузив инсталлятор, вы сможете установить с его помощью CGI-версию PHP, а также автоматически настроить такие серверы, как Microsoft IIS, Microsoft PWS и Xitami, для работы с данным пакетом. Использование такого способа совместно с Apache, на мой взгляд, нецелесообразно. Автоматическая настройка Apache программой не поддерживается, так что конфигурировать сервер все равно придется вручную. Кроме того, у такого решения есть некоторые другие ограничения.

Сам процесс установки, если вы все-таки сделаете выбор в пользу этого способа, весьма прост и не требует каких-либо развернутых комментариев. При стандартной установке предлагаются настройки по умолчанию, подходящие для большинства задач. Можно избрать расширенный режим и указать некоторые из них самостоятельно. По ходу инсталляции вам будет предложено сделать резервные копии файлов, которые будут изменены или замещены, что позволит потом при деинсталляции PHP без проблем вернуть систему в первоначальное состояние.
Однако вернемся к более предпочтительному способу — самостоятельной ручной установке PHP с помощью zip package на примере PHP 4.3.1.
Разработчики PHP честно предупреждают, что поддержка Apache 2.0.xx пока является экспериментальной. С другой стороны, работать такая связка будет, так что, если вы избрали именно вторую версию Apache, то можете спокойно устанавливать PHP. Правда, в этом случае логично будет избрать самую свежую из его доступных на сегодняшний день версий.
Первым делом необходимо создать директорию для PHP. Рекомендуется c:\php\, но можно сделать другой выбор — в данном случае это не критично, главное, потом правильно выставить соответствующие настройки. После этого в новый каталог распаковываются файлы полученного архива. Далее надо найти файл php.ini-dist, который находится в данной папке, и скопировать его в системный каталог Windows, а затем переименовать его в php.ini. С ним мы еще встретимся несколько позже. Теперь же необходимо поработать еще с одним файлом.

Для дальнейшей работы нам потребуется правильно расположить библиотеку php4ts.dll, которая используется в совместной работе Apache и PHP. Сам файл можно найти в каталоге, где находятся все распакованные файлы php. Обратимся к оригинальной документации по установке PHP. Поиск данного компонента в общем случае системой производится в следующем порядке:
1. Каталог, в котором находится файл apache.exe.
2. Каталог, в котором расположена библиотека php4apache.dll (или php4apache2.dll, их различия будут рассмотрены ниже).
3. В системном каталоге windows\system или windows\system32. Это находится в зависимости от версии ОС, последний вариант касается Windows 2000 и Windows XP.

Рекомендуется воспользоваться третьим вариантом и скопировать php4ts.dll в системный каталог Windows.
Следующий шаг весьма напоминает методику конфигурирования Apache, рассмотренную нами ранее: необходимо открыть текстовый настроечный файл — в нашем случае это php.ini — и произвести там необходимые изменения.
Синтаксис файла действительно не является сложным. Его можно рассматривать как перечень директив, которым сопоставлены некоторые значения. Между ними ставится знак равенства. В данном случае имеет значение регистр символов, так что будьте внимательны. В качестве значения можно использовать строки, числа или некоторые константы. Поддерживается использование выражений. Файл состоит из нескольких, если быть более точным, то из восьми, секций, определяющих различные аспекты поведения PHP. В контексте наших задач их подробное рассмотрение не является насущно необходимым, поэтому ограничимся некоторыми общими комментариями и изменениями, важными для определенных нами целей.
Первая необходимая нам секция имеет название Data Handling. Там есть директива, задающая кодировку выводимых символов. По умолчанию она закомментирована, и там проставлено значение "iso-8859-1". Можно задать ей значение, наиболее отвечающее вашим потребностям, например, "windows-1251" или другое.

Следующая секция, в которой придется внимательно поработать, называется Paths and Directories. Начнем с определения правильных путей, которыми впоследствии смогут пользоваться в своей деятельности другие программы. Для этого находим директиву include_path. Если вы установили PHP в директорию c:\php\, то ничего исправлять не надо, ограничьтесь раскомментированием строки. Если был выбран другой вариант — а это могло случиться, если вы решили поступить по аналогии с Apache и сымитировали структуру каталогов, повторяющую таковую для UNIX, — то необходимо прописать собственный правильный вариант. Это замечание касается и других настроек, которые будут рассмотрены далее. Итак,
include_path = ".;c:\ php\includes"

Еще один путь определяет местоположение подгружаемых модулей. Для этого служит директива extension_dir. Укажите правильный путь к директории extensions, которая находится в каталоге php:
extension_dir = "c:\php\extensions"

После этого обращаемся к следующей секции под названием File Uploads, где определим директорию для временных файлов. Если она не будет явно определена, программа будет использовать для этих целей общесистемный каталог. Так что можно убрать комментарий с этой строки и задать директиве следующее значение — вреда не будет:
upload_tmp_dir = c:\php\uploadtemp

Для того чтобы можно было работать с функциями PHP, относящимися к такому полезному понятию, как сессии, ищем директиву session.save_path и присваиваем ей требуемое значение. Например, в случае установки PHP по адресу c:\php\ строка будет иметь вид:
session.save_path = c:\php\sessiondata

Не забывайте, что все прописанные нами пути не должны вести в никуда — им всем обязательно должны соответствовать реально существующие каталоги.
Следующую остановку сделаем в окрестностях секции Dynamic Extensions. Здесь находится список доступных расширений, которые можно автоматически загрузить при старте PHP. Прежде чем работать с этим списком, рекомендуется проверить работоспособность "чистого" PHP, а уж потом раскомментировать необходимые строки. Обратите внимание, что путь к каждому конкретному расширению здесь не прописывается, так как мы его уже задали директивой extension_dir. Так, например, для включения возможности работы с изображениями уберите комментарий из строки
extension=php_gd.dll

После этого настройку собственно PHP можно считать завершенной. Теперь переходим к настройке сервера Apache. Данный этап несколько проще и сводится к простому добавлению к файлу httpd.conf нескольких новых строк. Вначале мы должны указать библиотеку, которая должна быть загружена при старте. Если вы используете Apache 1.3.xx, то вам нужен файл с именем php4apache.dll. В случае использования Apache 2.0.xx необходимо использовать библиотеку php4apache2.dll. Обе библиотеки находятся в директории sapi каталога php.
LoadModule php4_module путь_к_файлу_php4apache. dll

Наконец последнее действие: добавляем директивы AddType, которые призваны определить правильные ассоциации с новыми типами файлов:
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps

Новые версии Apache не требуют наличия следующей строки, но для пущей уверенности можно дописать:
AddModule mod_php4.c

На этом процесс добавления поддержки PHP к нашему серверу Apache можно считать завершенным. После перезапуска сервера в строке, показывающей состояние и версию Apache, должна появиться соответствующая запись, содержащая номер версии PHP. Если выдаются сообщения об ошибках, изучите их и примите соответствующие меры. Внимательно проверьте наличие и расположение всех требуемых файлов и каталогов, а также правильность прописанных путей — ошибка, скорее всего, была допущена именно там. В любом случае, руководствуясь элементарной логикой и здравым смыслом, можно исправить подавляющее количество возникших проблем, но будем надеяться, что их не будет.
Теперь самое время протестировать реализацию новых возможностей нашего "карманного" сервера. Не будем изобретать велосипед и воспользуемся простым способом. Создадим файл с именем, например, testphp.php, в который внесем примерно следующее содержание:
<?
echo "Проверка работы PHP и вывод информации о нем</p> \n";
phpinfo();
?>

Использование phpinfo() позволяет получить симпатичную страничку, содержащую подробные сведения как о самом PHP, так и о системе в целом, а также о вашем сервере Apache (рис.2).

Теперь займемся вторым героем этой статьи — Perl.
Официальным, если можно так выразиться, днем рождения языка программирования Perl принято считать 18 октября 1987 года. В этот день состоялось представление Perl 1.0 заинтересованной публике. Поддержка языка Perl существует в Apache с 1996 года, когда был создан модуль mod_perl. Его автору Дугу Мак-Ичерну удалось реализовать полноценный интерпретатор Perl, предназначенный для совместной работы с Apache.
Вначале, само собой, следует загрузить дистрибутив Perl. Здесь также есть несколько вариантов. Лучше всего воспользоваться пакетами, предлагаемыми официальным сайтом Active Perl по адресу http://www.activestate.com. Так, например, для того, чтобы получить Perl версии 5.6.1, надо обратить внимание на архив под именем ActivePerl-5.6.1.635-MSWin32-x86.zip. Он имеет размер порядка восьми с половиной мегабайт и позволяет получить все возможности Perl соответствующей версии. Можно поискать более компактные варианты размером вплоть до нескольких сотен килобайт, но в таком случае будьте готовы к потерям в функциональности.

Единственная тонкость в установке Perl заключается в том, что в первой строке всех скриптов, написанных на данном языке, обязательно указывается путь к его интерпретатору. Поэтому, чтобы потом не переписывать эту строку во всех своих скриптах перед перемещением их на реальный сервер, имеет смысл сразу создать структуру каталогов типа "\usr\local\bin" или другую, повторяющую такую же у вашего хостера.
Если вы устанавливаете ActivePerl-5.6.1, то после распаковки содержимого архива следует запустить Installer.bat, указать путь для установки и ответить на другие задаваемые по ходу дела вопросы (рис.3). Дождавшись окончания процесса, переходим к настройке сервера.
В уже хорошо нам знакомом конфигурационном файле httpd.conf находим директиву AddHandler cgi-script, снимаем с нее комментарий, если он там имеется, и добавляем новые типы файлов:

AddHandler cgi-script .cgi .pl

Для хранения CGI-скриптов, как правило, если не менялась директива ScriptAllias, используется каталог cgi-bin сервера Apache. Чтобы все работало правильно, убедитесь, что в файле httpd.conf есть следующий фрагмент, при необходимости внесите нужные изменения:
<Directory "путь_к_каталогу_cgi-bin">
AllowOverride None
Options ExecCGI
</Directory>

Скобки <Directory> позволяют определять особые настройки для любого каталога, используемого Apache. Опция ExecCGI активизирует выполнение CGI-сценариев в указанном каталоге. Теперь добавим еще несколько типов файлов:
AddHandler server-parsed .shtml .shtm
Для проверки работы Perl создадим в каталоге cgi-bin файл, который назовем, например, testperl.pl, после чего откроем его в редакторе и наберем простейший скрипт, выводящий единственную текстовую строку:
#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
print "Проверка Perl";

Теперь откроем адрес http://localhost/cgi-bin/testperl.pl . Если все прошло по плану, то браузер должен показать страницу, подобную изображенной на рис.4.
Теперь наш домашний сервер Apache получил возможность работать с языками web-программирования, которые являются сегодня одними из самых распространенных и популярных.

С этого момента вы можете создавать собственные скрипты с использованием PHP и Perl, сразу же проверяя их работоспособность. Для полного комплекта не хватает только СУБД, с которой могли бы взаимодействовать ваши скрипты при решении некоторых задач. Этот завершающий этап будет рассмотрен в следующей статье.

Алексей Кутовенко,
alteridem@tut.by



© Компьютерная газета

полезные ссылки
Аренда ноутбуков