Установка
PHP 4 на Windows | ||
Источник: http://opennet.ru/ | ||
Существует два способа проинсталлировать PHP на Windows: первый
вручную,,
второй, используя стандартную программу установки InstallShield.
Самораспаковывающаяся инсталляция PHP доступна на сайте www.php.net, эта версия устанавливает PHP в режиме CGI для таких веб-серверов как IIS, PWS, и Xitami, а также конфигурирует эти веб-серверы для работы с PHP. Заметьте, что эта версия не устанавливает никаких расширений PHP, либо расширений серверных API (SAPI). Проинсталлируйте один вышеперечисленных веб-серверов и убедитесь в его работоспособности. Запустите программу установки и следуйте инструкциям, которые будут появляться в процессе установки. Поддерживаются два типа установки, первый - стандартный, который устанавливает PHP по-умолчанию, с настройками, которые соответствуют параметрам Вашей системы, второй - расширенный вариант установки, в процессе установки в расширенном режиме программа сконфигурирует PHP, согласно Ваших ответов на предлагаемые ей вопросы.
После окончания установки программа установки может потребовать перезагрузку системы, если этого не произошло, Вы можете начать использовать PHP.
При использовании PHP как SAPI модуля вы получите лучшую производительность модуля и новые функциональные возможности, но стоит отметить, что SAPI модули еще НЕ достигли состояния, когда их работа считается стабильной. Вобщем, при использовании PHP как SAPI-модуля, Вы можете заметить некоторые проблемы со стабильностью работы, особенно на платформах управляемых виндовс версий более старших чем Windows 2000 (Windows 98/NT, например) Вы можете заметить большой количество серверных ошибок с номером 500, так же работа этого модуля может повлиять на работу других серверных модулей, например, ASP. Так или иначе Вас предупредили! Причина проблемы в том, что PHP SAPI-модули используют потокобезопасную (преведите правильно!!!) версию кода, внедрение которого в код PHP, является новшеством и еще не протестировано как следует, чтобы считаться полностью стабильным. С другой стороны замечено, что использование PHP как SAPI-модуля к веб-серверу дает хорошие результаты при работе с веб-сервером Apache. Короче, если Вам нужна стабильность Вам стоит поменять производительность SAPI-модуля на стабильность выполняемого CGI-модуля.
Для установки PHP выполните следующие инструкции. Разархивируйте PHP в директорию, например, C:\PHP\. Необходимо убедиться, что динамически загружаемые библиотеки .dll которые используются PHP ему доступны. Использование конкретных динамических библиотек зависит от того веб-сервера, который Вы используете, а так же от того, как Вы хотите использвать PHP (как CGI или как загружаемый веб-сервером модуль т.е. ISAPI или модуль Apache), так или иначе . php4ts.dll используется в любом случае. В случае загружаемого модуля Вам понадобится соотвествующая библиотека из папки isapi. Если Вы используете какую-то библиотеку расширения, то PHP необходимо дать доступ к ней тоже. Чтобы быть уверенным, что все библиотеки доступны Вы можете их скопировать в системную директорию (winnt/system32 или windows/system) а также должны убедиться что они расположены в одной директории с выполняемой частью PHP или dll-расширением Вашего веб-сервера (например, php.exe, php4apache.dll) Скопируйте файл php.ini-dist в директорию %WINDOWS% на
Windows 95/98 или в директорию %SYSTEMROOT% при испольовани Windows NT,
Windows 2000 or Windows XP и переименуйте этот файл в php.ini. Директория %WINDOWS%
или
%SYSTEMROOT% это обычно c:\windows на Windows 95/98
c:\winnt или c:\winnt40 for NT/2000/XP
Вам необходимо отредактировать опцию 'extension_dir' так чтобы ее значением был путь к директории где расположены модули расширения PHP файлы: 'php_*.dll' Если Вы используете OmniHTTPd не выполняйте следующий шаг. Установите опцию 'doc_root' так, чтобы она указывала на корневую директорию Вашего веб-сервера. Например: c:\apache\htdocs or c:\webroot
На PWS и IIS, Вы можете указать browscap.ini, чтобы он указывал на 'c:\windows\system\inetsrv\browscap.ini' на Windows 9x/Me и 'c:\winnt\system32\inetsrv\browscap.ini' на NT/2000/XP Server. Подробности использования browscap Вы можете найти тут:
Внимание! Загрузите последнюю версию MDAC (Компоненты доступа к данным от Microsoft), которые подходят для Вашей платформы, особенно это касается пользователей Windows 9x/NT4. MDAC доступен на http://www.microsoft.com/data/ Также некоторые расширения PHP требуют установки библиотек сторонних производителей, например, php_oci8.dll требует установки библиотек, которые входят в состав клиента к СУБД Oracle 8. Эти библиотеки сторонних производителей не входят в поставку PHP. Внимание! Названия библиотек расширений PHP начинаются с префикса 'php_', это сделано для предотвращения путаницы между расширениями PHP и библиотеками, которые нужны для работы самого расширения. В PHP 4.0.5 по-умолчанию встроена поддержка MySQL, ODBC, FTP, Calendar, BCMath, COM, PCRE, сессий, WDDX и XML. Примеры расширений
Конфигурация веб-сервера Инсталляция PHP на Windows с Apache 1.3.x Внимание пользователям Apache версии 2 С единственным различием что, когда инсталлируете как модуль, требуется использовать php4apache2.dll вместо php4apache.dll, оба файла входят в поставку. Есть два способа установить PHP для Apache 1.3 на Windows. Первый как CGI (php.exe) , второй как модуль к веб-серверу Apache. В обоих случаях Вам следует остановить Apache и отредактировать httpd.conf или srm.conf, чтобы конфигурировать Apache для работы с PHP. Мы будем ссылаться на оба файла (httpd.conf или srm.conf), как на httpd.conf. Также существует несколько различий конфигурации PHP для Apache, но они настолько просты, чтобы в них смог разобраться новичок. Пожалуйста обратитесь к документации Apache для дальнейших инструкций по установке.
После версии 4.1 SAPI-модуль для Apache стал более надежным в работе, поэтому мы рекомендуем конфиграцию PHP в виде модуля Apache. Чтобы это сделать нужно загрузить библиотеку php4apache.dll в конфигурационном файле Apache httpd.conf Внимание! Откуда бы Вы не загружали php4apache.dll, эта библитека
требует для своей
работы php4ts, которая тоже доступна в дистрибутиве. php4apache.dll
зависит от php4ts с
того момента когда Apache загружает php4apache.dll Если php4ts
не доступна веб-серверу,
то Вы получите ошибку: Откуда веб-сервер может загрузить библиотеку? 1. в директории откуда запускается apache.exe Что такое %SYSTEMROOT%? Все зависит от версии Windows, которая установлена у Вас на компьютере, это может быть например c:\winnt или C:\windows.
LoadModule php4_module c:/php/sapi/php4apache.dll
Установка PHP для работы в режиме CGI Если Вы хотите установить PHP для работы как CGI, прочитайте сначала это: http://www.cert.org/advisories/CA-1996-11.html если Вы точно уверенны, то тогда вставьте следующие строки в Ваш конфигурационный файл: ScriptAlias /php/ "c:/php/" Мы считаем установку PHP в таком виде суицидом Мы рекомендуем сменить "/php/" ScriptAlias на что-то более незнакомое, чтобы предотвратить прямой вызов исполняемого файла, что является риском для безопасности. После установки перегрузите веб-сервер Apache AddType application/x-httpd-php-source .phps Последнее работает только в том случае, если PHP устанволен как sapi-модуль к веб-серверу, если Вам нужна подобная возможность при работе PHP в режиме CGI, создайте новый файл и используйте show_source("path/to/original_file.php");
На Windows Apache понимает как прямые так и обратные слеши Пример: LoadModule php4_module C:\php\sapi\php4apache.dll работает также как LoadModule php4_module C:/php/sapi/php4apache.dll Вы даже можете смешивать два вида слешей LoadModule php4_module C:\php/sapi\php4apache.dll
Эта часть документа содержит инструкции касательно установки PHP для работы с IIS версий 3, 4 и 5. В меню Edit выберите New->String Value (/отредактируйте тут у кого русская винда/) Внесите расширение фалов, которое Вы хотите ассоциировать с Вашими php-скриптами, например, .php Щелкните два раза на новом строковом параметре и внесите путь к php.exe в поле для ввода данных. Повторите так для всех расширений файлов, которые Вы хотите ассоциировать с php-скриптами. Следующие шаги не влияют на работу веб-сервера, их необходимо сделать, если Вы хотите, чтобы скрипты выполнялись с коммандной строки, например, c:\myscripts\test.php Now navigate to: HKEY_CLASSES_ROOT При использовании PWS на Windows презапустите систему. Пользователи PWS и IIS 3 могут начинать работать.
В обоих случаях, Вам необходимо запустить Microsoft Management Console (может иметь название 'Internet Services Manager' в Windows NT 4.0 Option Pack или Control Panel=>Administrative Tools в Windows 2000) Кликниете правой клаившей мыши на веб-узле (скорее всего это будет 'Default Web Server') и выберите 'Properties'. /у кого русская винда переведите првильно и допишите названия пунктов меню, консолей/ Если Вы хотите использовать PHP в режиме CGI на закладке 'Home Directory', 'Virtual Directory', или 'Directory' нажмите кнопку 'Configuration' и затем выберите закладку App Mappings. Нажмите Add в поле Executable наишите c:\php\php.exe (если Вы установили PHP в c:\php\). Вы должны повторить предложенные выше действия для каждого расширения, с которым Вы хотите ассоциировать свои скрипты (рекомендованные расширения:.php также .phtml и .php3 могут потребоваться для корректной работы приложений)
Помните, что с версии 4.1.2 в php.ini опция cgi.force_redirect по-умолчанию равна 1, что предотвращает работу PHP в режиме CGI, Вам необходимо установить эту директиву в ноль: cgi.force_redirect = 0 Если это не сработало сразу, удостоверьтесь, что php.ini находится в нужном месте: (%SYSTEMROOT%\php.ini) Чтобы использовать PHP как ISAPI-модуль сделайте следующее: Если Вы не собираетесь использовать HTTP аутентификацию с использованием PHP, вы можете (и должны) пропустить этот шаг. На закладке ISAPI Filters добавьте новый ISAPI фильтр. Используйте php в качестве имени фильтра и введите путь к php4isapi.dll Решения проблем установки Прочитайте ЧАВО некоторые проблемы наиболее часто встречаются, наиболее часто встречающиеся проблемы описаны в PHP FAQ на http://www.php.net/FAQ.php
Основные проблемы часто случаются на IIS/PWS, но их решение может помочь тем, кто работает с другими веб-серверами. <?php phpinfo();?>
Ошибка происходит при попытке веб-сервера запустить PHP. Чтобы увидеть осмысленное сообщение об ошибке, с коммандной строки смените директорию на ту, в которой содержится php.exe и запустите "php.exe -i" (без кавычек). Если сам php не поврежден и может быть запущенным, то он выдаст осмысленное сообщение об ошибке, которое даст подсказку, что делать дальше. Если Вы получили вывод html-документа на экран, то значит, что сам PHP отрабатывает нормально и ошибка в конфигурации Вашего веб-сервера, которую вам следует еще раз перепроверить. Вы проинсталлировали PHP, но когда пытаетесь получить доступ к скрипту через браузер, Вы получаете ошибку: cgi error Это сообщение об ошибке означает, что PHP вообще ничего не вывел, с коммандной строки зайдите в директорию, где лежит php.exe и запустите php.exe -i Если сам PHP работает нормально, будет выведена осмысленное сообщение об ошибке, с возможным указанием, как ее исправить. Если Вы получили html-вывод, это значит, что php работает правильно. Если php работает с коммандной строки, снова попробуйте запустить его через браузер, если выводится снова сообщение об ошибке, то это может произойти по следующей причине: Неправильные права на сам php-скрипт, php.exe, php4ts.dll, php.ini либо другие библиотеки расширений PHP, которые Вы хотите загрузить, разрешения надо выставить для гостевого эккаунта ISUR_<имя_компьютера>
Пример поиска ошибки: Apache/PHP4 как модуль веб-сервера. Хотя я правильно сконфигурировал php4apache.dll в httpd.conf я всегда получаю ошибку: Syntax error on line 1025 of c:/apache/apache/conf/httpd.conf: Но c:/php/php-4.2.1-win32/sapi/php4apache.dll точно существует dir c:\php\php-4.2.1-win32\sapi\php4apache.dll Запуск 'strace' apache.exe выдает следущее: Then looking into strace.txt: Apache не нашел php4ts.dll ни в одном месте, где искал, решение: Внимание! Подобным способом можно отследить не только обращение/поиск php4ts.dll но и любой другой библиотеки которую загружает php, поэтому, если у Вас возникают проблемы с запуском PHP с коммандной строки, потому что PHP не может загрузить библиотеку, попробуйте решить проблему при помощи данной утилиты.
/перевод сообщения об ошибке дословно: Ошибка безопасности! Выполняемый модуль PHP в режиме CGI нельзя вызывать напрямую/ С версии 4.1.2. в php.ini опция cgi.force_redirect по-умолчанию равна 1, что эффективно предотвращает выполняемый модуль от выполнения с IIS. Исправьте в php.ini строчку на cgi.force_redirect = 0 Если после этого Вы не получили результат, удостоверьтесь, что php.ini находится в директории %SYSTEMROOT%
|
с |