бытовки

>Unix/Windows: Я установил PHP, но когда пытаюсь получить доступ к файлу PHP-скрипта через браузер, появляется чистый экран.
7. Unix/Windows: Я установил PHP, но когда пытаюсь получить доступ к файлу PHP-скрипта через браузер, получаю ошибку 500 сервера.
8. Некоторые ОС: Я установил PHP без ошибок, но при попытке старта Аpache я получаю ошибки undefined symbol:
[mybox:user /src/php4] root# apachectl configtest
apachectl: /usr/local/apache/bin/httpd Undefined symbols:
_compress
_uncompress
9. Windows: Я установил PHP, но при доступе к файлу PHP-скрипта из браузера я получаю ошибку:
cgi error:
The specified CGI application misbehaved by not
returning a complete set of HTTP headers.
The headers it did return are:
10. Windows: Я выполнил все инструкции, но PHP и IIS - таки да - не работают вместе!

1. Unix/Windows: Где у меня должен находиться файл php.ini?

По умолчанию на UNIX он должен быть в директории /usr/local/lib, то есть в <install-path>/lib. Многие хотели бы изменить это положение на этапе компиляции с помощью флага --with-config-file-path. Вы можете, например, записать так:
--with-config-file-path=/etc

а затем скопировать 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:
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c
# Extra Modules
LoadModule php_module modules/mod_php.so
LoadModule php3_module modules/libphp3.so /* для PHP 3 */
LoadModule php4_module modules/libphp4.so /* для PHP 4 */
LoadModule perl_module modules/libperl.so

и добавить:

AddType application/x-httpd-php3 .php3 /* для PHP 3 */
AddType application/x-httpd-php .php /* для PHP 4 */

... в глобальные свойства/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:
[mybox:user /src/php4] root# apachectl configtest
apachectl: /usr/local/apache/bin/httpd Undefined symbols:
_compress
_uncompress

В PHP ничего делать не нужно, а проблема касается клиентских библиотек MySQL. Некоторые требуют --with-zlib, другие - нет. Это рассматривается также в MySQL FAQ.

9. Windows: Я установил PHP, но при доступе к файлу PHP-скрипта из браузера я получаю ошибку:
cgi error:
The specified CGI application misbehaved by not
returning a complete set of HTTP headers.
The headers it did return are:

Это сообщение означает, что 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 это машина скриптов.


НазадОглавление Вперёд
Вопросы о базах данных ВверхПроблемы построения