Hi! I installed apache2, php5 and mysql5 through macports and the installation went great. I added the LoadModule line for php5 and tried to start Apache2. The problem is that apache doesn't want to start. Apache prints this message to error_log: dyld: /opt/local/apache2/bin/httpd Undefined symbols: _sqlite3_bind_parameter_count _sqlite3_bind_text _sqlite3_changes _sqlite3_close _sqlite3_column_bytes _sqlite3_column_count _sqlite3_column_name _sqlite3_column_text _sqlite3_column_type _sqlite3_errmsg _sqlite3_finalize _sqlite3_free _sqlite3_mprintf _sqlite3_open _sqlite3_prepare _sqlite3_reset _sqlite3_step Apache starts without any problems if I remove the LoadModule line for the php5 module. My spec: Panther 10.3.9 Macport version 1.320 Any ideas how this can be solved? //Patrik J
On Jan 26, 2007, at 13:08, Patrik Johansson wrote:
I installed apache2, php5 and mysql5 through macports and the installation went great. I added the LoadModule line for php5 and tried to start Apache2.
The problem is that apache doesn't want to start. Apache prints this message to error_log: dyld: /opt/local/apache2/bin/httpd Undefined symbols: _sqlite3_bind_parameter_count _sqlite3_bind_text _sqlite3_changes _sqlite3_close _sqlite3_column_bytes _sqlite3_column_count _sqlite3_column_name _sqlite3_column_text _sqlite3_column_type _sqlite3_errmsg _sqlite3_finalize _sqlite3_free _sqlite3_mprintf _sqlite3_open _sqlite3_prepare _sqlite3_reset _sqlite3_step
Apache starts without any problems if I remove the LoadModule line for the php5 module.
My spec: Panther 10.3.9 Macport version 1.320
Any ideas how this can be solved?
It sounds like you need sqlite3, and you don't have it. On my 10.4.8 system, sqlite3 exists here: /usr/lib/libsqlite3.dylib It's provided by BaseSystem.pkg, so I doubt there could be a 10.4 system without that file. But I'm not sure about 10.3.9. Do you have the file /usr/lib/libsqlite3.dylib? Please let us know. If not, it's possible that Apple didn't ship sqlite3 with Mac OS X until 10.4.0. If that is the case, then for Mac OS X versions earlier than that, we should add a dependency on the sqlite3 port to the php5 portfile.
Ryan Schmidt <ryandesign@macports.org> on Friday, January 26, 2007 at 12:48 PM -0800 wrote:
I installed apache2, php5 and mysql5 through macports and the installation went great. I added the LoadModule line for php5 and tried to start Apache2.
The problem is that apache doesn't want to start. Apache prints this message to error_log: dyld: /opt/local/apache2/bin/httpd Undefined symbols: _sqlite3_bind_parameter_count _sqlite3_bind_text _sqlite3_changes _sqlite3_close _sqlite3_column_bytes _sqlite3_column_count _sqlite3_column_name _sqlite3_column_text _sqlite3_column_type _sqlite3_errmsg _sqlite3_finalize _sqlite3_free _sqlite3_mprintf _sqlite3_open _sqlite3_prepare _sqlite3_reset _sqlite3_step
Apache starts without any problems if I remove the LoadModule line for the php5 module.
My spec: Panther 10.3.9 Macport version 1.320
Any ideas how this can be solved?
It sounds like you need sqlite3, and you don't have it.
On my 10.4.8 system, sqlite3 exists here:
/usr/lib/libsqlite3.dylib
It's provided by BaseSystem.pkg, so I doubt there could be a 10.4 system without that file. But I'm not sure about 10.3.9.
Do you have the file /usr/lib/libsqlite3.dylib? Please let us know. If not, it's possible that Apple didn't ship sqlite3 with Mac OS X until 10.4.0. If that is the case, then for Mac OS X versions earlier than that, we should add a dependency on the sqlite3 port to the php5 portfile.
Well check this out. So I have Apache 2.4.2 installed on a clean OS X box, but a port I have during configure does a 'apxs -q CC' (I patched it to find ${prefix}/apache2/bin/apxs) but it looks for a MacPorts mysqlite library. /opt/local/apache2/bin/apxs -q CC dyld: Library not loaded: /opt/local/lib/libsqlite3.0.dylib Referenced from: /opt/local/apache2/bin/httpd Reason: image not found apxs:Error: Sorry, no shared object support for Apache. apxs:Error: available under your platform. Make sure. apxs:Error: the Apache module mod_so is compiled into. apxs:Error: your server binary `/opt/local/apache2/bin/httpd'.. So the test fails. But after I install MacPorts mysqlite3, it is fine. /opt/local/apache2/bin/apxs -q CC gcc So should mysqlite3 be a dependency of Apache? Mark
On Jan 26, 2007, at 23:59, Mark Duling wrote:
Well check this out. So I have Apache 2.4.2 installed on a clean OS X box, but a port I have during configure does a 'apxs -q CC' (I patched it to find ${prefix}/apache2/bin/apxs) but it looks for a MacPorts mysqlite library.
/opt/local/apache2/bin/apxs -q CC dyld: Library not loaded: /opt/local/lib/libsqlite3.0.dylib Referenced from: /opt/local/apache2/bin/httpd Reason: image not found apxs:Error: Sorry, no shared object support for Apache. apxs:Error: available under your platform. Make sure. apxs:Error: the Apache module mod_so is compiled into. apxs:Error: your server binary `/opt/local/apache2/bin/httpd'..
So the test fails. But after I install MacPorts mysqlite3, it is fine.
/opt/local/apache2/bin/apxs -q CC gcc
So should mysqlite3 be a dependency of Apache?
I wouldn't have thought that would be generally necessary. I have apache 2.2.4 installed on my Mac OS X 10.4.8 box and it works correctly, yet I do not have the sqlite3 port installed. otool shows that my apache is linking against sqlite3 provided by Mac OS X: $ otool -L /opt/local/apache2/bin/httpd /opt/local/apache2/bin/httpd: /opt/local/lib/libpcre.0.dylib (compatibility version 1.0.0, current version 1.1.0) /opt/local/lib/libaprutil-1.0.dylib (compatibility version 3.0.0, current version 3.8.0) /usr/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0) /opt/local/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.0.0) /opt/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /opt/local/lib/libapr-1.0.dylib (compatibility version 3.0.0, current version 3.8.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7) Note that sqlite has nothing to do with mysql. So, both php5 and apache2 require sqlite3. So the question from my last mail remains: Is /usr/lib/libsqlite3.0.dylib in existence on the systems that are having these problems? Perhaps we should add a dependency line that says "we require libsqlite3, and if there isn't one, then install the sqlite3 port" since obviously some systems have it already installed as part of the OS, and some don't. Or is this a case of where we would want to follow the general MacPorts policy of using our own builds of everything even when the system provides something? If so, then apache2 and php5 should both depend on the sqlite3 port.
Ryan Schmidt <ryandesign@macports.org> on Saturday, January 27, 2007 at 2:17 AM -0800 wrote:
Well check this out. So I have Apache 2.4.2 installed on a clean OS X box, but a port I have during configure does a 'apxs -q CC' (I patched it to find ${prefix}/apache2/bin/apxs) but it looks for a MacPorts mysqlite library.
/opt/local/apache2/bin/apxs -q CC dyld: Library not loaded: /opt/local/lib/libsqlite3.0.dylib Referenced from: /opt/local/apache2/bin/httpd Reason: image not found apxs:Error: Sorry, no shared object support for Apache. apxs:Error: available under your platform. Make sure. apxs:Error: the Apache module mod_so is compiled into. apxs:Error: your server binary `/opt/local/apache2/bin/httpd'..
So the test fails. But after I install MacPorts mysqlite3, it is fine.
/opt/local/apache2/bin/apxs -q CC gcc
So should mysqlite3 be a dependency of Apache?
I wouldn't have thought that would be generally necessary. I have apache 2.2.4 installed on my Mac OS X 10.4.8 box and it works correctly, yet I do not have the sqlite3 port installed. otool shows that my apache is linking against sqlite3 provided by Mac OS X:
$ otool -L /opt/local/apache2/bin/httpd /opt/local/apache2/bin/httpd: /opt/local/lib/libpcre.0.dylib (compatibility version 1.0.0, current version 1.1.0) /opt/local/lib/libaprutil-1.0.dylib (compatibility version 3.0.0, current version 3.8.0) /usr/lib/libsqlite3.0.dylib (compatibility version 9.0.0, current version 9.6.0) /opt/local/lib/libexpat.1.dylib (compatibility version 7.0.0, current version 7.0.0) /opt/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /opt/local/lib/libapr-1.0.dylib (compatibility version 3.0.0, current version 3.8.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.7)
Note that sqlite has nothing to do with mysql.
So, both php5 and apache2 require sqlite3. So the question from my last mail remains: Is /usr/lib/libsqlite3.0.dylib in existence on the systems that are having these problems? Perhaps we should add a dependency line that says "we require libsqlite3, and if there isn't one, then install the sqlite3 port" since obviously some systems have it already installed as part of the OS, and some don't.
Or is this a case of where we would want to follow the general MacPorts policy of using our own builds of everything even when the system provides something? If so, then apache2 and php5 should both depend on the sqlite3 port.
Yes, I have /usr/lib/libsqlite3.0.dylib on my system. It is clean, no manually installed software or anything removed. Mark
On Jan 27, 2007, at 04:55, Mark Duling wrote:
Yes, I have /usr/lib/libsqlite3.0.dylib on my system. It is clean, no manually installed software or anything removed.
I was about to say "to heck with it" and add sqlite3 as a dependency of php5 when I read that the php 5 source is meant to already include a version of sqlite3 which it will use unless you tell it to use a different source, and I can't find any place in the php5 portfile where we're telling it to use the system sqlite3 library. Any comments about that?
participants (3)
-
Mark Duling
-
Patrik Johansson
-
Ryan Schmidt