| |||||||||||||||
Глава 48. ИнсталяцияВ этом разделе собраны общие вопросы об установке PHP. PHP имеется почти для всех операционных систем/ОС (кроме, может быть, MacOS до OSX) и почти для любого web-сервера. При установке PHP следуйте инструкциям файла INSTALL, имеющегося в дистрибутиве. Пользователям Windows нужно также прочесть файл install.txt. Несколько подсказок для пользователей Windows можно также найти здесь.
1. Unix/Windows: Где у меня должен находиться файл php.ini? По умолчанию на UNIX он должен быть в директории /usr/local/lib, то есть в <install-path>/lib. Многие хотели бы изменить это положение на этапе компиляции с помощью флага --with-config-file-path. Вы можете, например, записать так:
а затем скопировать php.ini-dist из дистрибутива в /etc/php.ini и отредактировать его, чтобы сделать необходимые локальные изменения. На Windows путь по умолчанию для php.ini это директория Windows. Если вы используете Apache web-сервер, php.ini ищется сначала в директории установки Apache, например, c:\program files\apache group\apache. Таким образом, вы можете иметь разные файлы php.ini для разных версий Apache на одной машине. См. также главу о файле конфигурации. 2. Unix: Я установил PHP, но каждый раз при загрузке документа я получаю сообщение 'Document Contains No Data'! Почему? Возможно это означает, что с PHP есть какие-то проблемы и что имеется перевод ядра в дамп. Посмотрите в error log вашего сервера, не это ли причина, а затем попытайтесь воспроизвести проблему небольшим тестовым заданием. Если вы знаете, как использовать 'gdb', это поможет вам, если вы можете предоставить ваше сообщение о bug для отслеживания разработчиками точного местоположения проблемы. Если вы используете PHP как Apache-модуль, попытайтесь сделать что-нибудь типа:
Если ваш скрипт использует функции работы с регулярными выражениями (ereg() и компания), вам необходимо убедиться, что вы скомпилировали PHP и Apache с одним и тем же пакетом регулярных выражений. Это должно выполняться автоматически для PHP и Apache 1.3.x. 3. Unix: Я установил PHP с использованием RPMS, но Apache не обрабатывает PHP-страницы! Почему? Примем, что вы установили Apache и PHP из RPM-пакетов, тогда вы должны раскомментировать или добавить некоторые или все следующие строки в ваш файл http.conf:
и добавить:
... в глобальные свойства/global properties или в свойства VirtualDomain, в который вы хотите добавить поддержку PHP. 4. Unix: Я установил PHP с использованием RPMS, но он не компилирует с поддержкой БД, нужной мне! Какова причина? Из-за способа построения PHP 3 нелегко построить/build полностью гибкий PHP RPM. Этот вопрос адресован в PHP 4. Для PHP 3 мы в настоящее время советуем использовать механизм, описанный в файле INSTALL.REDHAT в дистрибутиве PHP. Если вы продолжаете настаивать не необходимости использования RPM-версии PHP 3, прочтите... Упаковщики RPM устанавливают RPMS для инсталяции без поддержки БД, чтобы упростить процесс установки и из-за того, что RPMS использует для файлов директорию /usr/ вместо стандартной /usr/local/. Вы должны сообщить RPM spec-файлу, какие БД поддерживать, и размещение верхнего уровня вашего сервера БД. Следующий пример объяснит процесс добавления поддержки для популярного сервера MySQL через использование mod-инсталяции Apache. Самом собой, вся эта информация может уточняться для любого сервера БД, поддерживаемого PHP. Мы примем для данного примера, что вы установили MySQL и Apache полностью с помощью RPMS.
Не забудьте рестартовать Apache, и теперь вы получили PHP 3 с поддержкой MySQL с использованием RPM. Заметьте, что, вероятно, намного проще просто выполнить построение/build из дистрибутивного tarball PHP 3 и следовать инструкциям файла INSTALL.REDHAT, который имеется в этом дистрибутиве. 5. Unix: Я вставил на Apache патч расширений FrontPage, и внезапно PHP перестал работать. Совместим ли PHP с расширениями FrontPage для Apache? PHP прекрасно работает с расширениями FrontPage. Проблема в том, что патч FrontPage модифицирует некоторые структуры Apache, на которых основывается PHP. Рекомпиляция PHP (с использованием 'make clean ; make') после применения патча FP должна решить эту проблему. 6. Unix/Windows: Я установил PHP, но когда пытаюсь получить доступ к файлу PHP-скрипта через браузер, появляется чистый экран. Выполните в браузере 'view source' и вы, вероятно, обнаружите, что можно увидеть исходный код вашего PHP-скрипта. Это означает, что web-сервер не отправляет скрипт в PHP для интерпретации. Что-то неверно в конфигурации сервера - проверьте конфигурацию сервера ещё раз в соответствии с инструкциями по установке PHP. 7. Unix/Windows: Я установил PHP, но когда пытаюсь получить доступ к файлу PHP-скрипта через браузер, получаю ошибку 500 сервера. Иногда не всё получается, когда сервер пытается запустить PHP. Чтобы увидеть сообщение об ошибке, из командной строки перейдите в директорию содержащую исполняемый файл PHP (php.exe в Windows) и запустите php -i. Если имеются проблемы с запуском PHP, то будет выведено соответствующее сообщение об ошибке, что даст вам ключ к дальнейшим действиям. Если вы получили экран, заполненный кодами html (вывод функции phpinfo()), то PHP работает, а проблема может иметь отношение к конфигурации вашего сервера, которую нужно перепроверить. 8. Некоторые ОС: Я установил PHP без ошибок, но при попытке старта Аpache я получаю ошибки undefined symbol:
В PHP ничего делать не нужно, а проблема касается клиентских библиотек MySQL. Некоторые требуют --with-zlib, другие - нет. Это рассматривается также в MySQL FAQ. 9. Windows: Я установил PHP, но при доступе к файлу PHP-скрипта из браузера я получаю ошибку:
Это сообщение означает, что PHP не смог вывести вообще ничего. Чтобы увидеть сообщение об ошибке, из командной строки перейдите в директорию содержащую исполняемый файл PHP (php.exe в Windows) и запустите php -i. Если имеются проблемы с запуском PHP, то будет выведено соответствующее сообщение об ошибке, что даст вам ключ к дальнейшим действиям. Если вы получили экран, заполненный кодами html (вывод функции phpinfo()), то PHP работает. Если PHP работает из командной строки, попытайтесь снова получить доступ к скрипту через браузер. Если не работает по-прежнему, то может быть одно из следующих:
10. Windows: Я выполнил все инструкции, но PHP и IIS - таки да - не работают вместе! Убедитесь, что любой пользователь PHP-скрипта имеет права для запуска php.exe! IIS использует пользователя anonymous (анонимного), который добавляется в ходе инсталяции IIS. Этот пользователь должен иметь право на запуск php.exe. Также любой аутентифицированный пользователь должен получать право на выполнение php.exe. И вы должны указать IIS4, что PHP это машина скриптов. | |||||||||||||||
|