Difference between revisions of "Talk:How to set up PHP under AOLserver"

From AOLserver Wiki
Jump to navigation Jump to search
Line 94: Line 94:
  
 
And so on. It should be nearly trivial to do this, and give PHP on AOLServer a very powerful advantage over PHP on Apache.
 
And so on. It should be nearly trivial to do this, and give PHP on AOLServer a very powerful advantage over PHP on Apache.
 
== PHP configure and make produce libphp5 without Ns_ModuleInit ==
 
 
PHP:
 
<pre>
 
./configure --enable-aolserver=/usr/lib/aolserver4 --enable-embed=shared
 
</pre>
 
 
Subsequently configure the libphp5.so module as described, and re-start AOLServer, in log:
 
<pre>
 
[08/Dec/2005:17:21:04][20896.16384][-main-] Notice: modload: loading '/usr/lib/aolserver4/bin/li
 
bphp5.so'
 
[08/Dec/2005:17:21:04][20896.16384][-main-] Warning: modload: could not find Ns_ModuleInit in /u
 
sr/lib/aolserver4/bin/libphp5.so
 
[08/Dec/2005:17:21:04][20896.16384][-main-] Fatal: modload: failed to load module 'libphp5.so'
 
</pre>
 
 
How fun is that. Unfortunately, the final resolution to my PHP bug report was that this is still "user error", "bogus with a capital 'B'", and that I am still using the wrong configuration options (without mention of the correct options).
 

Revision as of 23:29, 8 December 2005

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)
      • Thanks to PHP community, found the correct thing to pass to configure:
./configure --enable-aolserver=/usr/lib/aolserver4 --enable-shared

So it appears that AOLServer source is not needed other than aolserver-dev package (at least on Debian). For Debian, AOLServer 4 is build using install path "/usr/lib/aolserver4".

--Caveman 15:13, 8 December 2005 (EST)

        • Actually, this did not build shared module (libphp5.so) either. --Caveman 15:13, 8 December 2005 (EST)
          • Still having issues:
./configure --enable-aolserver=/usr/lib/aolserver4 --enable-embed=shared

Is the magic-cookie needed to get the configure script to attempt' to produce the shared library. Other non-working attempts that perhaps "should" have been correct was: "./configure --enable-aolserver=shared,/usr/lib/aolserver4". This (as well as --enabled-shared and --enable-shared=aolserver, among several others) did not produce a libphp5.so as expected. However I was assured "this is not a bug" with PHP.

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.