Upgrading PHP on Windows
This guide walks through the process of updating the PHP version on a Windows server running DreamFactory. Follow these steps carefully to ensure a smooth upgrade process.
DreamFactory 4.x runs only on PHP 7.2 to 7.4. DreamFactory 5.0.0 to 7.0.0 declare PHP 8.1. DreamFactory 7.0.1 and later need PHP 8.3 or later. If the new PHP version is outside the range for your DreamFactory version, DreamFactory stops working. Read Find your upgrade path in the PHP security advisory before you start.
Prerequisites
Before beginning the update process ensure you have backed up:
- Your existing PHP folder
- Your system database
- A copy of your
.envfile
Installation Steps
1. Download PHP
- Visit the official PHP for Windows website
- Download the Non-Thread-Safe (NTS) version for your architecture (x64 or x86)
- Example:
php-8.3.36-nts-Win32-vs16-x64.zip
- Example:
Always use the Non-Thread-Safe (NTS) version of PHP with DreamFactory on Windows.
2. Install PHP
- Create a new directory:
C:\PHP\php-X.X.X(replace X.X.X with version number) - Extract the downloaded ZIP contents to this directory
- Create a symlink from
C:\phpto your version-specific directory (optional, but recommended for easier management)
3. Configure Environment Variables
- Open System Properties:
Win + R → sysdm.cpl → Enter - Navigate to: Advanced tab → Environment Variables
- Under System Variables:
- Edit
Path - Add new PHP directory path (e.g.,
C:\PHP\php) - Remove old PHP path if present
- Edit
- Verify installation:
php -v
4. Configure PHP
-
Configure
php.ini:- If you stay on the same PHP branch (for example 8.3), copy your existing
php.inifrom the previous installation, OR - Create new from
php.ini-production:copy php.ini-production php.ini
- If you stay on the same PHP branch (for example 8.3), copy your existing
-
Copy the extension DLLs you added by hand, such as
php_sqlsrv.dll,php_pdo_sqlsrv.dllorphp_oci8.dll, from the oldextfolder. On a new PHP branch, download the builds for that branch instead. -
Check that DreamFactory can run on the new PHP. From the DreamFactory root directory, run Composer with the new
php.exe:C:\PHP\php-X.X.X\php.exe C:\ProgramData\ComposerSetup\bin\composer.phar check-platform-reqsEvery line must report
success. If thephpline reportsfailed, your DreamFactory version cannot run on this PHP version. Do not switch IIS to it. -
Enable required extensions in
php.ini:- See PHP Extensions Guide for the complete list
- Ensure SQL Server extensions are properly configured if using SQL Server
5. Configure IIS
-
Open IIS Manager
-
Access PHP Manager:
- Register new PHP version:
C:\php\php-cgi.exe - Verify extensions are enabled
- Check PHP configuration status
- Register new PHP version:
-
Restart Services:
iisreset
6. Verify Installation
-
Check PHP configuration:
- Use PHP Manager's "Check phpinfo()"
- Verify PHP version
- Confirm required extensions are loaded
-
Test DreamFactory:
- Access your DreamFactory instance
- Check the System Information page
- Verify all services are functioning
Troubleshooting
If DreamFactory stops working after the switch, roll back first: register the php-cgi.exe from your old PHP folder in PHP Manager, restore the old Path entry and run iisreset.
If you encounter issues:
-
Check PHP Version:
- Ensure you're using NTS version
- Verify architecture matches (x64/x86)
-
Verify Extensions:
- Review required extensions
- Check extension paths in
php.ini
-
Review Logs:
- Check PHP error logs
- Review IIS logs
- Examine DreamFactory logs
For additional help, contact DreamFactory Support.