Warning on PHP Startup: Unable to load dynamic library "php_intl.dll"


  • | 2354 points

    First of all,

    @leokhoa
    Thanks for the awesomeness that you've done for Laragon.

    I'm a new laragon user, migrating from xampp expecting easier php-mysql switching from project to project in my local development on windows 10

    I was trying to play around to add multiple php version.
    I need to have php 5.6.* in which I successfully installed from here https://windows.php.net/download/

    I used this setup
    Laragon: full 3.3.3
    PHP: php-5.6.37-nts-Win32-VC11-x64
    Apache: httpd-2.4.34-win64-VC11 as downloaded from https://www.apachelounge.com/download/VC11/

    I did all my setup successfully until I notice this warning on cmder every time I use php command
    Warning: PHP Startup: Unable to load dynamic library 'C:/laragon/bin/php/php-5.6.37-nts-Win32-VC11-x64/ext\php_intl.dll' - The specified module could not be found.
    in Unknown on line 0

    These are few solutions:

    1. add path on windows system env path (failed)
    2. use absolute path using windows pattern with backslash on php.ini extension (failed)
    3. rebuild php from src to get the functional .dll (too much of resource, I dont have visual studio)
    4. test using php 5.6.37 TS version (failed)
    5. test using php 5.6.37 x86 version (not yet)

    Not sure what happened.
    Possible suspect:

    1. php_intl.dll is corrupted or broken
    2. path problem during compile time

    Anyone have encountered the same issue? or maybe can share another solutions?

    Side notes:
    I noticed that every time I reload Apache, the php.ini extension_dir somehow being reverted to initial value. And one time I encountered that the date timezone also being reverted to blank.

    php 7 was fine, not showing the same Warning.


  • | 556 points

    Just to be clear (because I don't see that it is stated), did you check for the existance of php_intl.dll?

    If it was a path issue, that would impact all of your extensions.

    Edit: I am using php-5.6.33-Win32-VC11-x86 with that extension enabled.


  • | 2354 points

    @giga

    Thanks for mentioning!

    That was the first test actually, to check the existence of the file.

    The file ext/php_intl.dll is there, hence I mentioned possibly it was broken or corrupted.


  • | 556 points

    @mdennisa

    No Problem. I don't believe it's a corrupted file issue if you downloaded it directly from PHP.

    So one thing I am noticing is that you are running PHP Win32 and Apache Win64. I believe that you should be running both Win32 or Win64.

    My setup is as follows with no issue:
    httpd-2.4.34-win32-VC11
    php-5.6.33-Win32-VC11-x86

    Are you sure you need the php nts? If you don't need it, I would suggest mimicking my setup (since they are so close), verify that it works and then upgrade php to 5.6.37.


  • | 2354 points

    @giga
    In the download link that I mentioned above, I can only find php-5.6.37, could not find php-5.6.33

    This will be my last test also to resort all to win32 for both php and apache.
    nts or ts I think not much of a problem since it is for local development.

    Thanks for your suggestion. Anyway, can you share where I can download the same php version as you mentioned ?


  • | 556 points

    @mdennisa

    Here is where the php archives are stored
    https://windows.php.net/downloads/releases/archives/


  • | 2354 points

    @giga
    I tried also using your recommended setup also failed.
    still the same error.

    @leokhoa
    do you have any recommendation on this ?

    The only thing I can do so far is to turn off php_intl.dll extension to ignore the warning.


  • | 556 points

    @mdennisa

    That's really weird. What OS?


  • | 2354 points

    @giga
    Windows 10 home single language
    64-bit operating system, x64 based processor

    last test that I did is to load the extension via httpd.conf using "LoadFile" to point the extension directly, and disabled it on php.ini and still failed with the same message.

    but to be honest,
    this is not a blocker or anything. PHP still functioning properly on browser and able to execute composer and other php command.

    its just that every time I put the php command via cmder, the warning shows up first.


  • administrators
    | 123538 points

    @mdennisa : I can not reproduce your issue. It is so strange. I guess there might be a collision in dynamic library between your previous XAMP and Laragon.


  • | 2354 points

    @leokhoa @giga
    Thanks for your kind replies.

    I finally found out the solution for this.

    One thing that forgot to mention is that during switching to use php 5.6.*, there was this error in laragon app saying that msvcr110.dll missing or something related to apache and php for VC 11.

    Since I was too excited with Laragon, I simply download some msvcr110.dll from some site and put it into System32 dir without verifying the file itself.

    So my other suspect is that the msvcr110.dll was the issue.

    so I have to install properly the msvcr110.dll from microsoft release from the link below
    https://www.microsoft.com/en-us/download/details.aspx?id=30679#

    To make sure everything alright, I also run this command via cmd
    C:\WINDOWS\system32>sfc /scannow

    After that I restarted laragon with php 5.6.37 and the error gone.

    I hope this can be a good reference for other laragon user as well.

    Thanks!


  • administrators
    | 123538 points

    @mdennisa : I'm glad you solved your issue. Also, many thanks for your information. It will be a good reference for other Laragon users.
    Cheers!


Log in to reply
 

Looks like your connection to Laragon was lost, please wait while we try to reconnect.