Skip to Content.
Sympa Menu

freetds - Re: [freetds] Using PHP with FreeTDS

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Daniel Fazekas <fdsubs AT t-online.hu>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Using PHP with FreeTDS
  • Date: Thu, 31 May 2007 22:00:19 +0200

On May 31, 2007, at 20:13, Brian Paquin wrote:

The timeouts are browser generated.
But when I run the script from the command line I get:
intranet:/Library/WebServer/Documents user$ php dem.php
php(24248) malloc: *** vm_allocate(size=1069056) failed (error code=3)
php(24248) malloc: *** error: can't allocate region
php(24248) malloc: *** set a breakpoint in szone_error to debug
FATAL: emalloc(): Unable to allocate 9 bytes

Nice, it doesn't work there either. The easier it is to reproduce a problem, the closer you are to fixing it. :)

You could now try following this up with:
For example, you can just dump the debug output to the terminal:
TDSDUMP=stdout php script.php

Or in your case,
TDSDUMP=stdout php dem.php

Although those PHP error messages seem to suggest your problem is not related to FreeTDS and more likely to be something wrong in your PHP installation; you might not even get any TDS debug output as a result.

Both old and new servers have the following resource limits in php.ini:
memory_limit = 8M

An 8 megabyte limit is certainly not much, even a script working normally could exhaust that. I'd try increasing this to 16M or 32M.

If that doesn't help, then we'll have to look into that PHP installation in more detail.
Things such as making sure the version of PHP you think is executed is really the one being used, or that the sybase extension was built correctly.
All you said about that so far is:
I have recompiled the built-in PHP to include "--with-sybase=/usr/ local" (where FreeTDS is installed).

I assume that means you built the sybase extension into the main PHP binaries, rather than making it a dynamically loadable shared extension.
So it's the main PHP binaries where we should check for the proper dependencies on the FreeTDS libs:

otool -L $(command -v php)
and
otool -L /usr/libexec/httpd/libphp4.so
(libphp5.so for PHP 5)

Both should reference FreeTDS's
/usr/local/lib/libsybdb.5.dylib

What version of PHP is this, anyway?
What do you mean by recompiling the built-in PHP?

You just grabbed Apple's old copy of PHP and their patches & stuff from the darwinsource site:
http://www.opensource.apple.com/darwinsource/10.4.9.ppc/ apache_mod_php-18.8/
…and tried to recreate Apple's version based on that?

More details please.

--
fds



Archive powered by MHonArc 2.6.24.

Top of Page