Unable to load dynamic library php_ffmpeg.dll [duplicate] - php

I have installed xampp 1.7.4 with php version 5.3.5 on windows xp.
How to install ffmpeg in xampp with php 5.3.5 on windows xp?

Sodobni-mediji.si's method worked, but some things need to be clarified.
Download: https://rapidshare.com/#!download|934l34|422916798|php_ffmpeg_v0.6.0_for_PHP_5.3.1.rar
unzip
copy ffmpeg.exe somewhere and remember the path for later use
move php_ffmpeg.dll to php extension dir (usually c:\xampp\php\ext)
move all other files to Windows\System32 (except COPYING.GPLv3.txt, readme.txt)
add extension=php_ffmpeg.dll to php.ini (usually c:\xampp\php\php.ini)
restart apache with fingers crossed
questions/answers http://www.apachefriends.org/f/viewtopic.php?f=16&t=41913
If you are using windows 64bit, you will also need to to copy all of those dll files to C:\Windows\SysWOW64 along with C:\Windows\System32.
You will probably have problems with toGdImage(), I have no idea how to fix this...

If above solution not working, one thing you can do is as below:
Go to this url: http://ffmpeg.zeranoe.com/builds/
Download 32 or 64 bit (as per your system) static FFMPEG.
After download you can see "ffmpeg.exe' file, copy and paste this file in your xampp directory. (e.g. C:\xampp)
Then, set "C:\xampp" this path in your application.
Enjoy..

Go to apachefriends.org You will find a link to ffmpeg 0.6.0 for php 5.3.1 there.
Copy php_ffmpeg.dll to xampp\php\ext.
Copy ffmpeg.exe into root of your site or anywhere else as long you know where (you will have to define path to it in your php file)...
Copy everything else to windows/system32.
Add "extension=php_ffmpeg.dll" or remove ";" on the beginning of that line in php.ini file (xampp\php\php.ini )
Restart apache server... and voila :)
It worked for me on PHP 5.3.1 and 5.3.5 :)
I found this on apachefriends.org
Good luck :)

You can follow steps from here or do the following steps.
Download ffmpeg from here: https://ffmpeg.org/download.html
Copy php_ffmpeg.dll from the php5 folder to the C:\wamp\bin\php\php5.2.9-2\ext
Copy files from common to the windows/system32 folder
Add extension=php_ffmpeg.dll to php.ini file ( \apache...php.ini )
Restarted all services (Apache, PHP...)
And enable "extension=php_ffmpeg.dll" directive in your php.ini.

Related

Imagick number of supported formats is zero: phpinfo(), Apache/2.4.25(Win 64) PHP/7.1.2; Windows 10

I know this is one of those questions that is as old as Internet and I have looked everywhere and followed the steps that majority of previous answers point to, but still number of supported formats by imagick in phpinfo() is zero for Windows 10.
Let me list the steps that I carried out:
Install Apache 2.4.25-win64-vc14 built by Apache lounge.
Install PHP 7.1 thread safe version VC14 x64
So far so good. I see everything I want to see sans Imagick. I think my problem starts from below:
Install ImageMagick-7.0.5-2Q16-X64-dll.exe from
"Link"
Copy everything from "C:\Program Files\ImageMagick-7.0.5-Q16\coders" to "C:\Program Files\ImageMagick-7.0.5-Q16"
Copy everything from "C:\Program Files\ImageMagick-7.0.5-Q16\filters" to "C:\Program Files\ImageMagick-7.0.5-Q16"
Copy everything from "C:\Program Files\ImageMagick-7.0.5-Q16\coders" to "C:\Apache24\bin"
Copy everything from "C:\Program Files\ImageMagick-7.0.5-Q16\filters" to "C:\Apache24\bin"
Set the environment variable MAGICK_HOME to "C:\Program Files\ImageMagick-7.0.5-Q16"
Download PHP 7.1 Thread Safe x64 version of Imagick dll for php extension from https://pecl.php.net/package/imagick/3.4.3/windows
Copy php_imagick.dll from the package to "C:\php7\ext", the PHP folder
Copy all the "CORE_RL_xxx.dll" to "C:\Apache24\bin", the Apache bin folder
Change the php.ini in the PHP folder to include "extension = php_imagick.dll". Save the file.
Restart Apache, no luck.
Restart PC and then start Apache, no luck.
What am I missing?
Please download the latest stable versions of both ImageMagick and Imagick from:
http://windows.php.net/downloads/pecl/deps/
http://windows.php.net/downloads/pecl/releases/imagick/
Installing versions that are downloaded from different places isn't likely to work.
Download php_imagick from
http://windows.php.net/downloads/pecl/releases/imagick/3.4.3/php_imagick-3.4.3-7.0-ts-vc14-x64.zip - for PHP 7.0 or http://windows.php.net/downloads/pecl/releases/imagick/3.4.3/php_imagick-3.4.3-7.1-ts-vc14-x64.zip - for PHP 7.1
Download imagemagick from: http://windows.php.net/downloads/pecl/deps/ImageMagick-6.9.3-7-vc14-x64.zip instead of ImageMagick-7.0.5-Q16
Extract from php_imagick-3.4.3-7.0-ts-vc14-x64.zip to the ext directory only the php_imagick.dll file of your PHP installation
Extract ImageMagick-6.9.3-7-vc14-x64.zip to the directory c:\ImageMagick- for example
add to environmental PATH to c:\ImageMagick\bin. Attention: bin!!!
Add this line to your php.ini file: extension=php_imagick.dll
Restart Apache
Result <?php phpinfo(); ?>:

