PHP : Hypertext Preprocessor
Именно "Hypertext Preprocessor". Так PHP расшифровывается начиная с 1998, когда появился PHP 3. В самом начале, в 1995 году, была библиотека Perl-скриптов, написаная Расмусом Лердорфом. Затем библиотека была переписана на C, расширена и получила название PHP/FI - Personal Home Page/Form Interpreter. Потом, в ноябре 1997 была выпущена вторая версия, но продержалась она недолго, до выхода PHP 3. В 1997 году Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) полностью переписали код движка. Объединившись с Расмусом Лердорфом они объявили PHP 3 официальным преемником PHP/FI. Тогда же они отказались от слова Personal. С тех пор PHP расшифровывается как "PHP - Hypertext Preprocessor".
PHP - встраиваемый в HTML скриптовый язык, предназначеный, в основном, для создания скриптов, выполняющихся на стороне сервера. С его помощью можно легко обработать данные, полученые из HTML форм. Благодаря поддержке внешних модулей, программист может использовать множество функций для выполнения различных задач (в Руководстве по PHP от 06-09-2003 содержится описание 115 различных наборов функций, в том числе функций для работы с базами данных, графикой, электронной почтой, регулярными выражениями). От CGI-скриптов, написаных на Perl, PHP скрипты отличает протота написания и возможность выводить HTML-код без использования специальных функций. Например скрипт:
<HTML>
<HEAD>
<TITLE>Hello World</title>
</head>
<BODY>
<P><?php print("Hello, World!") ?></p>
</body>
</html>
создаст страничку с надписью Hello, World!. При этом мы не использовали ни одной специальной команды для вывода заголовка. Конечно, сделать такую страницу можно и без PHP, но между <?php и ?> вполне могут стоять други строчки кода или даже вызовы функций, написаных пользователем. А еще можно написать так:
<?php
if ($expression): ?>
<P>Выражение истинно.</p>
<?php else: ?>
<P>Выражение ложно.</p>
<?php endif; ?>
в PHP возможно 2 варианта написания условного (и не только) оператора. Мне больше нравится такой, но об этом в другой раз.
Основным отличием PHP-скрипта от обычных "не сетевых" программ является то, что PHP скрипт не работает постоянно. Клиент с помощью браузера отправляет запрос на сервер, который при необходимости вызывает парсер PHP и передает ему необходимые данные. PHP выполняет скрипт и возвращает созданную страницу. Затем страница пересылается клиенту. Все. Все полученые данные "забываются". При получении следующего запроса все повторяется. Существуют механизмы сохранения данных в промежутке между запросами и опознания клиентов, например сессии, но в общем случае узнать, что, например, ввел пользователь в поля формы в прошлый раз невозможно. Об этом стоит помнить.
Приборы и материалы
Надеюсь, я не слишком затянул вступление? Итак, что нам нужно для работы с PHP. Веб-сервер, сам интерпретатор PHP, браузер и какой-нибудь редактор, умеющий сохранять чистый текст. Итого 4 штуки. Если добавить голову и две руки - получится семь, не так уж и много.
Веб-серверов, с которыми способен работать PHP масса. Я предполагаю, что работать мы будем под Windows, поскольку в *nix'ах сам ничего не понимаю. Под Windows 2000 и Windows XP Pro можно установить Internet Information Services (IIS), поскольку он поставляется вместе с системой. Если его не оказалось можно установить Apache. Кто из них лучше, судить не берусь, но для маленького сайта любого хватит за глаза. Как установить для них PHP будет описано ниже.
Интерпретатор PHP можно скачать с www.php.net. Заходите, выбирайте себе зеркало поближе и скачивайте. "Весит" он немного, мегабайт 7-8. Заодно прихватите "Руководство по PHP" без которого будет совсем не интересно. Первые главы переведены на русский, остальные не всегда, впрочем, не привыкать. Если вы планируете серьезно заниматься программированием на PHP, то стоит заходить сюда почаще, чтобы быть в курсе последних изменений. А если вам нужно лишь сдать сайт до начала сессии... :)
Браузер и текстовой редактор - по вкусу. Для редактора желательна подсветка синтаксиса (точно есть в EditPlus и Macromedia DreamWeaver), браузеров желательно несколько, поскольку одинаковый HTML-код они иногда выводят по-разному. В любом случае, без Internet Explorer и Notepad Microsoft вас не оставит.
Собираем все вместе
Написаное ниже - вольное изложение файла install.txt, так что если возникнут сложности, первым делом прочитайте его. Там же содержится информация по установке под другие веб-сервера. Все, естественно, на английском.
Для начала, распакуйте дистрибутив в какой-нибудь каталог (напр. C:\PHP\). Скопируйте php.ini-dist в каталог %WINDOWS% или %SYSTEMROOT% (обычно C:\WINDOWS или C:\WINNT) и переименуйте его в php.ini. Теперь отредактируйте его:
Измените параметр extension_dir на путь к каталогу в который вы распаковали PHP или в который вы поместили файлы 'php_*.dll' (напр. C:\PHP). php_*.dll - это файлы расширения, которые позволяют вам использовать дополнительные функции при написании скриптов. Для PHP 5 необходимо указать полный путь (напр. C:\PHP\ext).
Измените параметр doc_root на путь к каталогу веб-файлов вашего сервера. Для IIS это "c:\inetpub\wwwroot\".
Выберите нужные вам расширения и раскомментируйте соответствующие строки extension=php_*.dll, удалив ";" в начале строки. (Нам понадобится php_gd2.dll - библиотека функций для работы с графикой. Остальные - на ваше усмотрение). При первой установке рекомендуется проверить работоспособность PHP до подключения расширений, впрочем, у меня проблем не было.
Если вы используете IIS, то можете установить browscap.ini в 'c:\WINDIR\system32\inetsrv\browscap.ini', где WINDIR - каталог в который у вас установлена Windows. Это пригодится для получения информации о браузере клиента с помощью функции get_browser().
Теперь о настройках для конкретного веб-сервера
IIS
Ниже описаны настройки для IIS 4 и Windows NT/2000/XP в качестве CGI-binary (т.е. php.exe). Другие варианты я не пробовал, поэтому и не описываю, уж извините. Посмотреть можно все в том же install.txt. Русские названия приведены как они есть в XP Pro и IIS 5.1, если в других версиях есть различия, ориентируйтесь по английским названиям. Метод "научного тыка" тоже может помочь :)
В Windows XP IIS устанавливается из "Панель управления -> Установка и удаление программ -> Установка компонентов Windows". Просто установите галочку напротив "Internet Information Services (IIS)".
Войдите в "Панель управления -> Администрирование -> Internet Information Services" ("Control Panel -> Administrative Tools". Вместо "Internet Information Services" может стоять "Internet Services Manager"). Выберите "Веб-узел по умолчанию" ("Default Web Server") и вызовите "Свойства". На вкладке "Домашний Каталог" ("Home Directory", "Virtual Directory" или "Directory") нажмите кнопку "Настройка..." ("Configuration"). Выберите вкладку "Сопоставления" ("App Mappings") и нажмите кнопку "Добавить" ("Add"). В поле "Исполняемый файл" ("Executable") введите c:\php\php.exe если PHP установлен в c:\php\ (для PHP 5 используйте php-cgi.exe).
В поле "Расширение" ("Extension") введите расширение PHP скриптов (".php", не забудте точку перед расширением). Оставьте переключатель "Команды" в положении "Все команды" (в других версиях видимо была галочка "Method exclusions" - ее нужно снять) и установите галочку в поле "Обработчик сценариев" ("Script engine"). Можете установить галочку в поле "Проверка наличия файла" ("check that file exists"). Это немного замедлит работу, зато при отсутсвии файла будет выдано стандартное сообщение об "ошибке 404", а не ошибки CGI.
Аналогичным образом добавьте другие расширения для PHP скриптов (рекомендуется ".php", хотя могут понадобится ".phtml" и ".php3" для совместимости с предыдущими версиями). Установите настройки безопасности (видимо, вкладка "Безопасность каталога" свойств веб-сервера ("Internet Service Manager")) и, если используется NTFS - права на выполнение для I_USR_* для каталога, содержащего php.exe.
Найдите в php.ini параметр cgi.force_redirect и замените значение на 0.
Apache
Для установки загрузите дистрибутив с www.apache.org. Это будет файл с именем вроде apache-2.0.49-win32-x86 и расширением .msi (Windows Installer package) или .zip. Разработчики очень рекомендуют первый вариант, но если Windows Installer'а у вас нет, как например в Win 98 после установки, берите zip (если есть).
Установка Apache из .msi никаких сложностей вызвать не должна. Вас попросят указать имя сервера, имя домена и почтовый адрес администратора. Для работы с PHP с вашего компьютера, не важно, что вы укажете. В случае с .zip, откройте файл conf\httpd.conf (пути начинаются из каталога, в который вы распаковали Апача) и отредактируйте там имя сервера, имя домана и пути к каталогам. Ищите текст @@ чтобы найти то, что нужно править. Затем выполните команды bin\Apache -k install и bin\Apache -k start. Под Windows Apache работает как служба.
Установка PHP так же не должна вызвать серьезных проблем. Впишите в conf/httpd.conf следующие строки:
LoadModule php5_module c:/php/php5apache.dll
AddType application/x-httpd-php .php
если PHP распакован в C:\PHP. Для Apache 2 пропишите php5apache2.dll. Если возникнут сложности, прочитайте install.txt. Скорее всего Апач не может найти .dll'ки.
Если нет желания или возможности поставить веб-сервер, можно запускать скрипты из командной строки: php.exe myscript.php > myscript.htm и затем загружать myscript.htm в браузер.
Для проверки напишем простенький скрипт. Создайте файл phpinfo.php и введите такую строку:
<?php phpinfo() ?>
Скопируйте в папку с веб-документами (для IIS это c:\inetpub\wwwroot\ для Апача - \htdocs\), запустите браузер и в адресной строке наберите localhost\phpinfo.php. Если все в порядке, вы получите страничку с информацией об операционной системе, настройках PHP, подключенных расширениях и многом другом. |