Keep Server Online
If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.
or
A donation makes a contribution towards the costs, the time and effort that's going in this site and building.
Thank You! Steffen
Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
| |
|
Topic: Resolution of the 'Unable to initialize module' PHP error |
|
Author |
|
VEG
Joined: 20 Dec 2020 Posts: 4 Location: Belarus
|
Posted: Sun 20 Dec '20 17:24 Post subject: Resolution of the 'Unable to initialize module' PHP error |
|
|
Robust resolution of the "Unable to initialize module" PHP startup error when Windows can't find libraries which are required for the PHP module. Can be useful for other external Apache modules also.
Apache should call AddDllDirectory for directory of a PHP module before loading the module. Apache could make it automatically as a part of the Code: | LoadModule php_module "${PHPROOT}/php8apache2_4.dll" | instruction, or we could introduce a new Apache configuration instruction "AddDllDirectory" for this purpose, and a developer could put this instruction into httpd.conf explicitly when required before loading of the module. What do you think about this? Could we improve the Windows builds of the Apache available from the apachelounge.com this way?
This function is available since Windows Vista. Modern builds of the Apache also don't support Windows XP. So, it won't reduce compatibility.
I can create a patch with this feature for the Apache if the maintainers are interested.
As a temporary workaround, long time ago I created a library for this purpose which can be loaded from the httpd.conf using standard LoadFile instruction like this:
Code: | Define PHPROOT "${SRVROOT}/php8"
PHPIniDir "${PHPROOT}"
LoadFile "${PHPROOT}/AddDllDirectory64.dll"
LoadModule php_module "${PHPROOT}/php8apache2_4.dll"
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch> |
The AddDllDirectory64.dll adds the directory where it is placed to list of directories where Windows will look for dll files for current process. Works flawlessly.
Download: https://veg.by/files/webdev/apache_adddlldirectory.7z (3.5KB, source code included).
Last edited by VEG on Tue 18 May '21 17:20; edited 3 times in total |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7374 Location: Germany, Next to Hamburg
|
Posted: Tue 09 Feb '21 20:53 Post subject: |
|
|
php8apache2_4 is part of PHP, not Apache. Did you sent your patch to the PHP devs? |
|
Back to top |
|
VEG
Joined: 20 Dec 2020 Posts: 4 Location: Belarus
|
Posted: Sun 25 Apr '21 15:05 Post subject: |
|
|
PHP developers can't resolve this issue from their php8apache2_4.dll, just because the php8apache2_4.dll basically can't be loaded without such fix. If Apache tells windows to look for dependencies in the module's directory before trying to load the module, the issue is resolved. |
|
Back to top |
|
VEG
Joined: 20 Dec 2020 Posts: 4 Location: Belarus
|
Posted: Wed 03 Nov '21 15:20 Post subject: |
|
|
Oh, seems like I was wrong, and actually the issue is related to loading PHP extensions, and better to be fixed from the PHP module side. Will try to discuss it with PHP developers. |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7374 Location: Germany, Next to Hamburg
|
Posted: Thu 04 Nov '21 0:20 Post subject: |
|
|
For any php extensions issues. Run php -m to see what fails, and set display start up errors in php.ini
IS there a reason you don't run php via mod_fcgid? |
|
Back to top |
|
Otomatic
Joined: 01 Sep 2011 Posts: 213 Location: Paris, France, EU
|
Posted: Thu 04 Nov '21 10:51 Post subject: |
|
|
Hi,
There is no problem with full path
Code: |
Define VERSION_APACHE 2.4.51
Define INSTALL_DIR E:/wamp64
Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
Define SRVROOT ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
...
PHPIniDir "${APACHE_DIR}/bin"
LoadModule php_module "${INSTALL_DIR}/bin/php/php8.0.12/php8apache2_4.dll"
|
|
|
Back to top |
|
|
|
|
|
|