|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77801 CLI option -z/--zend_extension does not load specified zend extension
Submitted: 2019-03-26 22:48 UTC Modified: 2021-05-28 13:06 UTC
Avg. Score:1.0 ± 0.0
Reproduced:0 of 1 (0.0%)
From: smokey101stair at gmail dot com Assigned:
Status: Verified Package: *General Issues
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
Solve the problem:
3 + 18 = ?
Subscribe to this entry?

 [2019-03-26 22:48 UTC] smokey101stair at gmail dot com
Using the -z/--zend_extension option to load a zend extension when using php from the CLI doesn't seem to work on Windows. I tested using PHP versions 5.6.40, 7.2.16, and 7.3.3.

In my particular case, I was trying to load xdebug.

php -z <path to xdebug> -m

The above results in no modules listed under [Zend Modules]

php -z <path to xdebug> --re xdebug
php -z <path to xdebug> --rz xdebug
php -z <path to xdebug> --ri xdebug

The above all result in an error stating that xdebug does not exist.

php -d zend_extension=<path to xdebug>

The above can be used as a workaround as it loads the extension as expected.

Please let me know if I can provide any additional information.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2019-03-26 23:31 UTC]
-Operating System: Windows 10 +Operating System:
 [2019-03-26 23:31 UTC]
Also happens in other operating systems ...

The reason -m doesn't show it's loaded is clear, they are different getopt blocks.

But even when you run a script with get_loaded_extensions dump, the zend extension is not loaded (tested with opcache which registers a module, the module is not registered).
 [2021-05-28 13:06 UTC]
The problem is that the order of CLI args processing is borked.
The first getopt() (in main()) processes only some of the args,
then SAPI and modules are started up; only afterwards the second
getopt() block (in do_cli()) processes further args (-z plus some
others), and the extension is loaded, but never initialized.

Given that -z is useless, and -dzend_extension= works as expected,
it might be best to just drop the -z arg.
 [2021-05-28 13:06 UTC]
-Status: Open +Status: Verified
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Apr 21 09:01:29 2024 UTC