Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

While I am debugging PHP Script in Eclipse, it doesn't load mysql extension

I have installed Eclipse and xDebug on Ubuntu 10.10.
When I debug some php file as a page, that works fine.
When I try to debug it as a script, I give the message that mysql extension is not loaded.
I set the following options for PHP executable:

  • Executable path: /usr/bin/php
  • PHP ini file: /etc/php5/apache2/php.ini
  • SAPI type: CLI
  • PHP debugger: XDebug

I wrote the following script:

test.php
<?php
$ext = get_loaded_extensions();
print_r($ext);
?>

When I put in command line /usr/bin/php test.php
I give 50 loaded modules include mysql and mysqli.
When I debug it as a page in Eclipse I give the same modules and xdebug.
When I debug it as a page in Eclipse I give 45 modules include xdebug, but mysql and mysqli are not loaded.

like image 851
Marko Novaković Avatar asked Apr 25 '11 23:04

Marko Novaković


3 Answers

after struggling with this issue for several hours today, I decided to manually cat all informations inside one single .ini file, and started eclipse with eclipse -clean. something like the following script should do the trick:

#!/bin/bash
mkdir /etc/php5/cli_eclipse
cat /etc/php5/cli/php.ini /etc/php5/conf.d/* > /etc/php5/cli_eclipse/php.ini

(you could obviously check if the dir is already existing etc. but this script is here for illustrative purposes only. you'll need to use a superuser account/sudo to execute this).

point your php runtime in eclipse under window -> preferences -> PHP -> PHP Executables to your created file and restart eclipse once with the -clean flag. pdt should create temporary "php.ini"s containing all necessary information.

like image 56
Andor Goetzendorff Avatar answered Nov 14 '22 23:11

Andor Goetzendorff


The Eclipse PDT team decided to introduce the -n option to fix the Bug #324073. So only php.ini from /tmp/zend_debug/... has been loaded, and all additional INI files have not been loaded.

This has been introduced since PDT 2.2.0 M201010110334 (2010/10/11).

For more information, see the following links:

  • http://redmine.piece-framework.com/issues/242
  • https://bugs.eclipse.org/bugs/show_bug.cgi?id=339547
  • https://bugs.eclipse.org/bugs/show_bug.cgi?id=347618
like image 25
iteman Avatar answered Nov 14 '22 23:11

iteman


Try invoke the function described here: http://php.net/manual/en/function.php-ini-loaded-file.php and see if it returns exactly the same path. On Ubuntu as well as on Debian the php configuration is split among many files. Look at the /etc/php5 (or similar path).

As last resort I would write my own config and reference it in the eclipse php run as script configuration and make sure the config includes and references the mysql extension.

like image 24
user725408 Avatar answered Nov 14 '22 23:11

user725408