Fix Joomla directory permissions



  • Setting Joomla Directory Permissions

    After installing Joomla! 2.5 (1.5, 1.6, 1.7) you may need to fix the directory permissions in order to have Joomla! working without "permission denied" errors.

    To view the list of folders that need RW (read, write) rights, go to your Joomla! Administration panel (/administrator) and access "Site" >> "System Information" and select the "Directory Permissions" tab. You will see the full list of directories with the "Writable" or "Unwritable" status. You can change the file permissions for these directories one-by-one via the cPanel File Manager, FTP or any other way. If you have SSH acces, by running the following bash script, where you need to change the "username" for SERVERUSER and optionally add the INSTALLDIR:

    #!/bin/bash
    
    SERVERUSER="username"     #username on your server (same as login name for cPanel) /home/SERVERUSER
    INSTALLDIR=""            #optional, always start with "/" example: /myjoomla will point to www.your-domain.com/myjoomla directory
    
    #change JOOMLAPATH to point to your Joomla! installation directory, the setting below works on default cPanel servers
    #if SERVERUSER and INSTALLDIR is correctly set
    
    JOOMLAPATH="/home/$SERVERUSER/public_html$INSTALLDIR"
    echo "Home Directory: /home/"$SERVERUSER 
    echo "Joomla Install:" $JOOMLAPATH
    
    #verify and accept before running chmod on Joomla! directories
    read -p "Continue with chmod (y/n)?"
        if [ $REPLY != "y" ]; then
        echo "Exiting..."
        exit 1
        fi
    
    chmod -v 0777 $JOOMLAPATH/administrator/components
    chmod -v 0777 $JOOMLAPATH/administrator/language
    chmod -v 0777 $JOOMLAPATH/administrator/language/en-GB
    chmod -v 0777 $JOOMLAPATH/administrator/language/overrides
    chmod -v 0777 $JOOMLAPATH/administrator/manifests/files
    chmod -v 0777 $JOOMLAPATH/administrator/manifests/libraries
    chmod -v 0777 $JOOMLAPATH/administrator/manifests/packages
    chmod -v 0777 $JOOMLAPATH/administrator/modules
    chmod -v 0777 $JOOMLAPATH/administrator/templates
    chmod -v 0777 $JOOMLAPATH/components
    chmod -v 0777 $JOOMLAPATH/images
    chmod -v 0777 $JOOMLAPATH/images/banners
    chmod -v 0777 $JOOMLAPATH/images/sampledata
    chmod -v 0777 $JOOMLAPATH/images/stories
    chmod -v 0777 $JOOMLAPATH/language
    chmod -v 0777 $JOOMLAPATH/language/en-GB
    chmod -v 0777 $JOOMLAPATH/language/overrides
    chmod -v 0777 $JOOMLAPATH/libraries
    chmod -v 0777 $JOOMLAPATH/media
    chmod -v 0777 $JOOMLAPATH/modules
    chmod -v 0777 $JOOMLAPATH/plugins
    chmod -v 0777 $JOOMLAPATH/plugins/authentication
    chmod -v 0777 $JOOMLAPATH/plugins/captcha
    chmod -v 0777 $JOOMLAPATH/plugins/content
    chmod -v 0777 $JOOMLAPATH/plugins/editors
    chmod -v 0777 $JOOMLAPATH/plugins/editors-xtd
    chmod -v 0777 $JOOMLAPATH/plugins/extension
    chmod -v 0777 $JOOMLAPATH/plugins/finder
    chmod -v 0777 $JOOMLAPATH/plugins/quickicon
    chmod -v 0777 $JOOMLAPATH/plugins/search
    chmod -v 0777 $JOOMLAPATH/plugins/smartsearch
    chmod -v 0777 $JOOMLAPATH/plugins/system
    chmod -v 0777 $JOOMLAPATH/plugins/user
    chmod -v 0777 $JOOMLAPATH/templates
    chmod -v 0777 $JOOMLAPATH/configuration.php
    chmod -v 0777 $JOOMLAPATH/cache
    chmod -v 0777 $JOOMLAPATH/administrator/cache
    chmod -v 0777 $JOOMLAPATH/logs
    chmod -v 0777 $JOOMLAPATH/tmp
    
    exit 0
    
    

    - as result, all directories should be "Writable":
    administrator/components - Writable
    administrator/language - Writable
    administrator/language/en-GB - Writable
    administrator/language/overrides - Writable
    administrator/manifests/files - Writable
    administrator/manifests/libraries - Writable
    administrator/manifests/packages - Writable
    administrator/modules - Writable
    administrator/templates - Writable
    components - Writable
    images - Writable
    images/banners - Writable
    images/sampledata - Writable
    images/stories - Writable
    language - Writable
    language/en-GB - Writable
    language/overrides - Writable
    libraries - Writable
    media - Writable
    modules - Writable
    plugins - Writable
    plugins/authentication - Writable
    plugins/captcha - Writable
    plugins/content - Writable
    plugins/editors - Writable
    plugins/editors-xtd - Writable
    plugins/extension - Writable
    plugins/finder - Writable
    plugins/quickicon - Writable
    plugins/search - Writable
    plugins/smartsearch - Writable
    plugins/system - Writable
    plugins/user - Writable
    templates - Writable
    configuration.php - Writable
    cache (Cache Directory) - Writable
    administrator/cache (Cache Directory) - Writable
    /logs (Log directory) - Writable
    /tmp (Temp directory) - Writable



  • Upgrading 1.6.5 to 1.7: http://docs.joomla.org/Upgrading_1.6.5_to_1.7

    In case the Quick Update fails with "Copy failed" error

    -1 - An error has occurred.
    Copy failed

    Return to Control Panel

    you can try changing the owner of the files in order to make them writable for joomla

    Here is a shell (linux) script to chown files automatically. You need to change the "username" for SERVERUSER and optionally add the INSTALLDIR:

    #!/bin/bash
    
    SERVERUSER="username"       #username on your server (same as login name for cPanel) /home/SERVERUSER
    INSTALLDIR=""               #optional, always start with "/" example: /myjoomla will point to www.your-domain.com/myjoom
    
    #change JOOMLAPATH to point to your Joomla! installation directory, the setting below works on default cPanel servers
    #if SERVERUSER and INSTALLDIR is correctly set
    
    JOOMLAPATH="/home/$SERVERUSER/public_html$INSTALLDIR"
    echo "Home Directory: /home/"$SERVERUSER
    echo "Joomla Install:" $JOOMLAPATH
    
    #verify and accept before changing owner of files
    read -p "Continue with chown (y/n)?"
        if [ $REPLY != "y" ]; then
            echo "Exiting..."
            exit 1
        fi
    
    #chown files if Joomla 1.7 upgrade fails
    chown -v nobody:nobody $JOOMLAPATH/LICENSE.txt
    chown -v nobody:nobody $JOOMLAPATH/README.txt
    chown -v nobody:nobody $JOOMLAPATH/htaccess.txt
    chown -v nobody:nobody $JOOMLAPATH/index.php
    chown -v nobody:nobody $JOOMLAPATH/robots.txt
    chown -v nobody:nobody $JOOMLAPATH/web.config.txt
    chown -v nobody:nobody $JOOMLAPATH/joomla.xml
    
    #verify and accept before changing owner of folders
    read -p "Continue with chown (y/n)?"
        if [ $REPLY != "y" ]; then
            echo "Exiting..."
            exit 1
        fi
    
    #and directories
    chown -vR nobody:nobody $JOOMLAPATH/administrator
    chown -vR nobody:nobody $JOOMLAPATH/cache
    chown -vR nobody:nobody $JOOMLAPATH/components
    chown -vR nobody:nobody $JOOMLAPATH/images
    chown -vR nobody:nobody $JOOMLAPATH/includes
    chown -vR nobody:nobody $JOOMLAPATH/language
    chown -vR nobody:nobody $JOOMLAPATH/libraries
    chown -vR nobody:nobody $JOOMLAPATH/logs
    chown -vR nobody:nobody $JOOMLAPATH/media
    chown -vR nobody:nobody $JOOMLAPATH/modules
    chown -vR nobody:nobody $JOOMLAPATH/plugins
    chown -vR nobody:nobody $JOOMLAPATH/templates
    chown -vR nobody:nobody $JOOMLAPATH/cli
    chown -vR nobody:nobody $JOOMLAPATH/installation
    
    exit 0
    
    

Log in to reply
 

© 2108 H7 | Powered by NodeBB

Looks like your connection to H7 was lost, please wait while we try to reconnect.