Difference between revisions of "Talk:How to set up PHP under AOLserver"
(→extending PHP to take advantage of AOLServer: added link) |
|||
Line 65: | Line 65: | ||
[http://www.webtechniques.com/archives/2001/01/junk/ Extending PHP By Sterling Hughes] | [http://www.webtechniques.com/archives/2001/01/junk/ Extending PHP By Sterling Hughes] | ||
+ | |||
+ | <pre> | ||
+ | sam@caveman:~/downloads/php.net/php-5.1.1/ext$ ./ext_skel --extname=nsdb | ||
+ | Creating directory nsdb | ||
+ | Creating basic files: config.m4 config.w32 .cvsignore nsdb.c php_nsdb.h CREDITS EXPERIMENTAL tests/001.phpt nsdb.php [done]. | ||
+ | |||
+ | To use your new extension, you will have to execute the following steps: | ||
+ | |||
+ | 1. $ cd .. | ||
+ | 2. $ vi ext/nsdb/config.m4 | ||
+ | 3. $ ./buildconf | ||
+ | 4. $ ./configure --[with|enable]-nsdb | ||
+ | 5. $ make | ||
+ | 6. $ ./php -f ext/nsdb/nsdb.php | ||
+ | 7. $ vi ext/nsdb/nsdb.c | ||
+ | 8. $ make | ||
+ | |||
+ | Repeat steps 3-6 until you are satisfied with ext/nsdb/config.m4 and | ||
+ | step 6 confirms that your module is compiled into PHP. Then, start writing | ||
+ | code and repeat the last two steps as often as necessary. | ||
+ | </pre> |
Revision as of 02:33, 9 December 2005
I cannot get php-5.1.1 to build with Debian 3.1 package of aolserver4 and aolserver4-dev (which is built with --prefix=/usr/lib/aolserver4):
sam@caveman:~/downloads/php.net/php-5.1.1$ ./configure --with-aolserver=/usr/lib/aolserver4 loading cache ./config.cache ... ... Configuring SAPI modules checking for AOLserver support... /usr/lib/aolserver4 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$
- 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)
- 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
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. The module loaded successfully and PHP scripts work as expected (see phpinfo output). --Caveman 19:05, 8 December 2005 (EST)
With trial and error, I was able to configure and compile against the Debian 3.1 packages as installed by default:
./configure --with-aolserver=/usr make "EXTRA_INCLUDES=-I/usr/include/tcl8.4 -I/usr/include/aolserver4"
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.
Extending PHP By Sterling Hughes
sam@caveman:~/downloads/php.net/php-5.1.1/ext$ ./ext_skel --extname=nsdb Creating directory nsdb Creating basic files: config.m4 config.w32 .cvsignore nsdb.c php_nsdb.h CREDITS EXPERIMENTAL tests/001.phpt nsdb.php [done]. To use your new extension, you will have to execute the following steps: 1. $ cd .. 2. $ vi ext/nsdb/config.m4 3. $ ./buildconf 4. $ ./configure --[with|enable]-nsdb 5. $ make 6. $ ./php -f ext/nsdb/nsdb.php 7. $ vi ext/nsdb/nsdb.c 8. $ make Repeat steps 3-6 until you are satisfied with ext/nsdb/config.m4 and step 6 confirms that your module is compiled into PHP. Then, start writing code and repeat the last two steps as often as necessary.