This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
More Apache/PHP installation puzzles
- From: <dave_d at boltblue dot com>
- To: <cygwin at cygwin dot com>
- Cc: <tolj at wapme-systems dot de>
- Date: Tue, 16 Sep 2003 16:10:22 +0100
- Subject: More Apache/PHP installation puzzles
This all started when I had trouble installing Apache/PHP (see earlier posts
Re: Apache/PHP installation puzzle). As this problem is a bit more general I
thought I would start a new thread.
In a nutshell, the PHP part of the installation fails without any obvious
errors. In order to find out what's going on I decided to remove every vestige
of Cygwin from the W2K box and re-install the minimum required to ivestigate
this problem.
This is the story .....
1. Install Cygwin with nano, apache, and mod-php4. NOTE. Install Cygwin 1.5.3-
1 because there are issues with 1.5.4-1 that prevent processes being stopped
properly.
2. Start the apache server ....
$ /usr/sbin/apachectl start
[Tue Sep 16 14:54:56 2003] [alert] httpd: Could not determine the server's fully
qualified domain name, using 192.168.40.12 for ServerName
/usr/sbin/apachectl start: httpd started
3. Using the Windoze browser, visit http://localhost/. See the expected
default Apache installation page - so far, so good.
4. Using the favourite nano editor, create the xyzzy.php script and put it
in /var/www/htdocs. The script contains the simple PHP function call <?phpinfo
()?> and nothing else.
5. Visit http://localhost/xyzzy.php and the script is simply presented on the
page - a clear indication that the PHP is not being translated.
6. Check out /etc/apache/httpd.conf and there is no mention of php in here.
What's needed are lines of the form:
LoadModule php4_module lib/apache/libphp4.dll
AddModule mod_php4.c
Add these and try again ....
$ /usr/sbin/apachectrl start
Syntax error on line 236 of /etc/apache/httpd.conf:
Cannot load /usr/lib/apache/libphp4.dll into server: dlopen: Win32 error 126
/usr/sbin/apachectrl start: httpd could not be started
7. As error 126 is basically 'file not found', we'll check for the existance of
the libphp4.dll.
First:
$ updatedb
Then:
$ locate libphp4
.... no trace of the DLL to be found!!!
8. Now this is interesting!
$ cd /usr
$ ls
doc etc include info local man sbin share src ssl tmp var
Note the lack of a lib directory. However...
$ cd lib
Administrator@zebedee /usr/lib
$
...?Que!!? How can one cd to a directory that doesn't exist. Not only that, but
$ ls
apache libc.a libhistory.a libxm12.a
...
...
libbz2.dll.a libgmon.a
And so /usr/lib exists but is partially invisible. Interestingly, Windows
can't see this directory either. Hence one possible explanation of why the dll
won't load.
9. Progressing further ....
$ cd /usr/lib/apache
$ ls
libproxy.dll mod_autoindex.dll mod_imap.dll mod_setenvif.dll
...
...
mod_auth_dbm.dll mod_headers.dll mod_rewrite.dll new
$ ls new
Administrator@zebedee /usr/lib
$
No trace of the missing dll - a possible second reason why the Windows load
failed.
10. Seems that something must be going wrong in the post install script too!
What we'll do is manually install the package and see what's going on. Copy
the .tar.bz2 file to / and then:
$ bunzip2 apache-php-4.3.0-2.tar.bz2
Administrator@zebedee /
$ tar -xvf apache-php-4.2.0-2.tar
etc/
etc/postinstall/
etc/postinstall/apache-php.sh
usr/
usr/doc/
usr/doc/Cygwin/
usr/doc/Cygwin/php-4.2.0-2.README
usr/doc/php-4.2.0-2/
usr/doc/php-4.2.0-2/CREDITS
usr/doc/php-4.2.0-2/INSTALL
usr/doc/php-4.2.0-2/LICENSE
usr/doc/php-4.2.0-2/NEWS
usr/lib/
usr/lib/apache/
usr/lib/apache/new/
usr/lib/apache/new/libphp4.dll
Administrator@zebedee /
$
This unpacks everything and doesn't run the post install script. Now we'll run
the post install script and see what's going on:
Administrator@zebedee /etc/postinstall
$ cd /etc/postinstall/
Administrator@zebedee /etc/postinstall
$ ./apache-php.sh
usage: rebase -b BaseAddress [-Vdv] [-o Offset] [-T FileList | -] Files...
Administrator@zebedee /etc/postinstall
$
So, it seems that either rebase is being called incorrectly or the argument
list is invalid.
11. The check the argument list, add the following line
to /etc/postinstall/apache-php.sh and re-execute it.
Add...
echo ${rebase_dlls} immediately following the line starting "rebase_dlls="$"
Re-running gives:
Administrator@zebedee /etc/postinstall
$ ./apache-php.sh
/usr/lib/apache/libphp4.dll /usr/bin/cygbz21.0.dll /usr/bin/cygcrypto.dll /usr/b
in/cygintl-1.dll /usr/bin/pq.dll /usr/bin/cygxml2-2.dll /usr/bin/cygz.dll /usr/b
in/cyggdbm.dll
usage: rebase -b BaseAddress [-Vdv] [-o Offset] [-T FileList | -] Files...
Administrator@zebedee /etc/postinstall
$
Checking the list of file names we find that
neither /usr/lib/apache/libphp4.dll nor
/usr/bin/cygcrypto.dll exists.
Looking at apache-php.sh I'm not sure that the call to rbase is right either -
but I've got to too many errors now.
So there we have it - the story of trying to install Apache/PHP.
I hope that I've provided enough information for the developers/maintainers to
quickly come to a solution as having PHP available in a mixed Linux/Window 2K
box will be very useful for development purposes.
Regards,
Dave
--------------------------------------------------------------
Sent with "Me-Mail", Boltblue's FREE mobile messaging service.
http://www.boltblue.com
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/