WowCodesDocs

Folders your store must be able to write

Your store writes its settings, add-ons, images, logs and updates to a handful of folders. When PHP can't write to one of them, the page that needs it names the folder. Here is the full list and what each one is for.

The folders

PHP, running as your web server's user, must be able to write to these. Usually that means permission 755, with the folder owned by the web server's user.

FolderWhat is written there
The site folder itselfThe .env settings file on a store without a private folder, and the short-lived file the licence server checks when you reinstall on the same domain.
plugins/Add-ons you install and update.
assets/themes/Themes you install and update.
images/Logos and uploaded images.
storage/The licence file, and the work area of core updates (storage/kernel-update/).
logs/The PHP error log, on a store without a private folder.
The private folderSettings, licence, backups and logs, once they move outside the site. The folder above your site must be writable for it to be made.
PHP's temporary folderDownloads are put together here before they're unpacked.

For core updates

A core update replaces the store's own files, so PHP must also be able to write to the site folder and these folders in it: admin, includes, assets, components, vendor, install, database, language, api, ajax and cron. Appearance Software update checks this first and lists any it can't write.

Where a missing permission shows up

WhereWhat you see
Setup wizard, step 1"The … folder can be written" fails, with the full path to fix.
Installing or updating an add-on"Install directory is not writable."
Software update"Site files are writable by PHP" in red, naming the folders.
Uploading an imageSecurity Logs Upload Logs gives the reason; images/ must be writable.
Cron Logs, changing the key"Could not save the key: the .env file is not writable."
Server checkThe private folder shows "Not writable".
Server errors"The error log cannot be read": give the web server's user read and write access to the file it names.

After copying the site to another server

Copies often change who owns the files. If the store then says its .env file "is on the server but PHP is not allowed to read it", give the PHP user read access to the file it names. See Move your store to a new server or domain.

Don't open folders to everyone

Write access for the web server's user is enough. The store creates its private folder with tight permissions (0750) on purpose; leave them as they are.

Something wrong or unclear on this page? Tell us at [email protected], or see how to get help.