Enabling CURL with PHP 5.6 on Windows 8

I have Apache 2.4.12 and php 5.6.9 on my Windows 8 computer and I'm trying to enable the curl extension for php however, I haven't had much success. After searching the internet for this issue it appears that other's have had the same trouble. Here are the suggestions I've found:
Uncomment ;extension=php_curl.dll in php.ini
Uncomment ;extension_dir = "ext" in php.ini
Download and replace the php_curl.dll file in the ext directory of php with one from this website
Add to the PATH environment variable where php is installed
Copy libeay32.dll and ssleay32.dll from where php is installed to C:\Windows\System32
I've tried every single suggestion with no success except the third item in the list because it doesn't have a .dll file for curl with php 5.6, in fact the highest version avaible is one for php 5.4. There has to be way to enable this extension without having to downgrade my php version to 5.4 and using a .dll file from that website. I've tried searching the internet for a .dll file like the one on the linked website for php 5.6 opposed to a version of php that's outdated but I've had no luck in finding one so I'd like help with this issue.
How can I enable curl for php 5.6 on my Windows 8 machine?
Locate your php folder and follow these instructions:
Move to Windows\system32 folder:
libssh2.dll, php_curl.dll, ssleay32.dll, libeay32.dll
Move to Apache24\bin folder
libssh2.dll
Uncomment extension=php_curl.dll
Note: Don't overwrite when prompted.
Source
I give you an example of a set up that just worked perfectly for me :
downloaded the VC11 x86 Thread Safe version of PHP,
unzipped it within a directory C:\php,
edited the php.ini-development, uncommenting 2 lines :
extension=php_curl.dll
extension_dir = "ext"
saved this file under php.ini.
I just tested it via the CLI (windows CMD here) on a PHP a file (i.e. C:\php\php myFile.php) and cURL worked.
If you have Apache installed and prefer to test it in a browser, you obviously have to adapt this installation with your own files structure and to do not forget to restart Apache.
Running apache service with a specific user other than local system solved the problem for me. You can test this easily by stopping the apache service and running manually <apache dir>\bin\httpd.exe.
I fixed this problem by adding C:\php and C:\php\ext to PATH system variables.
Press window + pause to bring up the System Properties page.
Click Advanced System Settings
Click Environment Variables
You'll see the Path variable in the System Variables box in the bottom.
Append your PHP path to that variable. Now the system will be able to load the extensions.
In addition to uncommenting the line
;extension_dir = "ext"
Try also setting it to the absolute path of the PHP installation's ext folder and then restarting apache.
e.g.:
extension_dir = "C:\PHP 5.6.19\ext"

Not able to install pThread on Windows Xampp

