PHP extensions for Windows
PHP can be extended with extensions.
Scoop is necessary
This guide use scoop to install this binary, if you don't have it, check this guide
About
For some packages, you have to choose the right version of extension. It could be difficult, so I will explain it.
PHP Version
php -i | find "PHP Version"PHP Version => 8.1.17PHP version is PHP 8.1, so I take the php_imagick-*-8.1-*.zip version.
INFO
If you don't find your PHP version in all versions, your PHP version could be too recent, you have to wait before imagick release for your PHP version.
Thread Safety
php -i | find "Thread Safety"Thread Safety => disabledThread Safety is disabled, so I take the php_imagick-*-nts-*.zip version (nts for Non Thread Safe).
Architecture
You have to install grep with scoop
php -i | Where-Object { $_ -like "*Architecture*" }Architecture => x64Architecture is x64, so I take the php_imagick-*x64.zip version.
imagick
You could install locally these dependencies to have binaries
scoop install imagemagick ghostscript ffmpegDownload binary from https://windows.php.net/downloads/pecl/releases/imagick/
Example with for PHP 8.1 and Imagick v3.7.0, I choose php_imagick-3.7.0-8.1-nts-vs16-x64.zip from https://windows.php.net/downloads/pecl/releases/imagick/3.7.0/
Choose wisely your version
php_imagick-3.7.0is imagick version from GitHub8.1is PHP version, choose a version that match with yours.ntsis for non thread safe, you can choosetsfor thread safe if you installed PHP thread safex64is for 64 bits CPU, choosex86for 32 bits CPU
Extract archive locally.
- Find
php_imagick.dllinto archive and move it toC:\Users\USERNAME\scoop\apps\php-nts\current\ext - Locate all other
.dllfiles and move it toC:\Users\USERNAME\scoop\apps\php-nts\current - Add
extension=imagicktoC:\Users\USERNAME\scoop\apps\php8.1-nts\current\php.iniat the top of the file
Check if imagick works (with grep from scoop)
php -m | Select-String -Pattern "imagick"rar
Download binary from https://windows.php.net/downloads/pecl/releases/rar/
Example with for PHP 8.1 and RAR v4.2.0, I choose php_rar-4.2.0-8.1-nts-vs16-x64.zip from https://windows.php.net/downloads/pecl/releases/rar/4.2.0/
- Extract archive locally.
- Find
php_rar.dllinto archive and move it toC:\Users\USERNAME\scoop\apps\php-nts\current\ext - Add
extension=rartoC:\Users\USERNAME\scoop\apps\php8.1-nts\current\php.iniat the top of the file
Check if rar works (with grep from scoop)
php -m | Select-String -Pattern "rar"You could install locally this dependency to have binary
scoop install unrarpcov
Download binary from https://windows.php.net/downloads/pecl/releases/pcov/
Example with for PHP 8.1 and PCOV v1.0.11, I choose php_pcov-1.0.11-8.1-nts-vs16-x64.zip from https://windows.php.net/downloads/pecl/releases/pcov/1.0.11/
- Extract archive locally.
- Find
php_pcov.dllinto archive and move it toC:\Users\USERNAME\scoop\apps\php-nts\current\ext - Add
extension=pcovtoC:\Users\USERNAME\scoop\apps\php8.1-nts\current\php.iniat the top of the file
Check if pcov works (with grep from scoop)
php -m | Select-String -Pattern "pcov"