Talk:How to set up PHP under AOLserver

From AOLserver Wiki
Jump to navigation Jump to search

I've downloaded the aolserver src both directly and via the Debian source package, but cannot get php-5.1.1 to build:

sam@caveman:~/downloads/php.net/php-5.1.1$ ./configure --with-aolserver --with-aolserver-src=/home/sam/downloads/aolserver.org/aolserver-4.0.10
aolserver-4.0.10             aolserver-4.0.10-src.tar.gz
sam@caveman:~/downloads/php.net/php-5.1.1$ ./configure --with-aolserver --with-aolserver-src=/home/sam/downloads/aolserver.org/aolserver-4.0.10 --enable-shared
loading cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether gcc and cc understand -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for AIX... no
checking whether ln -s works... yes
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking for re2c... re2c
checking for re2c version... invalid
configure: warning: You will need re2c 0.98 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking for bison... bison -y
checking for bison version... 1.875 (ok)
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for working const... yes
checking for flex version... invalid
configure: warning: flex versions supported for regeneration of the Zend/PHP parsers: 2.5.4  (found: 2.5.31).
checking whether to force non-PIC code in shared modules... yes
checking for pthreads_cflags... -pthread
checking for pthreads_lib...

Configuring SAPI modules
checking for AOLserver support... yes
configure: error: Please specify the path to the source distribution of AOLserver using --with-aolserver-src=DIR
sam@caveman:~/downloads/php.net/php-5.1.1$
sam@caveman:~/downloads/php.net/php-5.1.1$ ls /home/sam/downloads/aolserver.org/aolserver-4.0.10
ChangeLog   configure     index.html     nscgi  nsext   nssock             tcl
Makefile    configure.in  ini2tcl.tcl    nscp   nslog   nsssl              tcl2ini.tcl
README      doc           install-sh     nsd    nspd    nsthread           tests
aclocal.m4  include       license.terms  nsdb   nsperm  sample-config.tcl  win32
sam@caveman:~/downloads/php.net/php-5.1.1$

Perhaps I am simply an idiot (would not be the first time) but something "no longer works".

  • I only ever tested this against PHP 4.3.7 -- I don't know what is required to make it work with PHP 5.1.1. If you figure it out, please update the page. -- Dossy 12:05, 7 December 2005 (EST)
    • I opened a PHP bug issue for this: [1] --Caveman 14:05, 8 December 2005 (EST)
      • This may be an issue more with the way Debian 3.1 installs AOLServer 4 than anything else. The "proper" PHP configure command should be:
./configure --with-aolserver=/path/to/installed/aolserver

Debian 3.1 configures AOLServer with a prefix of "/usr/lib/aolserver4". However, using this as the "/path/to/installed/aolserver" results in the same error and a request for "--with-aolserver-src".

        • I configured and installed aolserver4 from source into "/home/sam/aolserver". PHP configure finally completed successfully. However, PHP compile still failed:
/bin/sh /home/sam/downloads/php.net/php-5.1.1/libtool --silent --preserve-dup-deps --mode=compile /home/sam/downloads/php.net/php-5.1.1/meta_ccld  -Isapi/aolserver/ -I/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/ -DPHP_ATOM_INC -I/home/sam/downloads/php.net/php-5.1.1/include -I/home/sam/downloads/php.net/php-5.1.1/main -I/home/sam/downloads/php.net/php-5.1.1 -I/home/sam/aolserver/include -I/usr/include/libxml2 -I/home/sam/downloads/php.net/php-5.1.1/ext/date/lib -I/home/sam/downloads/php.net/php-5.1.1/TSRM -I/home/sam/downloads/php.net/php-5.1.1/Zend  -D_REENTRANT  -g -O2 -pthread -DZTS  -prefer-non-pic -c /home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c -o sapi/aolserver/aolserver.lo
In file included from /home/sam/aolserver/include/ns.h:62,
                 from /home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:49:
/home/sam/aolserver/include/nsthread.h:125:17: tcl.h: No such file or directory
In file included from /home/sam/aolserver/include/ns.h:62,
                 from /home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:49:
