php-install Digest 5 Sep 2001 17:55:01 -0000 Issue 445

Topics (messages 4200 through 4208):

Php built in extensiond
        4200 by: Larry Cotton

Php built in extensions
        4201 by: Larry Cotton
        4208 by: Rasmus Lerdorf

Re: Installation problem with NT
        4202 by: Brad Harriger
        4205 by: Phil Driscoll

Php extensions - linking to external libs
        4203 by: Larry Cotton

Php extensions - linking to external libraries
        4204 by: Larry Cotton

php with java
        4206 by: Manfred Hansen

php 4.0.4 was working, now not
        4207 by: Doug

Administrivia:

To subscribe to the digest, e-mail:
        [EMAIL PROTECTED]

To unsubscribe from the digest, e-mail:
        [EMAIL PROTECTED]

To post to the list, e-mail:
        [EMAIL PROTECTED]


----------------------------------------------------------------------




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Imerge Limited                          Tel :- +44 (0)1954 783600 
Unit 6 Bar Hill Business Park           Fax :- +44 (0)1954 783601 
Saxon Way                               Web :- http://www.imerge.co.uk 
Bar Hill 
Cambridge 
CB3 8SL 
United Kingdom 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 






I've written some functions which I want to use as php extensions on linux.

I've downloaded php-4.0.6 and built it successfully.

I auto-generated the files using the instuctions in the Zend documenteation
at http://www.zend.com/apidoc/c269.php

They tell you to do something like this :
cd /usr/local/src/php4/ext
./ext_skel my_module --extname=module_name

The I edited the generated files to include some of the zend functions I've
already written and get rid of the page request init functions and added
another source file to Makefile.in. i also uncommented the line :
[  --with-phpwebinterface             Include phpwebinterface support])
in the config.m4 file

It then says to run the following commands :
./buildconf --with-phpwebinterface
./configure
vi ext/my_module/my_module.c
make

When I try to make the php I get an err message :
internal_functions.c:47: 'phpext_phpwebinterface_ptr' undeclared here <not
in a function>
internal_functions.c:47: initializer element for php_builtin_extensions[4]'
is not constant
make[2]: *** [internal_functions.lo] Error 1

I don't know when / how internal functions.c is generated, but when I run
all the configuration commands listed above it seems to include
phpext_phpwebinterface_ptr in the php_builtin_extensions[] array of module
pointers, buit for some reason does not #include php_phpwebinterface.h. When
I manually #include this file I still get the same error on make.

My php_phpwebextensions.h looks like :

#ifndef PHPWEBINTERFACE_H
#define PHPWEBINTERFACE_H

//#if HAVE_WEBPROD

#ifdef PHP_WIN32
#define PHP_WEBINTERFACE_API __declspec(dllexport)
#else
#define PHP_WEBINTERFACE_API
#endif

//webphpif_module_entry
#ifdef __cplusplus
extern "C" zend_module_entry phpwebinterface_module_entry;
#else
extern zend_module_entry phpwebinterface_module_entry;
#endif

#define phpwebinterface_module_ptr &phpwebinterface_module_entry

#include "PhpExportsV1.h"

#define phpext_phpwebinterface_ptr &phpwebinterface_module_entry

//#endif HAVE_WEBPROD

#endif //PHPWEBINTERFACE_H

Note :
PhpExportsV1.h simply declares the the exported functions using the zend
macros :
ZEND_MINIT_FUNCTION(phpwebinterface);
ZEND_MSHUTDOWN_FUNCTION(phpwebinterface);

Anyone have any idea what might be going wrong here ?

Cheers
Larry
.... rtc



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Imerge Limited                          Tel :- +44 (0)1954 783600 
Unit 6 Bar Hill Business Park           Fax :- +44 (0)1954 783601 
Saxon Way                               Web :- http://www.imerge.co.uk 
Bar Hill 
Cambridge 
CB3 8SL 
United Kingdom 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 






I would suggest using current PHP CVS at this point for custom extension
development.  There have been some changes in the API and you would need
to go back and fix your extensions anyway to get them to work with 4.0.7+

ext_skel has also changed quite a bit.  If you recreate your extension
using the current cvs version of ext_skel and post the results, I can give
you a hand.

-Rasmus

On Wed, 5 Sep 2001, Larry Cotton wrote:

