��������

���ڻ㼯�˴��������ʱ���ֵij�������

  1. �������� GIT ����õ������°�� PHP����������û�� configure �ű���
  2. �������� PHP �� Apache һ����ʱ���������⡣˵û�ҵ� httpd.h��������ļ������������
  3. ������ PHP ����ʱ�� ./configure���������������µ����⣺ checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. ����ͼ���� Apache ʱ���õ��������´�����Ϣ�� fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. ������ configure ʱ������˵�Ҳ���ͷ�ļ��� GD ��� gdbm����������ʲô����
  6. ������ language-parser.tab.c�ļ�ʱ������˵ yytname undeclared��
  7. �������� makeʱ������ȥһ���������ɵ��������ij���ʱ����˵�Ҳ���ijЩ�ļ���ʧ���ˡ�
  8. ������ PHP ʱ������˵��һЩδ��������á�
  9. �Ҳ�֪�������� PHP �� Apache 1.3 һ����롣
  10. �Ұ������еIJ����� UNIX �°�װ��PHP �� Apache ģ��汾�����ҵ� PHP �ű�����ʾ��������л�����ʾ������ļ���
  11. ˵Ҫ�ã� --activate-module=src/modules/php4/libphp4.a�����Ǵ��ļ����������ڣ������Ҹij��� --activate-module=src/modules/php4/libmodphp4.a��������С���ô���£�
  12. ������ --activate-module=src/modules/php4/libphp4.a���Ű� PHP ����� Apache �ľ�̬ģ��ʱ������˵�ҵı����������� ANSI ��׼��
  13. ������ --with-apxs���� PHP ʱ�õ���ֵĴ�����Ϣ��
  14. �� make�Ĺ����У��� microtime �г������кܶ� RUSAGE_֮��Ķ�����
  15. ���� MySQL ���� PHP ʱ��������ȷ������configure�������� make�Ĺ����г������������µĴ�����Ϣ�� ext/mysql/ libmysqlclient /my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/ libmysqlclient /my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'��������ô����
  16. ���������ҵ� PHP���������ҵ�����������Ŀǰ�� PHP �� ./configure�IJ����أ�
  17. �� GD ��һ����� PHP ʱ��Ҫô����һ����ֵı������Ҫô������ʱ���� segfaults��
  18. ������ PHP ʱ�ҿ���һЩ����Ĵ��󣬺������ˡ����õ��� Solaris����֪����û�й�ϵ��
�������� GIT ����õ������°�� PHP����������û�� configure �ű���

����밲װ�� GNU autoconf ���������ſ��Դ� configure.in���� configure �ű����� GIT �����еõ�Դ�����ֻҪ����߲��Ŀ¼������ ./buildconf���ɡ���ͬʱҪע�⣬���������� --enable-maintainer-modeѡ�������� configure������ʹ configure.in�ļ������ˣ�configure �ű�Ҳ�����Զ��������ɡ����Ե��㷢�� configure.in�ļ�������ʱҪȷ���ֹ��������� configure �ű�����һ��֢״���� configure ֮��������� config.statusʱ�� Makefile ��Ѱ������ @VARIABLE@ �Ķ�������

�������� PHP �� Apache һ����ʱ���������⡣˵û�ҵ� httpd.h��������ļ������������

����Ҫ���� configure/setup �ű���� Apache Դ�������ϲ��Ŀ¼λ�á�����ζ������Ҫ����ָ�� --with-apache=/path/to/apache �� �������� --with-apache=/path/to/apache/src ��

������ PHP ����ʱ�� ./configure���������������µ����⣺
checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up

�������Ķ� PHP �� ��װ˵������ע��Ҫ���� PHP ��Ҫͬʱ��װ flex �� bison���������õIJ�ͬ�����Դ�Դ������� bison �� flex��Ҫôͨ���ѱ���õķ��а������� RPM��

����ͼ���� Apache ʱ���õ��������´�����Ϣ��
fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found

�ô���ͨ���� Apache �ĺ��ij��򱻱���Ϊ������;�� DSO ��ʱ�������볢���������� Apache��ȷ������ʹ�������²�����

--enable-shared=max --enable-rule=SHARED_CORE

������Ϣ�����Ķ� Apache ����Ŀ¼�� INSTALL�ļ����� Apache �� » DSO �ֲ���

������ configure ʱ������˵�Ҳ���ͷ�ļ��� GD ��� gdbm����������ʲô����

����ͨ��ָ�����ӵ�ѡ���� configure �ű��ڷDZ�׼��·����Ѱ��ͷ�ļ��ͿⲢ���ݸ� C Ԥ�������������������磺

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
����� csh �ı�����Ϊ��ĵ�¼ shell��Ϊʲô�������Ǿ��ǣ�
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

������ language-parser.tab.c�ļ�ʱ������˵ yytname undeclared��

��Ҫ���� Bison �İ汾�����°汾�� » http://www.gnu.org/software/bison/bison.html��

������ PHP ʱ������˵��һЩδ��������á�

�������ӵ���һ�����ȷ�������ʵ��Ŀⶼ����������ˡ�ͨ������©����"-ldl"����������κ����ݿ�֧������Ҫ�Ŀ⡣

һЩ��Ҳ����˵�ں� Apache ����ʱ���Dz��ò������� libphp4.a֮�����"-ldl"��

�Ҳ�֪�������� PHP �� Apache 1.3 һ����롣

����ʵ�ܼ򵥡�С�ĵ��������²�������

  • �� » http://httpd.apache.org/download.cgi�������°�� Apache 1.3��
  • ��ѹ����ij�������� /usr/local/src/apache-1.3��
  • ���� PHP�������� ./configure --with-apache=/<path>/apache-1.3������ apache-1.3 ���ڵ���ʵ·���滻�� <path>����
  • ���� make������ make install������ PHP ���ѱ�Ҫ���ļ������� Apache ��Դ����Ŀ¼���С�
  • �ı䵱ǰĿ¼�� /<path>/apache-1.3/srcĿ¼���༭ Configuration�ļ��������һ�У� AddModule modules/php4/libphp4.a��
  • ���� ./configure������ make��
  • ������Ӧ����һ������ PHP ֧�ֵ� httpd ��ִ�г����ˣ�

ע�⣺Ҳ�������µ� Apache ./configure�ű����μ� Apache ���а��� README.configure�ļ��е�˵����Ҳ���� PHP ���а��е� INSTALL�ļ���

�Ұ������еIJ����� UNIX �°�װ��PHP �� Apache ģ��汾�����ҵ� PHP �ű�����ʾ��������л�����ʾ������ļ���

��˵�� PHP ģ�����ijЩԭ��û�б����á���Ѱ��������ǰ�ȼ�������£�

  • ȷ�������е� httpd ���������ոձ������ httpd �������У� /path/to/binary/httpd -l �����û���� mod_php4.c���г��������û�����жԳ����ҵ�����ȷ��װ����
  • ȷ������ Apache .conf�ļ��м�������ȷ�� Mime ���͡�Ӧ���ǣ� AddType application/x-httpd-php .php Ҳȷ�� AddType ��һ��û�������� <Virtualhost> ���� <Directory> ���У�����ܻ������IJ��Խű�����λ��û�б�Ӧ�õ������á�
  • ���Apache 1.2 �� Apache 1.3 ֮��Ĭ�������ļ���λ�øı��ˡ���Ҫȷ������� AddType �е��ļ�����ʵ�����õġ����������� httpd.conf �����һ�����Ե��﷨����������������޸ģ�����Ը������Ƿ��ȡ����ȷ���ļ���

˵Ҫ�ã� --activate-module=src/modules/php4/libphp4.a�����Ǵ��ļ����������ڣ������Ҹij��� --activate-module=src/modules/php4/libmodphp4.a��������С���ô���£�

ע�� libphp4.a�ļ������Ͳ��ô��ڣ�apache ���̽���������

������ --activate-module=src/modules/php4/libphp4.a���Ű� PHP ����� Apache �ľ�̬ģ��ʱ������˵�ҵı����������� ANSI ��׼��

����һ�� Apache �󱨵Ĵ�����Ϣ�����µİ汾���Ѿ������ˡ�

������ --with-apxs ���� PHP ʱ�õ���ֵĴ�����Ϣ��

����Ҫ��������¡����ȣ�����ijЩԭ�� Apache ���� apxs Perl �ű�ʱ����ʱû����ȷ�ı���ͱ�DZ����ͽ����ˡ��ҵ���� apxs �ű��������� which apxs������ʱ���� /usr/local/apache/bin/apxs���� /usr/sbin/apxs���򿪲�����������µ��У�

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
����㿴���⼸�У����������������ǿ��ܰ����˽����ո������������ȷ��ֵ������"q()"���ij�������
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
�ڶ������ܵ�������������� Red Hat 6.1 �� 6.2 �з�����Red Hat ���е� apxs �ű����ˡ�������һ�У�
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
����㿴��������һ�У��ij�������
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
���������������û�����װ�� Apache���� ./configure֮��� make֮ǰ����һ�� make clean���

�� make�Ĺ����У��� microtime �г������кܶ� RUSAGE_֮��Ķ�����

��� makeʱ�����������������⣺

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

���ϵͳ���ˡ�����Ҫ��װһ��������� glibc �� glibc-devel �����޸� /usr/include�е��ļ������ PHP ����û���κι�ϵ��Ҫ֤ʵ��һ�㣬��������򵥵IJ��ԣ�

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
������ִ��������֪��ͷ�ļ����ˡ�

���� MySQL ���� PHP ʱ��������ȷ������configure�������� make�Ĺ����г������������µĴ�����Ϣ�� ext/mysql/ libmysqlclient /my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/ libmysqlclient /my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp'��������ô����

���ȣ�������Ҫ��ʶ����ֻ�Ǹ� ����������������������������Ϣͨ������ make���������ģ����Կ���������������һ���������󣬵�ʵ���ϲ��ǡ���Ȼ����������������ó�����������Ϣʱֹͣ������Ҳ��������������������ֵ��һ����ǣ�MySQL ��֧����Ĭ�ϴ򿪵ġ�

Note:

�� PHP 4.3.2 ���㽫�ڱ��루make�������󿴵���������֣�


Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

���������ҵ� PHP���������ҵ�����������Ŀǰ�� PHP �� ./configure�IJ����أ�

Ҫô�����������뵱ǰ�� PHP ��Դ�����в鿴 config.nice �ļ������û�У�ֻҪ���д˽ű���

<?php phpinfo(); ?>
������Ķ�����ʾ���������ô� PHP �� ./configure������

�� GD ��һ����� PHP ʱ��Ҫô����һ����ֵı������Ҫô������ʱ���� segfaults��

ȷ����� GD ��� PHP ������ʱʹ������ͬ����֧�ֿ⣨���� libpng����

������ PHP ʱ�ҿ���һЩ����Ĵ��󣬺������ˡ����õ��� Solaris����֪����û�й�ϵ��

������ PHP ʱʹ�÷� GNU �Ĺ��߻ᵼ�����⡣ȷ��ʹ�� GNU ������ȷ���ܹ���ȷ���� PHP�����磬�� Solaris ���治��ʹ�� SunOS BSD ���ݻ��� Solaris �汾�� sed�����У�����ʹ�� GNU ���� Sun POSIX (xpg4) �汾�� sed�Ϳ��ԡ�������ӣ� » GNU sed�� » GNU flex�� » GNU bison��