/home/sam/aolserver/include/nsthread.h:178: error: syntax error before '*' token
/home/sam/aolserver/include/nsthread.h:215: error: syntax error before '*' token
/home/sam/aolserver/include/nsthread.h:294: error: syntax error before '*' token
In file included from /home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:49:
/home/sam/aolserver/include/ns.h:275: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:276: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:277: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:284: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:287: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:442: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:446: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:455: error: syntax error before "Ns_CacheSearch"
/home/sam/aolserver/include/ns.h:455: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:507: error: syntax error before "Ns_CacheSearch"
/home/sam/aolserver/include/ns.h:508: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:545: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:546: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:571: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:575: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:576: error: syntax error before "Tcl_Channel"
/home/sam/aolserver/include/ns.h:580: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:581: error: syntax error before "Tcl_Channel"
/home/sam/aolserver/include/ns.h:585: error: syntax error before "Tcl_Encoding"
/home/sam/aolserver/include/ns.h:586: error: syntax error before "Ns_ConnGetEncoding"
/home/sam/aolserver/include/ns.h:586: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:587: error: syntax error before "Tcl_Encoding"
/home/sam/aolserver/include/ns.h:588: error: syntax error before "Ns_ConnGetUrlEncoding"
/home/sam/aolserver/include/ns.h:588: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:617: error: syntax error before "Tcl_Encoding"
/home/sam/aolserver/include/ns.h:629: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:630: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:631: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:643: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:644: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:645: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:646: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:647: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:648: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:649: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:649: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:650: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:672: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:764: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:765: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:771: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:772: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:778: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:780: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:782: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:784: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:850: error: syntax error before "Ns_GetEncoding"
/home/sam/aolserver/include/ns.h:850: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:851: error: syntax error before "Ns_GetFileEncoding"
/home/sam/aolserver/include/ns.h:851: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:852: error: syntax error before "Ns_GetTypeEncoding"
/home/sam/aolserver/include/ns.h:852: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:853: error: syntax error before "Ns_GetCharsetEncoding"
/home/sam/aolserver/include/ns.h:853: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:892: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:893: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:894: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:895: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:896: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:904: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:916: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:932: error: syntax error before "Tcl_DString"
/home/sam/aolserver/include/ns.h:966: error: syntax error before "Tcl_Channel"
/home/sam/aolserver/include/ns.h:1095: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1102: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1104: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1111: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1112: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1115: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1116: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1117: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1117: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:1118: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1119: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1119: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:1120: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1122: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1123: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1133: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1134: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1135: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1136: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1136: warning: data definition has no type or storage class
/home/sam/aolserver/include/ns.h:1143: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1144: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1145: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1146: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1152: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1162: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1168: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1170: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1172: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1174: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1181: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1182: error: syntax error before '*' token
/home/sam/aolserver/include/ns.h:1221: error: syntax error before '*' token
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c: In function `php_ns_request_ctor':
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:428: error: `Tcl_DString' undeclared (first use in this function)
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:428: error: (Each undeclared identifier is reported only once
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:428: error: for each function it appears in.)
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:428: error: syntax error before "ds"
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:438: error: `ds' undeclared (first use in this function)
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:442: warning: passing arg 1 of `strlen' makes pointer from integer without a cast
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:442: warning: passing arg 2 of `memcpy' makes pointer from integer without a cast
/home/sam/downloads/php.net/php-5.1.1/sapi/aolserver/aolserver.c:442: warning: passing arg 1 of `__strdup' makes pointer from integer without a cast
make: *** [sapi/aolserver/aolserver.lo] Error 1

This was obviously an error finding "tcl.h". I manually edited the PHP "Makefile" and set:

EXTRA_INCLUDES = -I/usr/include/tcl8.4

This allowed PHP compilation to complete.

extending PHP to take advantage of AOLServer

http://aolserver.org/docs/devel/c/api/c-ch3.htm#37064

proposal: write a PHP extension to provide PHP functions to access AOLServer database pools (and perhaps other important features like shared memory).

In other words, provide PHP functions:

ns_db_gethandle
ns_db_select

And so on. It should be nearly trivial to do this, and give PHP on AOLServer a very powerful advantage over PHP on Apache.