Ben <mailto:ben@xxxxxxxxxxxxxx> wrote: ... > vi apr_dbd_mysql.c #rewrite the functions dbd_mysql_error and > dbd_mysql_check_conn as follows - > /*---------------------------- apr_dbd_mysql.c > ---------------------------------*/ > //Rewrite function dbd_mysql_check_conn (5 lines at line 744) ... > return "mysql error: VERSION_ERROR"; case CR_WRONG_HOST_INFO: > return "mysql error: WRONG_HOST_INFO"; case CR_WRONG_LICENSE: > return "mysql error: WRONG_LICENSE"; default: return "unspecified > mysql error"; } } } > > / > *------------------------------------------------------------- > -------*/ > Make sure that the mysql file is now included in dbd - Ben, I have setup a new testserver because I'm getting tired of not getting this to work: it's a clean install without much installed. I installed MySQL-5.0.24a from source into /usr/local, set it up (have it running), modified /etc/ld.so.conf and ran ldconfig. I downloaded httpd-2.2.3 and apr_dbd_myqsl.c again and applied your proposed changes to all those files. I'm using the apr/apr-util that is included with httpd-2.2.3. ============================= I have to modify srclib/apr-util/dbd/apr_dbd_mysql.c because it just doesn't include the mysql.h and errmsg.h files on line 48: /* #ifdef HAVE_MYSQL_H #include <mysql.h> #include <errmsg.h> #elif defined(HAVE_MYSQL_MYSQL_H) #include <mysql/mysql.h> #include <mysql/errmsg.h> #endif */ #include "/usr/local/include/mysql/mysql.h" #include "/usr/local/include/mysql/errmsg.h" As far as I can tell, HAVE_MYSQL_H or HAVE_MYSQL_MYSQL_H are never defined but maybe I'm not looking in the right place (httpd source, mysql.h, don't know what else).. ============================= When doing "configure" for httpd, I get the following errors: checking for Berkeley DB... found db4 checking for default DBM... sdbm (default) setting APRUTIL_EXPORT_LIBS to "-ldb-4.2" setting APRUTIL_LIBS to "-ldb-4.2" /path/to/httpd-2.2.3/srclib/apr-util/configure: line 31266: APU_CHECK_DBD: command not found /path/to/httpd-2.2.3/srclib/apr-util/configure: line 31267: APU_CHECK_DBD_MYSQL: command not found /path/to/httpd-2.2.3/srclib/apr-util/configure: line 31268: APU_CHECK_DBD_SQLITE3: command not found /path/to/httpd-2.2.3/srclib/apr-util/configure: line 31269: APU_CHECK_DBD_SQLITE2: command not found srclib/apr-util/configure reads on line 31266: APU_CHECK_DBD APU_CHECK_DBD_MYSQL APU_CHECK_DBD_SQLITE3 APU_CHECK_DBD_SQLITE2 I don't think that is correct.. If I'm not mistaken, this configure was built when running srclib/apr-util/buildconf ? Now, srclib/apr-util/include/apu.h reads on line 81: #define APU_HAVE_PGSQL @apu_have_pgsql@ #define APU_HAVE_MYSQL @apu_have_mysql@ #define APU_HAVE_SQLITE3 @apu_have_sqlite3@ #define APU_HAVE_SQLITE2 @apu_have_sqlite2@ I didn't see this before. I modified these lines into: #define APU_HAVE_PGSQL 0 #define APU_HAVE_MYSQL 1 #define APU_HAVE_SQLITE3 0 #define APU_HAVE_SQLITE2 0 ============================= When running make, I get these errors (sorry for the wrapping..): /path/to/httpd-2.2.3/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `mysql_thread_end' /path/to/httpd-2.2.3/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `mysql_stmt_init' .... /path/to/httpd-2.2.3/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `mysql_stmt_fetch_column' /path/to/httpd-2.2.3/srclib/apr-util/.libs/libaprutil-1.so: undefined reference to `mysql_stmt_execute' collect2: ld returned 1 exit status make[2]: *** [htdigest] Error 1 make[2]: Leaving directory `/path/to/httpd-2.2.3/support' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/path/to/httpd-2.2.3/support' make: *** [all-recursive] Error 1 I modified srclib/apr-util/Makefile on line 13 to add: INCLUDES = [...] -I/usr/local/include/mysql APRUTIL_LDFLAGS = [...] -L/usr/local/lib/mysql APRUTIL_LIBS = [...] -lmysqlclient_r ============================= make clean && make I *have* to make these changes to get it to work. I get no errors anymore so I installed Apache. ============================= Next I configured httpd.conf to test if DBD works. DBDriver mysql DBDPersist Off DBDMin 1 DBDKeep 1 DBDMax 1 #DBDExptime 10 DBDParams "host=localhost dbname=apache user=root pass=<root_pass>" LogLevel debug <Directory /> AuthType Basic AuthName "DBD authentication" AuthBasicProvider dbd Require valid-user AuthDBDUserPWQuery "SELECT pass FROM users WHERE user=%s" </Directory> I don't care I'm using root to access the database right now; this is only a test setup, only used by myself and I want to make sure I'm able to access the database. apachectl restart I browse to the page, get the logon dialog box and after I enter my credentials it bails out with an error 500. error_log says this: [Wed Sep 20 22:34:38 2006] [notice] SIGHUP received. Attempting to restart [Wed Sep 20 22:34:38 2006] [notice] Digest: generating secret for digest authentication ... [Wed Sep 20 22:34:38 2006] [notice] Digest: done [Wed Sep 20 22:34:38 2006] [info] mod_unique_id: using ip addr 10.0.1.254 [Wed Sep 20 22:34:39 2006] [info] Init: Seeding PRNG with 136 bytes of entropy [Wed Sep 20 22:34:39 2006] [info] Init: Generating temporary RSA private keys (512/1024 bits) [Wed Sep 20 22:34:39 2006] [info] Init: Generating temporary DH parameters (512/1024 bits) [Wed Sep 20 22:34:39 2006] [info] Init: Initializing (virtual) servers for SSL [Wed Sep 20 22:34:39 2006] [info] Server: Apache/2.2.3, Interface: mod_ssl/2.2.3, Library: OpenSSL/0.9.8c [Wed Sep 20 22:34:39 2006] [notice] Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.8c DAV/2 configured -- resuming normal operations [Wed Sep 20 22:34:39 2006] [info] Server built: Sep 20 2006 22:04:42 [Wed Sep 20 22:34:39 2006] [debug] prefork.c(991): AcceptMutex: sysvsem (default: sysvsem) [Wed Sep 20 22:35:16 2006] [crit] (20014)Internal error: DBD: Can't connect to mysql. Null returned using parms: host=localhost dbname=apache user=root pass=<root_pass> [Wed Sep 20 22:35:16 2006] [error] [client 10.0.1.1] Error looking up <me> in database ============================= Well, time to check if root can access the database (that would be something..). $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 28 to server version: 5.0.24a Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use apache Database changed mysql> select Id from users; +----+ | Id | +----+ | 1 | | 2 | | 3 | +----+ 3 rows in set (0.00 sec) mysql> I'm sure you got it to work because otherwise you surely wouldn't have written these buildsteps, but I can't get DBD-MySQL to work and I really don't know what I seem to be doing wrong here. ;-\ Grts, Rob --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx