Articles on: Magento 2 Pearl Theme User Guide

How to set Magento 2 permissions and avoid installation errors

If you encounter installation issues or read/write errors in Magento 2, you may need to correct file permissions and ownership. Below are recommended setups for basic and advanced permissions.



1. Basic Permissions Setup


We recommend the following permissions for Magento:


  • Directories: 711
  • PHP files: 600
  • All other files: 644


Run these commands from your Magento root:


find . -type d -exec chmod 0711 {} +

find . -type f -exec chmod 0644 {} +

find . -type f -name "*.php" -exec chmod 600 {} +


Set the correct ownership (replace <owner>:<group> with your actual user and group):


chown -R <owner>:<group> .


Common groups include: www-data:www-data, root:root, www-data:magento — but this depends on your server setup.


Finally, make bin/magento executable:


chmod u+x bin/magento



2. Advanced Permissions Setup


On private servers, you may log in as one user but run the web server as another. In this case, both users need to be in the same group to allow proper file access.


Step 1 — Find your username


whoami


Step 2 — Identify the web server user


ps aux | grep apache


Usually, it’s www-data.


Step 3 — Find the web server group


groups www-data


(Replace www-data with your web server user if different.)


Step 4 — Add your user to the web server group


sudo usermod -a -G www-data <your_username>


Step 5 — Confirm group membership


groups <your_username>


Your username should now be listed as a member of multiple groups, including www-data.

Restart your web server to apply changes:


  • Ubuntu:


service apache2 restart


  • CentOS:


service httpd restart


Step 6 — Set ownership and permissions


Navigate to your Magento installation directory and run:


cd <your Magento install directory>

find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +

find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +

sudo chown -R <your_username>:<web server group> .

chmod u+x bin/magento


You can also run it in one line (assuming group is www-data):


find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + && find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chown -R www-data:www-data . && chmod u+x bin/magento


If permissions cannot be set by the Magento user, use root privileges:


sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \; && sudo find var vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} \; && sudo chown -R www-data:www-data . && sudo chmod u+x bin/magento



Notes


  • FTP uploads: Files copied via FTP may have incorrect permissions or group ownership. Rerun the permission setup after copying.
  • Group mismatch: Ensure your user belongs to the same group as Magento files. Otherwise, newly copied files may cause installation errors.


For more details, see:

[Bitnami AWS - Installation issues with Magento 2 Theme or Extensions Solved]

Updated on: 16/09/2025

Was this article helpful?

Share your feedback

Cancel

Thank you!