26

Here's the error I'm getting:

PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
PHP Warning:  Module 'xdebug' already loaded in Unknown on line 0

This is from my php.ini file:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"
zend_extension="/usr/local/IonCube/ioncube_loader_lin_5.3.so"
extension=xdebug.so
zend_extension="xdebug.so"

The file xdebug.so does exist at /usr/local/lib/php/extensions/no-debug-non-zts-20090626

I haven't made any changes and my server has a fresh install of cPanel. Anyone know what would be causing this to happen or see any issues with the information above?

Tim Fountain
  • 33,093
  • 5
  • 41
  • 69
Username
  • 713
  • 2
  • 7
  • 15
  • 3
    Try to comment `extension=xdebug.so` – Cheery Oct 06 '14 at 17:40
  • 1
    Did none of the search results for [Xdebug MUST be loaded as a Zend extension](https://www.google.com/search?q=Xdebug+MUST+be+loaded+as+a+Zend+extension) help you? – lxg Oct 06 '14 at 17:41
  • Just tried that and the error message changed to this `Failed loading xdebug.so: xdebug.so: cannot open shared object file: No such file or directory` – Username Oct 06 '14 at 17:42
  • @lxg I've looked through those suggestions, but most are telling you to just look to make sure it exists and in my case it is looking in the correct directory... – Username Oct 06 '14 at 17:55

4 Answers4

30

Just switch extension to zend_extension in your active php.ini file.

tfont
  • 10,891
  • 7
  • 56
  • 52
  • 1
    I didn't even know this was a thing. Worked for me on Apache with PHP 7.3.8 on Windows 10. Thank you :) – vahanpwns Aug 14 '19 at 09:26
26

For anyone else who is having this issue, I updated this in my php.ini file and it fixed the error:

; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"
zend_extension = "/usr/local/IonCube/ioncube_loader_lin_5.3.so"
zend_extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
extension = "pdo.so"
extension = "pdo_sqlite.so"
extension = "pdo_mysql.so"
extension = "sqlite.so"
Username
  • 713
  • 2
  • 7
  • 15
  • 1
    Only module extensions (those installed with extension=) are found within the extension_dir path. Engine extensions (installed with zend_extension) should use an absolute path. – Nick Oct 07 '14 at 08:11
  • 1
    This answer helped me. My issues was that I included xdebug as 'extension' prior, and again as 'zend_extension'. So just commenting 'extension' load fixed this issue – Grokking Sep 06 '16 at 06:29
6

The problem is the way IIS adds the extension related configuration to the php.ini file. To solve the problem simple replace in php.ini file,

extension=php_xdebug-2.5.0rc1-7.0-vc14-nts-x86_64.dll

with

zend_extension=php_xdebug-2.5.0rc1-7.0-vc14-nts-x86_64.dll

Although now IIS might not recognize xdebug extension as enabled, it is enabled and can be verified by checking the phpinfo() results.

JonDoe
  • 152
  • 1
  • 7
-1

For those who have windows, just change the file by the location of the file where the extension is

  • 1
    Your answer could be improved with additional supporting information. Please [edit] to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community Dec 13 '22 at 07:22