Installing ZendPHP on Windows
This topic describes the procedures for installing ZendPHP on Windows.
Requirements
- Windows 10 or 11; Windows Server 2019
- 64-bit architecture
- Visual C++ 2017 or later runtime (the installer can install this for you)
- Optional libraries that can be installed using the installer:
- Management Information Base (MIBS) libraries; required for the SNMP extension
- Oracle Instant Client libraries; required for the
oci8/pdo_oci
extensions - PostgreSQL client libraries; required for the
pgsql/pdo_pgsql
extensions
Getting the installer
To get the ZendPHP installer for Windows:
-
Download ZendPHP for Windows Installer from https://www.zend.com/downloads.
-
Extract the archive (ZendPHP-Installer-Windows.zip) on your machine. This can generally be done using Windows Explorer or in PowerShell using the command
Expand-Archive ZendPHP-Installer-Windows.zip -DestinationPath {folder}
, where{folder}
is the location where you would like to extract the contents. The package contains areadme.txt
file with instructions and the scriptzendphp_install.ps1
, which is a PowerShell script. -
Start PowerShell and navigate to the directory in which you extracted the installer.
-
Run
zendphp_install.ps1 help
to get usage details and a full list of options.
Installation notes
- The installer notifies you if you do not have a compatible Visual C++
runtime. Use the
-with-deps vcruntime
option to install it. - We ship several PECL extensions separate from our standard PHP distribution. These include:
The installer allows you to install one or more of these at any time using theigbinary
imagick
memcache
mongodb
pdo_sqlsrv
redis
sodium
sqlsrv
ssh2
win32service
xdebug
-pecl
option (e.g.,-pecl xdebug
or-pecl memcache,redis
). If you want to install these after installing PHP and without updating PHP, you can do so by passing the-deps-only
switch. - You can enable one or more built-in extensions at installation using
the
-enable
option (e.g.,-enable intl
or-enable curl,fileinfo
). The-enable-all
switch enables all built-in extensions. - After installing you can use the config sub-command to disable
one or more built-in or PECL extensions using the
-disable
option (e.g.,-disable intl
or-disable curl,redis
). The-disable-all
switch disables all extensions. - You can install more than one PHP version at a time. By default, the
installer installs to
C:\zendphp\{version}
, where{version}
is the PHP minor version (e.g., 7.4, 8.1, and so forth). As such, you can install and configure PECL extensions for each PHP version independently.
Installation examples
To install PHP 8.1, the Visual C++ runtime, the Microsoft SQL Server extension,
and enable the curl
, openssl
, opcache
, phar
, and xsl
extensions you would use:
zendphp_install.ps1 install 8.1 -with-deps vcruntime -pecl sqlsrv -enable curl,openssl,opcache,phar,xsl
To later enable all built-in extensions for 8.1, but disable snmp
, shmop
, sysvshm
,
pdo_oci
, pdo_pgsql
, oci8
, and pgsql
you would use:
zendphp_install.ps1 config 8.1 -enable-all -disable snmp,shmop,sysvshm,pdo_oci,pdo_pgsql,oci8,pgsql
Updating
ZendPHP releases follow community PHP releases within a few days and community PHP releases are generally monthly. You can update your ZendPHP installation using the same command you used to install originally; the only difference is you typically do not need to use the -with-deps
or -enable
options.
As an example, if you installed PHP 8.1 using the following:
zendphp_install.ps1 install 8.1 -with-deps vcruntime -pecl sqlsrv -enable curl,openssl,opcache,phar,xsl
To update, you would use:
zendphp_install.ps1 install 8.1 -pecl sqlsrv
We recommend passing the -pecl
option for any PECL extensions you normally install during updates to ensure you get patched versions.