php-install Digest 24 Feb 2002 11:40:10 -0000 Issue 715

Topics (messages 6137 through 6140):

php java extension (php 4.1.1 and jdk1.4) not working
        6137 by: Sukhwinder Singh
        6138 by: Yasuo Ohgaki

./configure problem: says "test"
        6139 by: Dan Delaney

Webserver with php and cgi and suexec or cgiwrap - php-cgiwrap
        6140 by: Casper Gondelach

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]


----------------------------------------------------------------------
--- Begin Message ---
Hello,
I tried to compile php with Java support and faced these problems. My configuration is 
RedHat Linux 7.1, apache_1.3.23, php-4.1.1 and Jdk1.4 beta 2.

I must mention here that earlier php versions 4.0.6 (or earlier) and jdk1.2.2 worked 
without any problems (and without exporting LD_LIBRARY_PATH). Questions I have begin 
with @@@@ ( four @ symbols).

With php 4.1.1 and jdk1.4, I faced 100s of problems:

***************************************Results with Apache 1.3.23**********************

I first tried to compile php and apache with almost all options available as below: 

/////////////////////////////////////PHP////////////////////////////////////

./configure --prefix=/wwwroot/php --with-apache=/usr/src/apache_1.3.23 
--with-mod_charset --with-config-file-path=/wwwroot/php/ --with-openssl 
--with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-cpdflib 
--with-png-dir --with-jpeg-dir --with-tiff-dir --enable-ctype --with-curl 
--with-db3 --with-dom --enable-exif --enable-filepro --enable-ftp 
--with-gd --enable-gd-native-ttf --with-xpm-dir --with-freetype-dir=/usr 
--with-ttf --with-t1lib --with-gettext --with-gmp --with-hyperwave 
--with-iconv --with-imap --with-kerberos --with-imap-ssl --with-ircg 
--with-ldap --enable-mbstring --enable-mbstr-enc-trans 
--with-mcal=/usr/src/libmcal --with-mhash --with-mnogosearch=/usr/local/mnogosearch 
--with-mysql --with-pgsql --with-pspell --with-qtdom --enable-trans-sid --enable-shmop 
--with-snmp -enable-ucd-snmp-hack --enable-sockets --with-regex=php --with-swf 
--enable-wddx --with-expat-dir=/usr/local --enable-xslt --with-xslt-sablot 
--with-yaz=/usr/local/lib --enable-yp --with-zip --with-pdflib 
--enable-versioning --with-tsrm-st --with-tsrm-pthreads 
--enable-track-vars --enable-overload --with-mcrypt 
--with-java=/usr/java/j2sdk1.4.0 --enable-sysvsem --enable-sysvshm 
--with-xmlrpc

////////////////////////////////////////APACHE////////////////////////////////////

./configure --prefix=/wwwroot --activate-module=src/modules/php4/libphp4.a 
--with-perl=/usr/bin/perl --enable-module=auth_anon --enable-module=auth_dbm 
--enable-module=auth_db --enable-module=auth_digest --enable-module=cern_meta 
--enable-module=example --enable-module=expires --enable-module=headers 
--enable-module=info --enable-module=log_agent --enable-module=log_referer 
--enable-module=mime_magic --enable-module=mmap_static --enable-module=proxy 
--enable-module=rewrite --enable-module=so 
--enable-module=speling --enable-module=unique_id --enable-module=usertrack 
--enable-module=vhost_alias
////////////////////////////////////////////////////////////////////////////////////

No libphp_java.so was created with these options under /usr/src/php-4.1.1/modules or 
under /usr/src/php-4.1.1/ext/java and only libphp_java.a was created. Under 
/wwwroot/php/lib/php/20010901 also only libphp_java.a was installed after make install.

Then thinking that java support might have been built in with this version. I tried to 
access sample jver.php file. But message, unable to create instance of non-existing 
class etc. was displayed.

@@@@What is the problem above. Is there any way to enable java support with only 
static libphp_java.a.


Then I tried to compile php with only --with-apache=/usr/src/apache_1.3.23 and 
--with-java=/usr/java/j2sdk1.4.0 options and this time libphp_java.so was created. But 
java didn't work (even after enabling [java] in php.ini and exporting LD_LIBRARY_PATH 
as mentioned below).

I wanted to enable other php options so I deleted apache and php source and install 
directories and tried to install php again as apache shared module (libphp4.so) with 
following options

