Ключевые слова:php, windows, mod_php, (найти похожие документы)
From: Yukko <yukko@bigmir.net>
Newsgroups: email
Date: Mon, 13 Oct 2003 14:31:37 +0000 (UTC)
Subject: Установка PHP 4 на Windows (перевод файла install.txt из поставки PHP)
Инсталляция PHP на Windows 9x/Me/NT/2000/XP
Существует два способа проинсталлировать PHP на Windows: первый вручную,
второй, используя стандартную программу установки InstallShield.
Установка при помощи InstallShield
----------------------------------
Самораспаковывающаяся инсталляция PHP доступна на сайте www.php.net,
эта версия устанавливает PHP в режиме CGI для таких веб-серверов как IIS, PWS,
и Xitami, а также конфигурирует эти веб-серверы для работы с PHP.
Заметьте, что эта версия не устанавливает никаких расширений PHP, либо
расширений серверных API (SAPI).
Проинсталлируйте один вышеперечисленных веб-серверов и убедитесь
в его работоспособности.
Запустите программу установки и следуйте инструкциям, которые будут
появляться в процессе установки. Поддерживаются два типа установки,
первый - стандартный, который устанавливает PHP по-умолчанию,
с настройками, которые соответствуют параметрам Вашей системы,
второй - расширенный вариант установки, в процессе установки в
расширенном режиме программа сконфигурирует PHP, согласно Ваших
ответов на предлагаемые ей вопросы.
Программа установки в состоянии собрать достаточно данных о настройках
Вашей системы, чтобы самостоятельно прописать настройки в php.ini и
сконфигурировать веб-сервер. Для IIS и PWS на рабочих станциях NT (
NT Workstation) будет показан весь список доступных веб-узлов на сервере,
Вы сможете выбрать веб-узлы для которых Вы желаете включить поддержку PHP.
После окончания установки программа установки может потребовать перезагрузку
системы, если этого не произошло, Вы можете начать использовать PHP.
Установка PHP из архива
-----------------------
Эта часть документа описывает процесс установки и конфигурации PHP вручную
на компьютерах под управлением Windows 9x/Me/NT/2000/XP. Эта часть документа
была написана Бобом Слива. Оригинальную (английскую) версию документа
Вы можете найти на http://www.umesd.k12.or.us/php/win32install.html
Эта часть документа посвящена ручной установке PHP на следующие веб-сервера:
Personal Web Server версии 3, 4 и выше Internet
Information Server версии 3, 4 и выше
Apache 1.3.x
Apache 2.0.x (эксперементральный вариант, не использовать на ответственных системах и для разработки)
OmniHTTPd версии 2.0b1 и выше
Oreilly Website Pro
Xitami
Netscape Enterprise Server
iPlanet
PHP 4 для Windows поставляется в двух видах:
1. выполняемый CGI-модуль
2. а также разнообразные SAPI модули (например, php4isapi.dll)
При использовании PHP как SAPI модуля вы получите лучшую производительность
модуля и новые функциональные возможности, но стоит отметить, что SAPI модули
еще НЕ достигли состояния, когда их работа считается стабильной. Вобщем, при
использовании PHP как SAPI-модуля, Вы можете заметить некоторые проблемы со
стабильностью работы, особенно на платформах управляемых виндовс версий более
старших чем Windows 2000 (Windows 98/NT, например) Вы можете заметить большой
количество серверных ошибок с номером 500, так же работа этого модуля может
повлиять на работу других серверных модулей, например, ASP. Так или иначе Вас
предупредили!
Причина проблемы в том, что PHP SAPI-модули используют потокобезопасную
(преведите правильно!!!) версию кода, внедрение которого в код PHP, является
новшеством и еще не протестировано как следует, чтобы считаться полностью
стабильным. С другой стороны замечено, что использование PHP как SAPI-модуля
к веб-серверу дает хорошие результаты при работе с веб-сервером Apache. Короче,
если Вам нужна стабильность Вам стоит поменять производительность SAPI-модуля
на стабильность выполняемого CGI-модуля.
При выборе одного из SAPI-модулей и при использовании Windows 95 установите
обновление DCOM с http://download.microsoft.com/msdownload/dcom/95/x86/en/dcom95.exe
Для ISAPI-модуля, необходим ISAPI 4.0 совместимый веб-сервер required
(протестированно на IIS 4.0, PWS 4.0 и IIS 5.0). IIS 3.0 не поддерживается.
Вам необходимо скачать и проинсталлировать дополнительный Windows NT 4.0
Option Pack с IIS 4.0 если Вам нужна поддержка PHP.
Для установки 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
В данном документе тут и далее используется обозначени
%SYSTEMROOT% for both %WINDOWS% или %SYSTEMROOT%.
Отредактируйте Ваш php.ini файл
Вам необходимо отредактировать опцию 'extension_dir' так чтобы ее значением
был путь к директории где расположены модули расширения PHP файлы: 'php_*.dll'
Если Вы используете OmniHTTPd не выполняйте следующий шаг. Установите
опцию 'doc_root' так, чтобы она указывала на корневую директорию Вашего
веб-сервера. Например: c:\apache\htdocs or c:\webroot
Выберите модули расширения (php extensions), с которыми Вы хотите
использовать PHP, помните, что многие расширения уже входят в поставку.
Так же смотрите раздел Расширения PHP в версии для Windows. Вы можете
раскомментировать строчки вида 'extension=php_*.dll' в php.ini для загрузки расширения.
Последуйте совету и сначала установите и протестируйте работоспособность
PHP без загружаемых модулей расширения перед тем как разрешить их использование в php.ini.
На PWS и IIS, Вы можете указать browscap.ini, чтобы он указывал на
'c:\windows\system\inetsrv\browscap.ini' на Windows 9x/Me и 'c:\winnt\system32\inetsrv\browscap.ini' на NT/2000/XP Server.
Подробности использования browscap Вы можете найти тут:
http://www.php.net/manual/en/function.get-browser.php
Отмечу, что директория mibs содержимое которой поставляется с Windows версией PHP
содержит в себе файлы для поддержки SNMP. Эта директория должна быть перемещена в
DRIVE:\usr\mibs (DRIVE - раздел жесткого диска куда установлен PHP.)
Расширения PHP в версии для Windows
-----------------------------------
После установки PHP и веб-сервера на Windows Вам наверное захочется установить
расширения PHP для повышения функциональности языка и расширения его базовых
возможностей. В этом разделе описаны расширения, поставляемые с PHP. Как было
описано в разделе посвященному ручной установке PHP из архива, Вы можете
выбрать какие расширения PHP, Вы можете загружать, для этого предварительно
раскомментировав строчку вида: extension=php_*.dll' в php.ini.
Внимание!
Некоторые дополнительные библиотеки необходимы для поддержки корректной
работы некоторых расширений PHP, пожалуйста скопируйте
собранные(скомпилированные /переведите слово bundled правильно/) библиотеки
из директорий, которые содержат библиотеки в установочном пакете в Вашу
директорию windows/system (Win9.x) или winnt/system32 (WinNT, Win2000, XP).
Если у вас эти библиотеки уже установлены в системе, переписывайте их только
в том случае, если у Вас что-то не работает корректно, Перед перезаписью
убедитесь в том, что Вы сделали резервные копии перезаписываемых библиотек
просто на случай, если что-то пойдет не так.
Загрузите последнюю версию 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_dbase.dll функции для работы с dBase
php_filepro.dll Доступ без права изменения для Filepro
php_gd.dll поддержка библиотеки GD library для работы с графикой
php_hyperwave.dll функции HyperWave
php_imap.dll функции IMAP
php_ldap.dll функции для работы с LDAP
php_mssql.dll MSSQL клиент (требует MSSQL DB-библиотек)
php_snmp.dll SNMP get and walk functions (NT only!) /переведите/
php_zlib.dll функции сжатия ZLib
Подробности в разделе, который посвящен расширениям PHP для Windows на
http://www.php.net/manual/en/install-windows.php#install.windows.extensions
Конфигурация веб-сервера
------------------------
Инсталляция PHP на Windows с Apache 1.3.x
Внимание пользователям Apache версии 2
На данный момент поддержка Apache 2 эксперементальная. Рекомендуем
использовать PHP с Apache 1.3, но не с Apache 2. Документация
по инсталляции PHP для Apache 2 на Windows находится по адресу:
http://www.php.net/manual/en/install.apache2.php
С единственным различием что, когда инсталлируете как модуль, требуется использовать
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 для дальнейших инструкций по установке.
(за точность перевода абзаца не ручаюсь)
Установка PHP для Apache в виде модуля веб-сервера
После версии 4.1 SAPI-модуль для Apache стал более надежным в работе,
поэтому мы рекомендуем конфиграцию PHP в виде модуля Apache.
Чтобы это сделать нужно загрузить библиотеку php4apache.dll в конфигурационном
файле Apache httpd.conf
Внимание! Откуда бы Вы не загружали php4apache.dll, эта библитека требует для своей
работы php4ts, которая тоже доступна в дистрибутиве. php4apache.dll зависит от php4ts с
того момента когда Apache загружает php4apache.dll Если php4ts не доступна веб-серверу,
то Вы получите ошибку:
Cannot load c:/php/sapi/php4apache.dll into server (Также см. Раздел Решения проблем установки)
Откуда веб-сервер может загрузить библиотеку?
php4ts.dll ищется веб-сервером в следующем порядке:
1. в директории откуда запускается apache.exe
2. в директориии откуда загружается php4apache.dll
3. в директориях %SYSTEMROOT%\System32, %SYSTEMROOT%\system и
%SYSTEMROOT%
Внимание: %SYSTEMROOT%\System32 используется только в Windows NT/2000/XP)
4. по всем путям d переменной %PATH%
Что такое %SYSTEMROOT%? Все зависит от версии Windows, которая установлена у
Вас на компьютере, это может быть например c:\winnt или C:\windows.
Обычно необходимо просто скопировать библиотеки в %SYSTEMROOT%\System32,
но если Вы хотите использовать несколько версий PHP это плохое решение. Для этого
случая самым безопасным решением будет оставить php4ts.dll в той директории, откуда
загружается php4apache.dll (см. п.2 выше).
После того как Вы разместили правильно все файлы дистрибутива, Вы можете начать
окончательную конфигурацию веб-сервера Apache для работы с PHP-модулем, просто
добавьте следующие строки в Ваш конфигурационый файл:
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php
Новые версии Apache могут не требовать AddModule директив, хотя Ваш дистрибутив
может отличаться.
Где мне расположить php.ini?
Php.ini ищется только в двух местах:
1. в директории, в которой установлен веб-сервер Apache
2. в директории %SYSTEMROOT%
Установка PHP для работы в режиме CGI
-------------------------------------
Если Вы хотите установить PHP для работы как CGI, прочитайте сначала это:
http://www.cert.org/advisories/CA-1996-11.html
если Вы точно уверенны, то тогда вставьте следующие строки в Ваш конфигурационный файл:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
Мы считаем установку PHP в таком виде суицидом
Мы рекомендуем сменить "/php/" ScriptAlias на что-то более незнакомое, чтобы предотвратить
прямой вызов исполняемого файла, что является риском для безопасности.
После установки перегрузите веб-сервер Apache
NET STOP APACHE
NET START APACHE
Чтобы использовать подсветку исходно кода, добавьте следующую строку в
файл конфигурации httpd.conf
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 на Windows с IIS/PWS
----------------------------------
Эта часть документа содержит инструкции касательно установки PHP для
работы с IIS версий 3, 4 и 5.
Рекомендуемый способ конфигурации веб-серверов - использование
REG-файла, который входит в поставку (pws-php4cgi.reg). Вы можете
отредактировать эти файлы, чтобы быть уверенным, что директории
расширений PHP, а так же директория, где находятся выполняемые модули,
указаны правильно, после того, как Вы это сделали, дважды кликните по
файлу, и он внесет данные в реестр. Как альтернативный метод, Вы
можете выполнить все действия вручную.
Внимание!
Приведенные ниже действия включают в себя работу с реестром напрямую.
Одна ошибка может привести к тому, что система будет в нестабильном состоянии,
мы настоятельно рекомендуеем сделать резервную копию Вашего реестра. Команда
разработчиков PHP не несет ответственности за возможный нанесенный вред Вашему
реестру.
Запустите regedit и найдите ключ HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/W3Svc/Parameters/ScriptMap
В меню Edit выберите New->String Value (/отредактируйте тут у кого русская винда/)
Внесите расширение фалов, которое Вы хотите
ассоциировать с Вашими php-скриптами, например, .php Щелкните два раза
на новом строковом параметре и внесите путь к php.exe в поле для ввода
данных. Повторите так для всех расширений файлов, которые Вы хотите
ассоциировать с php-скриптами.
Следующие шаги не влияют на работу веб-сервера, их необходимо сделать,
если Вы хотите, чтобы скрипты выполнялись с коммандной строки,
например, c:\myscripts\test.php /именно по этой причине я и не перевел
эту часть, надеюсь, будет время, переведу./
Now navigate to: HKEY_CLASSES_ROOT
On the edit menu select: New->Key
Name the key to the extension you setup in the previous
section. ex: .php
Highlight the new key and in the right side pane, double click
the "default value" and enter phpfile.
Repeat the last step for each extension you set up in the
previous section.
Now create another New->Key under
HKEY_CLASSES_ROOT and name it phpfile
Highlight the new key 'phpfile' and in the
right side pane, double click the "default value" and enter
PHP Script.
Right click on the 'phpfile' key and select
New->Key, name it Shell.
Right click on the 'Shell' key and select
New->Key, name it open.
Right click on the 'open' key and select
New->Key, name it command.
Highlight the new key 'command' and in the
right side pane, double click the "default value" and enter
the path to php.exe ex: c:\php\php.exe -q %1
(don't forget the '%1').
Exit Regedit.
If using PWS on Windows, reboot to reload the registry.
PWS and IIS 3 users now have a fully operational system. IIS 3
users can use a nifty tool available at
http://www.genusa.com/iis/iiscfg.html
from Steven Genusa to configure their script maps.
При использовании PWS на Windows презапустите систему. Пользователи PWS
и IIS 3 могут начинать работать.
Windows NT/2000/XP и IIS 4 и выше, а также PWS 4 на NT Workstation
или W2K рабочие станции
Чтобы установить PHP на NT/2000/XP Server, на которых запущен IIS 4 или
выше, следуйте следующим инструкциям. У Вас снова есть два способа
проинсталлировать PHP, как CGI, либо как ISAPI модуль.
В обоих случаях, Вам необходимо запустить 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\).
В поле Extension пропишите расширение, которое Вы хотите ассоциировать с
php-скриптами. 'Method exclusions' не трогайте и выберите 'Script
engine' чекбокс /непереводимо/. Вы можете выбрать также 'check that file
exists' (с некоторй потерей производительнсти), IIS или PWS будут
проверять, что скрипт с запрошенным именем существует, если скрипт не
существует, то php не будет даже запускаться. Это означает, что будете
получать осмысленные страницы с ошибкой типа 404 вместо cgi ошибок, что
php не отправил браузеру данных.
Вы должны повторить предложенные выше действия для каждого расширения,
с которым Вы хотите ассоциировать свои скрипты (рекомендованные
расширения:.php также .phtml и .php3 могут потребоваться для корректной
работы приложений)
Установите должный уровень безопасности (это делается через in Internet
Service Manager) и если Вы используете файловую систему NTFS то
установите права на выполнение php.exe для пользователя I_USR_ .
Помните, что с версии 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
На закладке 'Home Directory' кликните на кнопку 'Configuration' добавьте
новую запись в Application Mappings (карта приложений), введите .php в
качестве расширения файла, введите путь до php4isapi.dll, не трогайте
Method exclusions и отметьте Script engine чекбокс.
Остановите и снова запустите IIS
net stop iisadmin
net start w3svc
------------------------------------------------------------
ВНИМАНИЕ: я оставил часть документа, которая посвящена процессу установки PHP для
OmniHTTPd Server, Oreilly Website Pro, Xitami, Netscape servers без перевода. У кого
есть желание+время может закончить начатое доброе дело! Читайте дальше
переведенную часть про возможные ошибки при установке PHP
----------------------------------------------------------
Решения проблем установки
-------------------------
Прочитайте ЧАВО
некоторые проблемы наиболее часто встречаются, наиболее часто встречающиеся
проблемы описаны в PHP FAQ на www.php.net/FAQ.php
Основные проблемы, которые встречаются на Windows
Основные проблемы часто случаются на IIS/PWS, но их решение может помочь
тем, кто работает с другими веб-серверами.
<?php phpinfo();?>
Для целей тестирования самый лучший способ использовать следующий скрипт,
который состоит всего из одной строки:
<?php phpinfo();?>
Вы происталлировали PHP, но когда Вы пытаетесь получить доступ к скрипту
из браузера, Вы получаете ошибку с номером 500.
Ошибка происходит при попытке веб-сервера запустить 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_<имя_компьютера>
Запрошенный скрипт не существует (или расположен не там, где Вы
думаете он расположен), помните, что для IIS Вы можете отследить эту
ошибку установив опцию 'check file exists' , когда настраиваете
привязку расширения к выполняемому приложению в Internet Services
Manager'е. Если скрипт по запрошенному пути не существует, то сервер
вернет 404 страницу.
Так же ошибка может случиться во время загрузки правильной
библиотеки, иногда загрузка библиотеки может вызвать сбой в
работе операционной системы, Вы можете использовать утилиту
strace, чтобы отследить обращения к файлам. Утилита работает
только на NT-подобных системах.
Подробнее: http://razor.bindview.com/tools/desc/strace_readme.html
Пример поиска ошибки:
Apache/PHP4 как модуль веб-сервера. Хотя я правильно
сконфигурировал php4apache.dll в httpd.conf я всегда получаю ошибку:
Syntax error on line 1025 of c:/apache/apache/conf/httpd.conf:
Cannot load c:/php/php-4.2.1-win32/sapi/php4apache.dll into server
Но c:/php/php-4.2.1-win32/sapi/php4apache.dll точно существует
dir c:\php\php-4.2.1-win32\sapi\php4apache.dll
Directory of c:\php\php-4.2.1-win32\sapi
13.05.2002 00:01 24.576 php4apache.dll
Запуск 'strace' apache.exe выдает следущее:
c:
cd \apache\apache
strace apache >strace.txt
Then looking into strace.txt:
Обратимся к файлу strace.txt:
[...]
729 3348 3248 NtOpenSection (0xe, {24, 24, 0x40, 0, 0, "php4ts.dll"}, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
731 3348 3248 NtQueryAttributesFile ({24, 0, 0x40, 0, 0, "\??\c:\php\php-4.2.1-win32\sapi\php4ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
733 3348 3248 NtQueryAttributesFile ({24, 108, 0x40, 0, 0, "php4ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
735 3348 3248 NtQueryAttributesFile ({24, 0, 0x40, 0, 0, "\??\C:\WINNT\System32\php4ts.dll"}, 1234824, ... ) == STATUS_OBJECT_NAME_NOT_FOUND
[...]
Apache не нашел php4ts.dll ни в одном месте, где искал, решение:
скопировать php4ts.dll в одну из директорий, в которых система ищет
этот файл, я выбрал c:\php\php-4.2.1-win32\sapi
Внимание! Подобным способом можно отследить не только обращение/поиск
php4ts.dll но и любой другой библиотеки которую загружает php,
поэтому, если у Вас возникают проблемы с запуском PHP с коммандной
строки, потому что PHP не может загрузить библиотеку, попробуйте
решить проблему при помощи данной утилиты.
Я использую IIS/CGI, каждый раз, когда я пытаюсь получить доступ
к php файлу я получаю предупреждение о нарушении правил безопасности:
"Security Alert! The PHP CGI cannot be accessed directly."
/перевод сообщения об ошибке дословно: Ошибка безопасности! Выполняемый
модуль PHP в режиме CGI нельзя вызывать напрямую/
С версии 4.1.2. в php.ini опция cgi.force_redirect по-умолчанию равна 1,
что эффективно предотвращает выполняемый модуль от выполнения с IIS.
Исправьте в php.ini строчку на
cgi.force_redirect = 0
Если после этого Вы не получили результат, удостоверьтесь, что php.ini
находится в директории %SYSTEMROOT%
Если у Вас появились проблемы, которые не описаны тут, то может быть
кто-то из подписчиков на рассылку PHP сможет Вам ответить. Если Вы
после некоторых раздумий решились попросить помощи через список
рассылки на php.net, то будем считать, что знаний английского у Вас
достаточно, чтобы Вы смогли дочитать документ до конца на английском,
а я его до конца не переводил!
Наконец-то, наконец-то оно у меня заработало...
А всё из-за незнания ангельского и вот этого:
cgi.force_redirect = 1
в дефолтном конфиге. Это с shttpd.
А к Апачу прикрутил как модуль. А то "400 Bad request" и хоть тресни. :-(
У меня проблема, после запуска скрипта он упорно думает, а после окончания таймаута выводит соответствующее сообщение. Ось w2003, IIS. А выполнить не может даже скрипт phpinfo...