Учебник PHP

         

Глава 49. Проблемы построения РНР

В этом разделе собраны типичные ошибки, возникающие во время построения/build РНР.

1. У меня последняя версия PHP, использующая службу анонимного CVS, но нет скрипта конфигурации!
2. У меня проблемы с конфигурирование PHP для работы с Apache. Он говорит, что не может найти httpd.h, но это файл находится там, где я ему указал!
3. Когда я запускаю configure, он говорит, что не может найти include-файлы или библиотеки для GD, gdbm или ещё какого-нибудь пакета!
4. При компиляции файла language-parser.tab.c  он выдаёт мне ошибки, где говорится, что yytname undeclared.
5. Когда я запускаю make, всё вроде идёт нормально, но затем - облом при попытке компоновки окончательного приложения, и он жалуется, что не может найти некоторые файлы.
6. При компоновке/linking PHP он жалуется на наличие undefined-ссылок.
7. Я не могу выяснить, как построить build PHP с Apache 1.3.
8. Я выполнил все шаги по установке Apache-модуля версии для UNIX, а мои PHP-скрипты выводятся в браузере, или мне задаётся вопрос, сохранить ли файл.
9. Сказано использовать --activate-module=src/modules/php4/libphp4.a,

но этот файл не существует, поэтому я вместо него сделал --activate-module=src/modules/php4/libmodphp4.a, а он не работает!? В чём причина?
10. Когда я пытаюсь построить Apache с PHP как static-модулем путём использования --activate-module=src/modules/php4/libphp4.a, он мне говорит, что мой компилятор несовместим с ANSI.
11. Когда я пытаюсь построить PHP с использованием --with-apxs, я получаю странные сообщения об ошибках.
12. В процессе make я получаю ошибки в microtime и много RUSAGE_.
13. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая использовалась для построения установки моей текущей версии PHP?

1. У меня последняя версия PHP, использующая службу анонимного CVS, но нет скрипта конфигурации!

Вам необходимо иметь установленный пакет GNU autoconf, чтобы вы могли генерировать скрипт конфигурации из configure.in. Просто запустите ./buildconf в директории верхнего уровня после получения исходников с CVS-сервера. (Также, если вы не запустили configure с опцией --enable-maintainer-mode, скрипт configure не будет автоматически перестроен/rebuilt, когда файл configure.in обновляется, поэтому вы обязательно должны сделать это вручную, если configure.in изменяется. Один из симптомов этого - если вы находите что-нибудь вроде @VARIABLE@ в вашем Makefile после конфигурирования или если config.status работает.)

2. У меня проблемы с конфигурирование PHP для работы с Apache. Он говорит, что не может найти httpd.h, но это файл находится там, где я ему указал!

Вы должны сообщить configure/setup-скрипту расположение верхнего уровня вашего дерева исходников Apache. Это означает, что вы должны специфицировать --with-apache=/path/to/apache, а не --with-apache=/path/to/apache/src.

3. Когда я запускаю configure, он говорит, что не может найти include-файлы или библиотеки для GD, gdbm или ещё какого-нибудь пакета!

Вы можете сделать так, чтобы configure-скрипт искал header-файлы и библиотеки в нестандартном месте, специфицировав дополнительные флаги для передачи их препроцессору C и компоновщику/linker таким образом:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

Если вы используете csh-вариант для вашей оболочки логина (почему?), это может быть:

Содержание раздела