PHP в деталях



         

Траблшутинг - часть 3


В случае установки в виде CGI проверьте правильность написания директив настройки Апача и в тех ли секциях Вы сделали изменения. Других вариантов нет. Дело в этом и только в этом. Ибо PHP вызывается Апачем для выполнения скриптов и не играет никакой роли при запуске самого Апача. Поэтому дальше речь пойдет ТОЛЬКО о PHP как модуле Апача. На CGI больше не останавливаемся.

Если Вы устанавливаете PHP как модуль Апача, следует посмотреть, может, ему чего-то не хватает? ;)) Попробуйте, например, положить php4ts.dll в директорию с Апачем. Иногда это помогает. В общем, дайте простор фантазии. Только не рукам! Не надо бить компьютер за то, что вы такой неумеха ;)) А выглядит оно, бывает, устрашающе ? Апач рушится, вызывая ошибку в apachecore.dll. Но это все неправда. Вам для работы требуется пиво, программам ? библиотеки и файлы конфигурации. Не так ли? ;))

По моим наблюдениям, разные версии Апача ведут себя несколько по-разному при подключении PHP модуля. Пожалуйста, поправьте меня, если у Вас есть данные считать по-другому.

Так, Apache 1.3.12 ищет php4ts.dll сначала в своей директории (где лежит Apache.exe), затем в директориях, указанных в переменной окружения PATH. Вполне может быть, что в Вашем случае в системной директории Windows лежит php4ts.dll от другой версии PHP Как правило, от старой версии ;)) И php4apache.dll не может ее загрузить. А ТУ САМУЮ версию просто не находит. Честно сказать, я терпеть не могу, когда программы при инсталляции кидают в системную директорию свои библиотеки. Я скорее примирись с тем, что одна и та же библиотека будет у меня лежать в двух директориях. Речь идет о директории Апача и о директории с php.exe (иногда полезно) и библиотекой php4apache.dll. Вообще говоря, это все можно положить прямо в директорию Апача ? и далеко ходить не надо, и апдейт проще произвести ? нигде не забудете старую библиотеку.

Apache 1.3.14 ищет php4ts.dll сначала в той директории, где у Вас лежит php3apache.dll. В данном случае все файлы PHP можно сложить в одну директорию. Я так и сделал.

Еще бывают случаи, когда Вы пытаетесь прикрутить к PHP-модулю Апача дополнительные модули и библиотеки (например, пресловутую php_gd.dll) от других версий PHP. Не уверен, что это удастся. Во всяком случае, Апач (точнее, PHP в его составе) шибко ругается, что не совпадают внутренние версии API. Для начала лучше их все отключить. Понятно, где ? в php.ini. В любом случае, присматривайтесь к сообщениям, выдаваемым при запуске.

Да, и еще. Подключая дополнительные модули, обязательно пропишите переменную extension_dir в файле php.ini ? по умолчанию PHP ищет их в той же директории, в которой находится (./) а в дистрибутиве они лежат в директории extensions/ ? странно, да?..




Содержание  Назад  Вперед