Update: Looks like I am not doing anything wrong here. When I execute a thread example, it works fine. I am not sure, then why am I getting those errors when I start Apache.
Any ideas?
I am trying to install pThread on Xampp (Windows 7) as follows:
My PHP version information: 5.4.7 VC9 x86
I have downloaded php_pthreads-0.0.45-5.4-ts-vc9-x86.zip
Then I added pthreadVC2.dll to C:\xampp\php and php_pthreads.dll to C:\xampp\php\ext
In php.ini, I have added extension=php_pthreads.dll
Restarted Apache server and received following error:
Any suggestions on why this is not working?
I do not use Windows, but according to the people commenting in the manual, you must also add:
LoadFile "C:/xampp/php/pthreadVC2.dll"
to your httpd.conf (httpd-xampp.conf the manual mentions)
Here is what I did and works for me:
Check your PHP's compiler version using phpinfo() as you have already done. Mine and your both is VC9
Download and install proper Pthread package that matches your compiler version. I downloaded "php_pthreads-0.0.45-5.4-ts-vc9-x86.zip" file. Make sure your OS version also mathes (32-bit or 64-bit).
Extract Zip file in a temp folder
Copy php_pthreads.dll to the 'bin\php\ext\' folder
Copy pthreadVC2.dll to the 'bin\php\' folder
Copy pthreadVC2.dll to the 'bin\apache\bin' folder
Copy pthreadVC2.dll to the 'C:\windows\system32' folder
Open php\php.ini and add "extension=php_pthreads.dll" without quotes at the end of file
Restart server and you won't get any error message.
Good luck
copy "pthreadVC2.dll" file to "windows/system32" directory.then restart apache. It worked for me.

PHP unable to load php_curl.dll extension