//////////////////////////////PHP////////////////////////////////////

./configure --prefix=/wwwroot/php --with-apxs=/wwwroot/bin/apxs 
--with-mod_charset --with-config-file-path=/wwwroot/php/ --with-openssl 
--with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-cpdflib 
--with-png-dir --with-jpeg-dir --with-tiff-dir --enable-ctype --with-curl 
--with-db3 --with-dom --enable-exif --enable-filepro --enable-ftp 
--with-gd --enable-gd-native-ttf --with-xpm-dir --with-freetype-dir=/usr 
--with-ttf --with-t1lib --with-gettext --with-gmp --with-hyperwave 
--with-iconv --with-imap --with-kerberos --with-imap-ssl --with-ircg 
--with-ldap --enable-mbstring --enable-mbstr-enc-trans 
--with-mcal=/usr/src/libmcal --with-mhash 
--with-mnogosearch=/usr/local/mnogosearch --with-mysql --with-pgsql 
--with-pspell --with-qtdom --enable-trans-sid --enable-shmop --with-snmp 
-enable-ucd-snmp-hack --enable-sockets --with-regex=php --with-swf 
--enable-wddx --with-expat-dir=/usr/local --enable-xslt --with-xslt-sablot 
--with-yaz=/usr/local/lib --enable-yp --with-zip --with-pdflib 
--enable-versioning --with-tsrm-st --with-tsrm-pthreads 
--enable-track-vars --enable-overload --with-mcrypt 
--with-java=/usr/java/j2sdk1.4.0 --enable-sysvsem --enable-sysvshm 
--with-xmlrpc

///////////////////////////////////APACHE///////////////////////////////////////

./configure --prefix=/wwwroot --with-perl=/usr/bin/perl 
--enable-module=auth_anon --enable-module=auth_dbm --enable-module=auth_db
--enable-module=auth_digest --enable-module=cern_meta 
--enable-module=example --enable-module=expires --enable-module=headers 
--enable-module=info --enable-module=log_agent --enable-module=log_referer 
--enable-module=mime_magic --enable-module=mmap_static 
--enable-module=proxy --enable-module=rewrite --enable-module=so 
--enable-module=speling --enable-module=unique_id 
--enable-module=usertrack --enable-module=vhost_alias

This time libphp_java.so was created and installed.

I enabled java support in php.ini as below:

[Java]
java.home=/usr/java/j2sdk1.4.0:/wwwroot/htdocs
java.class.path=/wwwroot/php/lib/php/php_java.jar
extension_dir=/wwwroot/php/lib/php/20010901
extension=libphp_java.so
java.library=/usr/java/j2sdk1.4.0/jre/lib/i386/client/libjvm.so

With above options libphp_java.so was shown as loaded by phpinfo().

When I tried to access that sample file pro vied with java extension (jver.php) it 
produced error that libjvm.so was unable to load libjava.so.

Then I exported LD_LIBRARY_PATH as:
export 
LD_LIBRARY_PATH=/usr/java/j2sdk1.4.0/jre/lib/i386/native_threads:/usr/java/j2sdk1.4.0/jre/lib/i386:/usr/java/j2sdk1.4.0/jre/lib/i386/client;

Then I restarted apache from same shell in which I exported LD_LIBRARY_PATH.
This time when I accessed jver.php browser sent the request and just waited and waited 
and then exited with some message like network error etc. I had enabled php error 
logging but nothing was entered in that file. Then when I looked at apache error_log I 
found so segmentation fault produced by php:

//////////////////////////////////////////////////////////////////////////////
[Sat Feb 23 20:51:09 2002] [notice] Digest: generating secret for digest 
[Sat Feb 23 20:51:48 2002] [notice] child pid 704 exit 
signal Segmentation fault (11)
[Sat Feb 23 20:52:55 2002] [notice] child pid 703 exit 
signal Segmentation fault (11)
[Sat Feb 23 20:53:22 2002] [notice] child pid 706 exit 
signal Segmentation fault (11) // errors produced by php
authentication ...
/////////////////////////////////////////////////////////////////////////////////

Then I accessed jver.php again and these messages increased in apache error_log. I 
knew these errors were due to some problem in php. But I don't know what is the 
problem.

I changed java settings in php.ini as below but it still didn't work and same error 
("network error and segmentation fault in apache error_log")

