Call to undefined function dl()

software development


I am helping my aunt move her website to Dreamhost from GoDaddy. Unfortunately, I didn’t realize she set up a Bludomain website on this hosting account, and I’m afraid I’m in over my head in MySQL and PHP errors.

I’ve managed to get past the initial SourceGuardian error, but I am stuck on:

Fatal error: Call to undefined function dl() in /home/trudys/ on line 2

According to SourceGuardian, the following applies:

Details of your platform have been detected

Operating system: linux
Platform: x86_64
PHP version: 5.3.5
Thread safety: no
Dynamic loading: not possible
Path to extension_dir: /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626
Path to php.ini: /etc/php53/php.ini

Please follow instructions below to install a SourceGuardian loader to your system

  1. Download the required loader ixed.5.3.lin

  2. Install the loader to /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626

  3. Edit /etc/php53/php.ini and add ‘extension=ixed.5.3.lin’ directive

  4. Restart the web server

Please note that access to the /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626 directory (extension_dir) and the PHP configuration file /etc/php53/php.ini may require additional permissions. Please contact your server company in such a case for copying the loader file and changing the PHP configuration file for you. [/quote]

How do I access the etc/php53 folder? Or is this something I have to ask DH to do? Or do I have to suck it up and pay Bludomain $60 to do this? :confused:


Login via SFTP (or SSH) and browse to the directories.

If you’re on a shared server, customise PHP5.3 by placing an ini and the required loader in /user/.php/5.3/


Thank you!!! I read something that told me to put “phpini” in that directory, which didn’t work. I guess they meant php.ini. The error is gone.

But now the page is blank… ??? Is there an error log I can find somewhere?


Did you add all the required required extension directives to the php.ini ?


Sorry! I was waiting for email notification of a response, and the email never came.

Anyway, I guess I’m not sure exactly what extension directives are required, but here’s what I currently have in php.ini:

register_globals = on
allow_url_fopen = off
error_reporting = E_ALL
upload_max_filesize = 8M
SecFilterEngine Off
SecFilterScanPOST Off

expose_php = Off
max_input_time = 60
variables_order = "EGPCS"
extension_dir = /usr/local/php53/lib/php/extensions/no-debug-non-zts-20090626
upload_tmp_dir = /tmp
precision = 12
url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=,fieldset=”



The PHP.ini you have looks like it was copied from another host, or pieced together from multiple fragments. It will not work as intended on our servers, as several of the paths listed at the bottom point to locations which do not exist.

Additionally, the “SecFilterEngine Off” and “SecFilterScanPOST Off” lines are Apache directives, not PHP.ini directives; they have no business being in this file at all.


Thank you so much, Andrew. It’s been a while now so I don’t remember where it all came from but it is highly likely it was based on the PHP file that was already there when the site was at GoDaddy.

I will take out the Apache directives, but I don’t know how to fix the paths at the bottom. What should they be, if they should exist at all?


The first four paths all appear to refer to Zend Optimizer, which does not exist under that name for PHP 5.3. (The PHP 5.3 version is, for some reason, now called the “Zend Guard Loader”.) You probably don’t need it; if you do, though, you will need to download it from, place it somewhere under your home directory, and specify the path to the .so file. See for download links and details.

The final path references SourceGuardian, which you probably don’t need either. Similar story there, except the download link is

Again, keep in mind that both of these extensions are only necessary if you have an obfuscated application which requires them. (Such applications will typically let you know in no uncertain terms by displaying an error message if the extension isn’t available.) If you don’t need them, they will do you no good whatsoever, and will only slow things down — leave them out.


Hi Andrew,

Thank you again for the info.

All of the code for this website was designed by bludomain, so I have no idea what applications they are using that may require them – all I know is that the initial error I received when I copied over the website files was “PHP script /xxxxx.php is protected by SourceGuardian and requires the SourceGuardian loader ixed.5.2.lin. The SourceGuardian loader has not been installed, or is not installed correctly. Please visit the SourceGuardian php encoder site to download required loader…”

I have downloaded the SourceGuardian loader, but I’m not sure I installed it in the right place.

Are these likely to be the cause of the WSOD?


The error message is somewhat incorrect. ixed.5.2.lin would be the correct extension for PHP 5.2, but it cannot be loaded by PHP 5.3. There’s a separate file which you need for PHP 5.3: ixed.5.3.lin.

To check if it’s loading, you should be able to put the following into a PHP file:

SourceGuardian should show up somewhere in the output page if it’s being loaded properly.