Follow-up from my post yesterday (Enabling cURL with PHP)
The problem is that PHP isn't able to load php_curl.dll. I've tried several steps including uncommenting extension=php_curl.dll, making sure the dependencies libeay32.dll and ssleay32.dll eixst in the path, re-downloading php_curl.dll, replacing the old one, and lastly copying the file into my System32 folder.
I'm using Apache 2.2 and PHP 5.4.14. I installed both using their individual packages; I'm not using XAMP or WAMP. I'm using Windows 7 64-bit.
Any help at all would be appreciated.
libeay32.dll and ssleay32.dll have to be path-accessible for php_curl.dll loading to succeed.
But copying them into Apache's ServerRoot, Apache's \bin\, Window's \System32\, or even worse into the Windows main directory is a bad hack and may not even work with newer PHP versions.
The right way to do it is to add the PHP path to the Windows Path variable.
In Control Panel -> System click on Advanced System Settings or press WIN+R and type SystemPropertiesAdvanced
Click the button Environment Variables.
Under System Variables you will find the Path variable. Edit it and prepend C:\PHP; to it - or whatever the path to your PHP folder is.
(Hint: If your PHP folder contains spaces like C:\Program Files\PHP you may need to use the short filename form here, i.e. C:\Progra~1\PHP.)
Then fully stop Apache and start it again (a simple restart might not be enough).
Update 2017-05:
I changed the instructions above to prepend the Path variable with the PHP path instead of appending to it. This makes sure that the DLLs in the PHP path are used and not any other (outdated) versions in other paths of the system.
Update 2018-04:
If you have already chosen the wrong way and copied any of the PHP DLLs to Apache or Windows paths, then I strongly recommend that you remove them again! If you don't, you might get into trouble when you later try to update PHP. If a new PHP version brings new versions of these DLLs, but your old DLLs still linger around in system or webserver paths, these old DLLs might be found first. This will most certainly prevent the PHP interpreter from starting. Such errors can be very hard to understand and resolve. So better clean up now and remove any of the mentioned DLLs from Windows and Apache paths, if you copied them there.
(Thanks to #EdmundTam and #WasimA. for pointing out this problem in the comments!)
Update 2019-10:
Tip: To find all copies of these DLLs and check whether you might have placed them in the wrong folders, you can use the following commands in a Windows Command Prompt window:
dir c:\libeay32.dll /s
dir c:\ssleay32.dll /s
Be warned that these commands may take some time to complete as they search through the entire directory structure of your system drive C:.
Update 2020-08:
If your PHP folder contains spaces (i.e. C:\Program Files\PHP) you may need to use the short filename form in the Path variable at step 3 (i.e. C:\Progra~1\PHP). Thanks to #onee for this tip!
In PHP 5.6.x version You should do the following:
Move to Windows\system32 folder DLLs from php folder:
libssh2.dll, ssleay32.dll, libeay32.dll and php_curl.dll from php ext folder
Move to Apache24\bin folder from php folder:
libssh2.dll
Also, don't forget to uncomment extension=php_curl.dll in php.ini
WINDOWS Apache 2.4.x + PHP 7.0.x SOLUTION HERE:
Solution: Put libeay32.dll, libssh2.dll, ssleay32.dll files under dir specified in httpd.conf's ServerRoot directive. These dlls can be found compiled under php root folder.
Reasons:
Problem is php_curl.dll requires to access following libraries while loading: libeay32.dll, libssh2.dll, ssleay32.dll and it does not make sense if you put them in ./php/ext dir or if you put PHP extensions in PHP root dir.
Of course you can put them in C:\Windows or in some global folder defined in PATH but if you don't want to do this and you want that your apache+php installation was portable:
The path specified in ServerRoot in httpd.conf is treated as home path for php. The behaviour is similar to situation where you include ./path/to/some.php file in ./index.php and home path for some.php file is still ./ the dir where index.php resides.
In shorts just put those three dlls right in dir you specified in httpd.conf ServerRoot directive and php_curl.dll will not fail to load again.
You are loading .dll so your OS has to be windows.
First check which php.ini file you are using by running phpinfo()
Then check where your extensions folder is by checking extension_dir attribute in that file.
Next make sure that php_curl.dll is present in that folder. If not copy it over.
Restart apache and check if it works.
Since you installed packages individually, also do this:
Copy the dll file from php_installation_folder/extensions to apache_installation_folder/bin
Usually this is an OpenSSL version mismatch error, between Apache and PHP. In case Apache loads PHP as a DSO module, its own OpenSSL versions (dlls and libs) will be used. So, in case the PHP extension requires a newer version, it may not find the appropriate interface inside the Apache-loaded DLLS and it will fail to work.
Since you need the PHP extension to load, you need the relevant DLL files to be at least the version of what the PHP module asks for.
Supposing that you 're using lastest builds for both Apache and PHP and both having been built with the same MVC version, you can copy the following files:
libcrypto-1_1.dll
libcrypto-1_1-x64.dll
libcurl.dll
libsasl.dll
libssh2.dll
libssl-1_1.dll
libssl-1_1-x64.dll
nghttp2.dll
libeay32.dll (if existing in your PHP distribution)
ssleay32.dll (if existing in your PHP distribution)
from the PHP root folder to the Apache2/bin folder, in case you 're confident that the PHP build is newer than the Apache build.
In the opposite case, you can copy the same files from the Apache BIN to the PHP root.
In any case, backup the contents of the APache and PHP folders beforehand.
Adding the PHP path as an enviromental variable will give priority to this path for loading the relevant DLLs and may solve the problem. However, you lose in server portability. Additionally, if you have also added the Apache PATH as a variable and the OpenSSL versions are way different (up to loading different linked DLL files), a lot of shit may happen.
Make sure to have your apache SSH dlls loading correctly. On a fresh install I had to download and load into my apache bin directory the following dll "libssh2.dll"
After ssl dll was loaded cURL was able to load with no issues.
You can download it from the link below:
http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
Solution:
Step1: Uncomment the php_curl.dll from php.ini
Step2: Copy the following three files from php installed directory.i.e "C:\\php7".
libeay32.dll,
libssh2.dll,
ssleay32.dll
Step3: Paste the files under two place
httpd.conf's ServerRoot directive. i.e "C\Apache24"
apache bin directory. i.e "C\Apache24\bin"
Step4: Restart apache.
That's all. I solve the problem by this way.Hope it might work for you.
The solution is given here.
https://abcofcomputing.blogspot.com/2017/06/php7-unable-to-load-phpcurldll.html
After having tried everything here I had to simply upgrade Apache to a newer version in order to make curl extension work.
I was upgrading PHP from 7.0.2 to 7.1.15 after which curl did not work. Only way to fix it was upgrade Apache (which was version 2.4.18) to the latest 2.4.29.
Didn't have to copy any of the lib/ssleay dll files to either Apache or Windows - possibly because I already have the PHP folder in my system path.
Running Windows 10, 64-bit, thread-safe versions, VC14.
Insert to file httpd.conf
LoadFile "D:/DevKit/PHP7.1/libeay32.dll"
LoadFile "D:/DevKit/PHP7.1/libssh2.dll"
LoadFile "D:/DevKit/PHP7.1/ssleay32.dll"
In php.ini you must put the extension_dir static path. extension_dir = "C:\laragon\bin\php\php-7.3.11-Win32-VC15-x64\ext" by example. Don't forget to remove the semicolon before this variable.
I have encountered the same problem before.I resolved it by add php directory to windows system environment variables---Path.
I got this error because, on my system at least, if extension_dir in php.ini is set to a relative path, it is taken as being relative to the root Apache directory, so to get it to point to the correct directory I had to use an absolute path: "C:\Program Files (x86)\PHP\ext". (This was PHP 5.5.31 and Apache 2.4.23 on Windows 10; setting extension_dir to ext worked just fine with the same setup on Windows 7. I first got it to work by putting an ext directory in the Apache folder with the necessary dlls, then figured out what was happening.)
It was also necessary to set the PATH correctly or make sure the dlls mentioned above (libeay32.dll, libssh2.dll, and ssleay32.dll) are in Apache's bin directory (or most likely any of the places other answers mention). The fact that I got the same error message for Apache not being able to find lib_curl.dll as for it not being able to find libssh2.dll did not make things any easier to figure out.
Add your php folder path to the System PATH and everything should work fine. It will also fix some other extensions that are broken.
Maybe not the best approach, but it definitely works. (2019-2022)
"Your install of PHP does not have the 'php_curl.dll' extension enabled."
find "php.ini", if no you have to rename "php.ini-development" to "phh.ini". Open it.
find ;extension_dir = "ext"
add these under that line, there is no ";"
extension_dir = "[php dir]\ext"
extension=php_curl.dll

Install FFMPEG on XAMPP

I have installed xampp 1.7.4 with php version 5.3.5 on windows xp.
How to install ffmpeg in xampp with php 5.3.5 on windows xp?
Sodobni-mediji.si's method worked, but some things need to be clarified.
Download: https://rapidshare.com/#!download|934l34|422916798|php_ffmpeg_v0.6.0_for_PHP_5.3.1.rar
unzip
copy ffmpeg.exe somewhere and remember the path for later use
move php_ffmpeg.dll to php extension dir (usually c:\xampp\php\ext)
move all other files to Windows\System32 (except COPYING.GPLv3.txt, readme.txt)
add extension=php_ffmpeg.dll to php.ini (usually c:\xampp\php\php.ini)
restart apache with fingers crossed
questions/answers http://www.apachefriends.org/f/viewtopic.php?f=16&t=41913
If you are using windows 64bit, you will also need to to copy all of those dll files to C:\Windows\SysWOW64 along with C:\Windows\System32.
You will probably have problems with toGdImage(), I have no idea how to fix this...
If above solution not working, one thing you can do is as below:
Go to this url: http://ffmpeg.zeranoe.com/builds/
Download 32 or 64 bit (as per your system) static FFMPEG.
After download you can see "ffmpeg.exe' file, copy and paste this file in your xampp directory. (e.g. C:\xampp)
Then, set "C:\xampp" this path in your application.
Enjoy..
Go to apachefriends.org You will find a link to ffmpeg 0.6.0 for php 5.3.1 there.
Copy php_ffmpeg.dll to xampp\php\ext.
Copy ffmpeg.exe into root of your site or anywhere else as long you know where (you will have to define path to it in your php file)...
Copy everything else to windows/system32.
Add "extension=php_ffmpeg.dll" or remove ";" on the beginning of that line in php.ini file (xampp\php\php.ini )
Restart apache server... and voila :)
It worked for me on PHP 5.3.1 and 5.3.5 :)
I found this on apachefriends.org
Good luck :)
You can follow steps from here or do the following steps.
Download ffmpeg from here: https://ffmpeg.org/download.html
Copy php_ffmpeg.dll from the php5 folder to the C:\wamp\bin\php\php5.2.9-2\ext
Copy files from common to the windows/system32 folder
Add extension=php_ffmpeg.dll to php.ini file ( \apache...php.ini )
Restarted all services (Apache, PHP...)
And enable "extension=php_ffmpeg.dll" directive in your php.ini.

Categories