/////////////////////////////////////////////////////////
[Java]
java.home=/usr/java/j2sdk1.4.0:/wwwroot/htdocs
java.class.path=/wwwroot/php/lib/php/php_java.jar
extension_dir=/wwwroot/php/lib/php/20010901
extension=libphp_java.so
java.library=/usr/java/j2sdk1.4.0/jre/lib/i386/libjava.so // this was changed
///////////////////////////////////////////////////////////////////////////////

------With JDK 1.2.2 it worked------------------------------------

Then thinking that there might be problem with Jdk1.4, I installed Jdk1.3 and then 
Jdk1.2.2. With Jdk1.2.2 I compiled every thing again from beginning and configure 
options changed to --with-apache=/usr/src/apache_1.3.23 and --with-java changed 
according to jdk1.2.2 paths. libphp_java.so was produced this time. When jver.php was 
accessed this time errors were about unable to find libjvm.so and other libs etc.
I exported LD_LIBRARY_PATH with paths of Jdk1.2.2 and restarted apache. Finally this 
time it worked and Java Version was displayed.

I added this export to /root/.bashsrc and then to /etc/profile and finally in 
/etc/httpd start function but this variable wasn't set and I had to manually export 
LD_LIBRARY_PATH every time and then restart apache only then java worked.

@@@@Where should I add this export command so that I don't have to manually type this 
every time before starting apache.


*****************************Result with APACHE 2****************************

Then I tried to compile php with apache 2 beta with options changed to
--with-apache=/usr/src/httpd-2_0_28 but php didn't compile because I think source 
structure of apache 2.0 is different from apache 1.3.

Then I tried option --with-apxs2=/usr/src/httpd-2_0_28 and this time --with-xmlrpc 
option produced some errors so I removed --with-xmlrpc.

Finally, it compiled and a shared module was produced under apache modules directory. 
LoadModule php4_module entry was automatically made by php install in httpd.conf. I 
added this option in httpd.conf

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>

and then restarted apache but php didn't work and segmentation fault message was added 
to httpd.conf.

@@@@@Does php 4.1.1 support apache 2.0 and --with-apache option or only with-apxs2 
option is supported and why --with-xmlrpc produces errors when used with apache 2.

I have tried different combinations and different options, about 20-30 (each time 
compiled php and apache after make distclean) times on my slow Pentium 1 computer in 
last two months. It takes 50 minutes every time. So please try to find solution to 
this problem.
--- End Message ---
--- Begin Message ---
Try JDK 1.2 if you are using 4.1.1.

Sukhwinder Singh wrote:
> Hello,
> I tried to compile php with Java support and faced these problems. My configuration 
>is RedHat Linux 7.1, apache_1.3.23, php-4.1.1 and Jdk1.4 beta 2.
> 
> I must mention here that earlier php versions 4.0.6 (or earlier) and jdk1.2.2 worked 
>without any problems (and without exporting LD_LIBRARY_PATH). Questions I have begin 
>with @@@@ ( four @ symbols).
> 
> With php 4.1.1 and jdk1.4, I faced 100s of problems:
> 

-- 
Yasuo Ohgaki

--- End Message ---
--- Begin Message ---
Hi everybody. I just tried to install php 4.1.1 on a FreeBSD 4.5 
machine. When I do ./configure I get the following first, before it 
goes about configuring:

    creating cache ./config.cache
    test: 33

    Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002
    Free Software Foundation, Inc: bad number
    test: (GNU: bad number


Anyone know what this is all about? I don't remember seeing this in 
earlier versions of PHP I've installed.

Thanks
--Dan

--- End Message ---
--- Begin Message ---
Hi there,

I am searching now for weeks to find the best way to secure my webserver. I want users 
to be able to run cgi and php scripts. For the securtity all the scripts have to run 
under there own names. All the users that may use scripts, have a virtual host.

I tried with suexec. It works perfect, no problem. But at the tot of every php script, 
you have to add #!/usr/bin/php, witch gives a lot of trouble to users, by example when 
scripts are run by webserver from outside and the same script is also included (that 
the line should not exist). I couldn't find with the suexec configuration how to 
"solve" this. Anybody has an idea.

Next thing i tried was the cgiwrapper. With a patch you can make 2, a cgiwrap and a 
php-cgiwrap, and then the first line isn't nesesarry anymore. Problem now, He looks 
after directory names, so all virtualhosts doesn't work, because he can't find the 
right user. 

The question now. What is the best and most secure way to solve this?

Greetings,

Casper Gondelach
--- End Message ---

Reply via email to