No Code Attached Yet
avatar Ian-Johnston
Ian-Johnston
1 Mar 2026

Environment:
Windows Server 2022 (new install)
IIS 10
PHP 8.4 (FastCGI)
MySQL 8.0.45
Joomla 6.0.3 Full Package
NTFS permissions verified (IIS AppPool identity has Full Control on webroot)

Issue:
During web-based installation, fresh install on new OS, Joomla reports:

"Insufficient permission to create configuration.php. You can still continue the installation if you repair the permissions."

However:
PHP can successfully create files in the webroot (verified using file_put_contents test script).
NTFS ACLs confirm IIS AppPool\DefaultAppPool has (F) full control.
No Request Filtering rules block .php files.
No hidden segments configured.
No open_basedir restrictions.
web.config is standard. Tried various incarnations.
Database connectivity works correctly.

Observed Behavior:
Joomla Web installer refuses to proceed due to failed configuration.php creation check.
If configuration.php is manually created (empty), Joomla throws 500 error.
If configuration.php-dist is copied manually, installation partially proceeds but will not finalize properly (after progress bar completes).
CLI installation (individual multiline) fails at random, CLI goes haywire.
CLI installation (a single multi CLI entry - see below) (php installation/joomla.php install) works successfully and completes installation without issue.

Conclusion:
The web installer permission check for configuration.php appears to incorrectly detect write capability on IIS/Windows environments, despite valid NTFS permissions and confirmed PHP write capability.

Workaround:
Installation via CLI (single line only) completes successfully, i.e:
C:\PHP\php.exe installation\joomla.php install --site-name="FULLNAME" --admin-user="USER" --admin-username="USER" --admin-password="YOUR_PASS" --admin-email="you@example.com" --db-type="mysqli" --db-host="127.0.0.1" --db-user="joomla999_user" --db-pass="YOUR_DB_PASSWORD" --db-name="joomla999" --db-prefix="j123_" --db-encryption=0

I almost gave up until I tried the multi-line CLI method.......

UPDATE: Despite installing there seems to be some permissions issues lingering, i.e. saving global configuration changes. There still seems to be problems writing to configuration.php.

UPDATE2:
Issue Summary
Joomla 6 administrator could not save changes. The error reported was:
PHP Warning: file_put_contents(...configuration.php): Failed to open stream: Permission denied

Root Cause
The website was running under a hosting control panel–created isolated Windows user account, not the IIS Application Pool identity. File system permissions had been granted to the Application Pool identity, but not to the actual Windows user account executing PHP.

Because of this mismatch, PHP could read files but could not overwrite configuration.php. The function is_writable() returned false for both the directory and configuration.php.

Diagnosis
A PHP test script was used to execute whoami, which revealed the effective Windows identity being used by PHP. NTFS permissions were then checked and compared against that identity, revealing that the runtime user did not have write permissions.

Resolution
Modify NTFS permissions were granted to the actual runtime Windows user account on the website directory and its contents. After applying the correct permissions, is_writable() returned true and Joomla administrator save operations worked normally.

Preventative Note
When using Windows hosting control panels that create per-site Windows users, permissions must be granted to the actual runtime account used by PHP, not just the IIS Application Pool identity.

Ian.

avatar Ian-Johnston Ian-Johnston - open - 1 Mar 2026
avatar Ian-Johnston Ian-Johnston - change - 1 Mar 2026
Labels Removed: ?
avatar joomla-cms-bot joomla-cms-bot - change - 1 Mar 2026
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 1 Mar 2026
avatar brianteeman
brianteeman - comment - 1 Mar 2026

I doubt very much if anyone tests Joomla on IIS
It is extensively tested on Windows using Apache

avatar Ian-Johnston Ian-Johnston - change - 1 Mar 2026
The description was changed
avatar Ian-Johnston Ian-Johnston - edited - 1 Mar 2026
avatar Ian-Johnston Ian-Johnston - change - 1 Mar 2026
The description was changed
avatar Ian-Johnston Ian-Johnston - edited - 1 Mar 2026
avatar Ian-Johnston Ian-Johnston - change - 1 Mar 2026
The description was changed
avatar Ian-Johnston Ian-Johnston - edited - 1 Mar 2026
avatar Ian-Johnston Ian-Johnston - change - 1 Mar 2026
The description was changed
avatar Ian-Johnston Ian-Johnston - edited - 1 Mar 2026
avatar HLeithner
HLeithner - comment - 3 Mar 2026

Hi @Ian-Johnston you, it seems or you AI solved it for you. I think that can be closed right?

avatar Ian-Johnston Ian-Johnston - change - 3 Mar 2026
Status New Closed
Closed_Date 0000-00-00 00:00:00 2026-03-03 10:35:42
Closed_By Ian-Johnston
avatar Ian-Johnston Ian-Johnston - close - 3 Mar 2026

Add a Comment

Login with GitHub to post a comment