æ¬ç¯ã¯ãæ§ç¯æã«çºçããå€ãã®äžè¬çãªãšã©ãŒãéãããã®ã§ãã
configure.inããconfigureã¹ã¯ãªãããçæããããã«ã¯ãGNU
autoconfããã±ãŒãžãå¿
èŠã§ããGitãµãŒããŒãããœãŒã¹ãå
¥æããåŸã
æäžäœã®ãã£ã¬ã¯ããªã§./buildconfãå®è¡ããŠäž
ããã(ãŸããconfigure ã«
--enable-maintainer-modeãªãã·ã§ã³ãä»ããŠå®
è¡ããå Žå以å€ã¯ãconfigureã¹ã¯ãªããã¯configure.in
ãã¡ã€ã«ãæŽæ°ãããéã«èªåçã«åæ§ç¯ãè¡ããŸããããã®ããã
configure.inã
倿Žãããå Žåã«ã¯å¿ããã«æåã§åæ§ç¯ãè¡ãå¿
èŠããããŸãã
åæ§ç¯ã®éã«è¡ãããããšã®ïŒã€ã¯ãconfigureãŸãã¯
config.statusã
å®è¡ããåŸãMakefileã®äžã®@VARIABLE@ã®ãããªç©ãèŠã€ããããšã§ãã)
configure/setupã¹ã¯ãªããã«ApacheãœãŒã¹ããªãŒã®æäžäœã®å Žæãæ å®ããå¿ èŠããããŸããããã¯ã--with-apache=/path/to/apache ãæå®ããã®ã§ãã£ãã--with-apache=/path/to/apache/src ã§ã¯ãªããšããããšã§ãã
./configure)
以äžã®ãããªãšã©ãŒã«ééããŸããã
ã€ã³ã¹ããŒã«ã®èª¬æãããèªã¿ã PHPã®ã³ã³ãã€ã«ã«ã¯flexãšbisonã®äž¡æ¹ãå¿ èŠã§ããããšã«çæããŠãã ããã ãœãŒã¹ããããã¯RPMã®ãããªããã±ãŒãžããbisonãšflexã ã€ã³ã¹ããŒã«ããŠãã ããã
Cããªããã»ããµããã³ãªã³ã«ã«æ¬¡ã®ããã«è¿œå ã§ãã©ã°ãæå®ããã ãšã«ãããconfigureã¹ã¯ãªãããããããã¡ã€ã«ãŸãã¯ã©ã€ãã©ãªã æšæºä»¥å€ã®å Žæã§æ¢ãããšãå¯èœãšãªããŸãã
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
bisonã®ããŒãžã§ã³ãæŽæ°ããå¿ èŠããããŸããææ°çã¯ã » http://www.gnu.org/software/bison/bison.htmlã«ãããŸãã
å€ãããŒãžã§ã³ã®makeã«ã¯ãfunctionsãã£ã¬ã¯ããªã«ãããã¡ã€ã«ã® ã³ã³ãã€ã«ããããã®ãåããã£ã¬ã¯ããªã«æ£ããå ¥ããªããã®ããã ãŸããcp *.o functionsã詊ãã«å®è¡ããŠãã make ãå床å®è¡ãã解決ãããã確èªããŠäžã ãã解決ãããå Žåã«ã¯ãGNU makeã®æè¿ã®ããŒãžã§ã³ã«æŽæ°ããã¹ã ã§ãã
æåŸã«é©åãªã©ã€ãã©ãªãå šãŠã€ã³ã¯ã«ãŒããããŠãããã©ãã 確èªããŠãã ãããããããã®ã¯ã'-ldl' ã æå®ããããŒã¿ããŒã¹ã®ãµããŒãæ©èœã«å¿ èŠãªã©ã€ãã©ãªã®æå®ãæ¬ ããŠãããšãããã®ã§ãã
äœåãã®äººãããApache ãšãªã³ã¯ããéã« 'libphp4.a' ã®çŽåŸã« '-ldl' ã远å ããå¿ èŠãããããšãå ±åãããŠããŸãã
ããã¯ãäœããã®çç±ã«ããPHPã¢ãžã¥ãŒã«ãèµ·åããŠããªãããšãæ å³ããŠããŸããå©ããæ±ãã質åãè¡ãåã«ãŸã以äžã確èªãã ããã
/path/to/binary/httpd -l
mod_php4.c ããªã¹ãã®äžã«ãªãå Žåãæ£ã
ããã€ããªãå®è¡ãããŠããŸãããæ£ãããã€ããªãèŠã€ããŠãã€
ã³ã¹ããŒã«ããŠãã ããã
Apache .conf ãã¡ã€ã«ã®ïŒã€ã«æ£ããMIMEå
ã远å ãããŠããããšã確èªããŠãã ãããããã¯ä»¥äžã®ããã«ãªããŸãã
AddType application/x-httpd-php .php
ãŸãããã®AddTypeã®è¡ãã
<Virtualhost> ãŸã㯠<Directory> ãããã¯ã®äžã«é
ãããŠããã¹ãçšã®ã¹ã¯ãªããã®å Žæã«é©çšã§ããŠããªããããªã
ãšããªãããšã確èªããŠãã ããã
--activate-module=src/modules/php4/libphp4.a
ãšæžããŠãããŸããããã¡ã€ã«ããããŸããããã®ããã
--activate-module=src/modules/php4/libmodphp4.aã«
倿ŽããŸãããããã¯ãã ãã§ããäœãèµ·ããŠããã®ã§ããã?
libphp4.aãã¡ã€ã«ã¯ãã®æç¹ã§ã¯ååšããªãããšããããšã«æ°ãã€ããŠãã ããã ãã®ãã¡ã€ã«ã¯ãApacheã®æ§ç¯æã«èªåçã«äœæãããŸãã
--activate-module=src/modules/php4/libphp4.a
ãæå®ããPHPãéçã¢ãžã¥ãŒã«ãšããŠçµã¿èŸŒãã§Apacheãæ§ç¯ããã
ãšããéã«ãã·ã¹ãã ãANSI察å¿ã§ã¯ãªããšãããšã©ãŒãçºçããŸãã
Apacheã®ãã®ãšã©ãŒã¡ãã»ãŒãžã¯çŽãããããããæ°ããããŒãžã§ã³ã§ ã¯ä¿®æŽãããŠããŸãã
ããã§ã¯ã確èªãã¹ãããšã3ç¹ãããŸãããŸããäœããã®çç±ã«ããã Apacheãapxs Perlã¹ã¯ãªãããæ§ç¯ããéã«é©åœãªã³ã³ãã€ã©ããã© ã°å€æ°ãä»ããªãã§æ§ç¯ãããŠããŸãããšãæã ãããŸãã 䜿çšãã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
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
my $CFG_LIBEXECDIR = 'modules'; # substituted via APACI install
my $CFG_LIBEXECDIR = '/usr/lib/apache'; # substituted via APACI install
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ã®åäœãšã¯å šãé¢ä¿ãããŸããã ããã瀺ãã«ã¯ã次ã®ãããªç°¡åãªãã¹ããè¡ã£ãŠã¿ãŠãã ããã
$ cat >test.c <<X #include <sys/resource.h> X $ gcc -E test.c >/dev/null
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'
äœãããããã®ãïŒ
ãŸããããã¯Warningã§ãã£ãŠèŽåœçãª
ãšã©ãŒã§ã¯ãªããšèªèããããšãéèŠã§ããmakeã®
æåŸã®ã»ãã§ãã®åºåããã°ãã°èŠãããããèŽåœçãªãšã©ãŒãš
æãããã¡ã§ããããã§ã¯ãããŸããããã¡ãããWarningã
èµ·ãããšã³ã³ãã€ã©ã忢ãããããªèšå®ãããŠããå Žåã¯å¥ã§ãã
ãŸããMySQLãµããŒãã¯ããã©ã«ãã§æ§ç¯ãããããšã«ã
çæããŠãã ããã
泚æ:
PHP4.3.2以éããã«ã(make)å®äºåŸã«ä»¥äžã®ãããªããã¹ããåºã ããšããããŸã:
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
çŸåšã€ã³ã¹ããŒã«ãããŠããPHPãæ§ç¯ããæã®ãã£ã¬ã¯ããªã«ãã config.nice ãã¡ã€ã«ãèŠããããããããã®ãã£ã¬ã¯ããªãç¡ãå Žåã¯
<?php phpinfo(); ?>ãªã³ã¯ããGDã©ã€ãã©ãªãšPHPãåãã©ã€ãã©ãª(äŸãã°libpng)ã«äŸåããŠããã ã©ããã確èªããŠãã ããã
PHP ã®ã³ã³ãã€ã«æã« é GNU ããŒã«ã䜿çšãããšåé¡ãåŒãèµ·ãããŸãã
PHP ãæ£ããã³ã³ãã€ã«ããã«ã¯ãGNU ããŒã«ã䜿çšããããšãå¿ããªãã§
ãã ãããããšãã°ãSolaris ã§äœ¿çšããã SunOS BSD äºæã® sed
ã Solaris çã® sed ã¯æ£ããåäœããŸããããããã
GNU çããã㯠Sun POSIX (xpg4) çã® sed ãªãããŸã
åããŸãã以äžãåç
§ãã ããã
» GNU sedã
» GNU flex ããã³
» GNU bison ã