> I've written some functions which I want to use as php extensions on linux.
>
> I've downloaded php-4.0.6 and built it successfully.
>
> I auto-generated the files using the instuctions in the Zend documenteation
> at http://www.zend.com/apidoc/c269.php
>
> They tell you to do something like this :
> cd /usr/local/src/php4/ext
> ./ext_skel my_module --extname=module_name
>
> The I edited the generated files to include some of the zend functions I've
> already written and get rid of the page request init functions and added
> another source file to Makefile.in. i also uncommented the line :
> [  --with-phpwebinterface             Include phpwebinterface support])
> in the config.m4 file
>
> It then says to run the following commands :
> ./buildconf --with-phpwebinterface
> ./configure
> vi ext/my_module/my_module.c
> make
>
> When I try to make the php I get an err message :
> internal_functions.c:47: 'phpext_phpwebinterface_ptr' undeclared here <not
> in a function>
> internal_functions.c:47: initializer element for php_builtin_extensions[4]'
> is not constant
> make[2]: *** [internal_functions.lo] Error 1
>
> I don't know when / how internal functions.c is generated, but when I run
> all the configuration commands listed above it seems to include
> phpext_phpwebinterface_ptr in the php_builtin_extensions[] array of module
> pointers, buit for some reason does not #include php_phpwebinterface.h. When
> I manually #include this file I still get the same error on make.
>
> My php_phpwebextensions.h looks like :
>
> #ifndef PHPWEBINTERFACE_H
> #define PHPWEBINTERFACE_H
>
> //#if HAVE_WEBPROD
>
> #ifdef PHP_WIN32
> #define PHP_WEBINTERFACE_API __declspec(dllexport)
> #else
> #define PHP_WEBINTERFACE_API
> #endif
>
> //webphpif_module_entry
> #ifdef __cplusplus
> extern "C" zend_module_entry phpwebinterface_module_entry;
> #else
> extern zend_module_entry phpwebinterface_module_entry;
> #endif
>
> #define phpwebinterface_module_ptr &phpwebinterface_module_entry
>
> #include "PhpExportsV1.h"
>
> #define phpext_phpwebinterface_ptr &phpwebinterface_module_entry
>
> //#endif HAVE_WEBPROD
>
> #endif //PHPWEBINTERFACE_H
>
> Note :
> PhpExportsV1.h simply declares the the exported functions using the zend
> macros :
> ZEND_MINIT_FUNCTION(phpwebinterface);
> ZEND_MSHUTDOWN_FUNCTION(phpwebinterface);
>
> Anyone have any idea what might be going wrong here ?
>
> Cheers
> Larry
> .... rtc
>
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Imerge Limited                          Tel :- +44 (0)1954 783600
> Unit 6 Bar Hill Business Park           Fax :- +44 (0)1954 783601
> Saxon Way                               Web :- http://www.imerge.co.uk
> Bar Hill
> Cambridge
> CB3 8SL
> United Kingdom
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>





After commenting out the Action application line, I'm asked what application I
would like to open the file with.

Phil Driscoll wrote:

> On Tuesday 04 September 2001 4:49 pm, Brad Harriger wrote:
> > I was accessing the file directly.
> Well that won't ever work - you have to access the file via a web server.
>
> > When I try requesting it via the
> > webserver, I get a 500 error with the following line in the error log:
> >
> > [Tue Sep 04 11:46:30 2001] [error] [client 127.0.0.1] Premature end of
> > script headers: c:/php/php.exe
>
> I'm not an Apache expert so hopefully someone else might chip in here with
> what might be the cause of this. I'd double check the configuration, and also
> check that if you put a plain .htm file in the same folder as your php file
> you can access that ok via the web server.
>
> Cheers
> --
> Phil Driscoll





On Wednesday 05 September 2001 1:31 pm, Brad Harriger wrote:
> After commenting out the Action application line, I'm asked what
> application I would like to open the file with.

Sorry - I just don't know enough about apache on Windows to help here. Maybe 
if you ask on the php-win list someone might have been there, done that.

-- 
Phil Driscoll




Hi

I have written a php extension which relies on external libraries.

Does anyone know what I need to do to link to these libraries when building
php ?

Cheers
Larry


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Imerge Limited                          Tel :- +44 (0)1954 783600 
Unit 6 Bar Hill Business Park           Fax :- +44 (0)1954 783601 
Saxon Way                               Web :- http://www.imerge.co.uk 
Bar Hill 
Cambridge 
CB3 8SL 
United Kingdom 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 






Help

Anyone out there know where and how I should sepecify external libraries to
link to ?

At the moment I have a line in my config.m4 which looks like :
EXTRA_LIBS="$EXTRA_LIBS -lwebprodssinterface -llibrcgateway -llibplaylist"

but whenever I build I get an error :
/usr/bin/ld: cannot open -lwebprodssinterface

I have LDPATH and LD_LIBRARY_PATH set to the directory containing these
libraries.

Anyone know how to specify the link directories and files in the php build
system ?

Cheers
Larry



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Imerge Limited                          Tel :- +44 (0)1954 783600 
Unit 6 Bar Hill Business Park           Fax :- +44 (0)1954 783601 
Saxon Way                               Web :- http://www.imerge.co.uk 
Bar Hill 
Cambridge 
CB3 8SL 
United Kingdom 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 






Hello,

here is my debug.log

CONFIGURE:   './configure' '--with-java=/usr/lib/java' '--with-mysql'
CC:         gcc
CFLAGS:     -g -O2
CPPFLAGS:    -DSUPPORT_UTF8
CXX:
CXXFLAGS:
INCLUDES:      -I$(top_builddir)/Zend -I/usr/src/php-4.0.6/ext/mysql/libmysql
LDFLAGS:
LIBS:       -l -lcrypt -lresolv -lm -ldl -lnsl  -lresolv
DLIBS:
SAPI:       cgi
PHP_RPATHS:
uname -a:   Linux edv-orga-18 2.2.19 #1 Sun Jun 24 15:06:27 EST 2001 i686 unknown
 
 gcc -o conftest -g -O2  -DSUPPORT_UTF8  conftest.c -l -lcrypt -lresolv -lm -ldl -lnsl 
 -lresolv 1>&5
 /usr/bin/ld: cannot find -l--library=crypt
 collect2: ld returned 1 exit status


 This is the debug.log from the machine Debian Woddy, but the same is by SUSE 7.2 too.

 yours sincerely 
         Manfred Hansen




I had the standard install of php 4 from RH7.1 and apache 1.3.19 and it was
working fine. It now returns blank objects for the php scripts and sometimes
just the script as text, even phpinfo doesn't work. I also have tomcat 3.3
and jGenerator 1.3.0 integrated into the apache server and both of those are
still working fine. I have uninstalled and reinstalled the package to no
avail. I also tried upgrading to php4.0.6 and that had the same results too.
Any help or insights would be greatly appreciated.

thanks,
doug




Reply via email to