# Update Fails (Log file path not writable) on Windows, Apache, PHP environment

When running the One Click Update on a new installation of ExpressionEngine 5.2.3, the update fails with the following messages:

We stopped on Updating files.

Log file path not writable:[Server path]\system/user/cache/ee_update

The error message also provided the stack trace below. The full server path has been replaced with [Server path].

#0 [Server path]\system\ee\updater\EllisLab\ExpressionEngine\Updater\Service\Updater\Runner.php(351): EllisLab\ExpressionEngine\Updater\Service\Logger\File->__construct(‘[Server path]…’, Object(EllisLab\ExpressionEngine\Updater\Library\Filesystem\Filesystem), false)

#1 [Server path]\system\ee\updater\EllisLab\ExpressionEngine\Updater\Service\Updater\Runner.php(37): EllisLab\ExpressionEngine\Updater\Service\Updater\Runner->makeLoggerService()

#2 [Server path]\system\ee\updater\EllisLab\ExpressionEngine\Updater\Controller\Updater\Updater.php(34): EllisLab\ExpressionEngine\Updater\Service\Updater\Runner->__construct()

#3 [Server path]\system\ee\updater\boot.php(94): EllisLab\ExpressionEngine\Updater\Controller\Updater\Updater->run()

#4 [Server path]\system\ee\updater\boot.php(65): routeRequest(‘updater’, ‘updater’, ‘run’)

#5 [Server path]\hq.php(143): require_once(‘[Server path]…’)

#6 {main}

[00:18:45 -0500] Maximum execution time: 0

[00:18:45 -0500] Memory limit: 256M

[00:18:45 -0500] Checking file permissions needed to complete the update

[00:18:45 -0500] Cleaning up upgrade working directory

[00:18:45 -0500] Old zip archives found, deleting

[00:18:45 -0500] Old extracted archives found, deleting

[00:18:46 -0500] Checking free disk space

[00:18:46 -0500] Free disk space (bytes): 38158372864

[00:18:55 -0500] Unzipping package

[00:19:03 -0500] Package unzipped

[00:19:03 -0500] Verifying integrity of unzipped package

[00:19:04 -0500] Package contents successfully verified

[00:19:04 -0500] Checking server requirements of new ExpressionEngine version

[00:19:04 -0500] Server requirements check passed with flying colors

[00:19:04 -0500] Moving the updater micro app into place

[00:19:04 -0500] Taking the site offline

ExpressionEngine is installed on a server running Windows Server 2016 with Apache 2.4, PHP 7 and MySQL 8. The system is installed and appears to be working normally except for this update error. This is a new installation, and I have not been able to previously run the updater successfully.

I can confirm that ExpressionEngine is able to write to the \system\user\cache directory in two ways:

• The updater is able to create the ee_update directory within the cache directory and successfully download and write the following directories and files:

• ExpressionEngine (dir)
• configs.json
• ExpressionEngine.zip
• index.html
• update.txt
• Also, I am able to run and successfully complete the Database Backup Utility from the Control Panel, which results in a SQL text file written to \system\user\cache.

While the error code clearly points to a permissions issue, my understanding is that default installations of Apache on Windows Server run under the System account, which has full permissions to the \system\user\cache directory.

I confirmed that PHP is running as the System account by running the following statement:

<?php echo exec('whoami'); ?>


I wondered if differences in the use of \ and / to separate file paths in UNIX and Windows might be an issue, but I am able to navigate to the [Server path]\system/user/cache/ee_update directory given by the update error message from the command line.

Any ideas for troubleshooting or a fix for this issue? Any guidance would be a huge help! Thank you!

• Might be worth checking with the Ellis Labs bods about use of MySQL 8. Others have reported issues when using it (for example, here - expressionengine.com/forums/topic/252210/… ) – JCOGS Design Jun 28 '19 at 11:23
• Thanks for the great idea! I was aware of Robin Sowell's post last fall on MySQL 8 and ExpressionEngine compatibility and handled that when I set up the MySQL 8 installation. Just confirmed on the server that it is using the mysql_native_password format for the default_authentication_plugin. Since the rest of ExpressionEngine is functioning normally (Control Panel access, logins, etc.), the problem may be elsewhere. Thanks for taking time to eliminate another possible source of error! – RDW Jun 28 '19 at 21:46