Mail Archives: cygwin/2004/08/13/00:27:32
Hello,
With self- built Apache, MySQL, OpenSLL and Mod_SSL I have found an
obscure "bug" in cygwin 1.5.10-3 that is not present in 1.5.9-1.
I am installing clean onto XP Pro (without the default inclusion of
Apache). I am then building OpenSSL, mod_SSL, and Apache from their
sources. I am installing the latest perl DBI and DBD::mysql module.
Everything is building and installing with successful "make test"
runs using the script below.
With Cygwin Core 1.5.9-1 I can successfully connect to a remote mysql
server from a perl script in both the shell and also from a perl
script called from a web page. Great!
With Cygwin Core 1.5.10-3 I can *NOT* connect to the remote mysql
server from a web page called script. Apache generates the error
DBI->connect(database=test;host=<my hostname>) failed: Can't create
TCP/IP socket (1)
The same script called from a command line perl CAN conenct to the db
without problem (after all the "make test" for DBD::mysql passed
100%)
I found one other reference to a similar error from an older version
without any resolution....
http://www.cygwin.com/ml/cygwin/2001-03/msg01748.html
To be clear...
everything compiles, tests, and installs without error using both
Cygwin Core 1.5.9-1 and Cygwin Core 1.5.10-3 however with 1.5.10-3 I
can not access any remote mysql databases from a web-called perl
script where a command line called script is fine...go figure.
There are no errors in building this kit with either version of the
Cygwin dll - just that the old version workls for me when the current
version does not.
If anyone wants me to test something to resolve why this happens I'm
happy to help...but otherwise I hope this helps the developers. Let
me know If I can help further then with this report!
Details on the scripts follow. If for nothing else this report will
be archived to help someone else with the install <g>
Cheers,
Shane
The perl test case script is:
###########################################
#!/usr/local/bin/perl
use DBI;
$database = "test";
$host = "host.somewhere.com";
$username = "user";
$password = "pass";
$dbh = DBI->connect("DBI:mysql:$database:$host", $username,
$password);
if (not $dbh) {
print "Content-type: text/html \n\n you cannot connect to the
database";
}
else { print "Content-type: text/html \n\n successful connect"; }
exit;
#################################
The script I use to clean build apache with mod_ssl, mod_auth_dbm and
mod_rewrite is...
#################################
#script to clean install to Cygwin
# openssl 0.9.7d
# mod_ssl 2.8.19-1.3.31
# apache 1.3.31 with staticaly linked modules
# could not get successful apache DSO install to work at all :(
#!/bin/sh
cd /usr/src/
# delete folders and re-extract clean from tarballs
rm -rf mod_ssl-2.8.19-1.3.31
rm -rf apache_1.3.31
rm -rf openssl-0.9.7d
tar -xzf mod_ssl-2.8.19-1.3.31.tar.gz
tar -xzf apache_1.3.31.tar.gz
tar -xff openssl-0.9.7d.tar.gz
# install.sh has minor tweak for cygwin to correctly add ".exe"
# find-dbm-lib has minor tweak for cygwin to find gdbm_compat for
mod_rewrite
cp /usr/src/find-dbm-lib /usr/src/apache_1.3.31/src/helpers/find-dbm-
lib
cp /usr/src/install.sh /usr/src/apache_1.3.31/src/helpers/install.sh
cd /usr/src/openssl-0.9.7d
./config
make
cd /usr/src/mod_ssl-2.8.19-1.3.31
./configure --with-apache=/usr/src/apache_1.3.31 --with-
ssl=/usr/src/openssl-0.9.7d --prefix=/usr/local/bin/apache --enable-
module=rewrite --enable-module=auth_dbm
cd /usr/src/apache_1.3.31
make
make install
(certificate install done separately)
#copy in my apache conf file
cp /usr/src/httpd.conf /usr/local/bin/apache/conf/httpd.conf
#################################
minor tweak to /apache_1.3.31/src/helpers/install.sh
change
if [ -f "$src.exe" ]; then
if [ -f "$src" ]; then
: # Cygwin [ test ] is too stupid to do [ -f "$src.exe" ] && [ ! -
f "$src" ]
else
ext=".exe"
fi
fi
to
if [ -f "$src.exe" ]; then
ext=".exe"
fi
for some reason the original screwed up adding .exe in my early
installs.
#################################
minor tweak to /apache_1.3.31/src/helpers/find-dbm-lib so gdbm is
found for mod_rewrite which for some reason could not find gdbm.
if ./helpers/TestCompile lib gdbm dbm_open; then
DBM_LIB="-lgdbm"
becomes
if ./helpers/TestCompile lib gdbm_compat dbm_open; then
DBM_LIB="-lgdbm_compat -lgdbm"
#################################
--
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/
- Raw text -