{"id":354,"date":"2014-02-27T17:45:38","date_gmt":"2014-02-27T22:45:38","guid":{"rendered":"http:\/\/underhost.com\/blog\/?p=354"},"modified":"2026-10-23T09:54:25","modified_gmt":"2026-10-23T13:54:25","slug":"joomla-suphp-and-file-permissions","status":"publish","type":"post","link":"https:\/\/underhost.com\/blog\/joomla-suphp-and-file-permissions\/","title":{"rendered":"Joomla File Permissions on cPanel: Safe Settings and How to Fix Errors (2026)"},"content":{"rendered":"<div class=\"uh-blog-hero\" style=\"margin:0 0 40px;text-align:center;padding:48px 24px;border-radius:20px;background:linear-gradient(135deg,#0D1F3C 0%,#125A8A 58%,#176EA5 100%);color:#ffffff;box-shadow:0 20px 40px -15px rgba(13,31,60,0.28);position:relative;overflow:hidden;\">\n<div style=\"display:inline-flex;align-items:center;gap:8px;padding:7px 14px;margin-bottom:16px;border:1px solid rgba(0,212,255,0.32);border-radius:999px;color:#DFF8FF;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,212,255,0.10);\"><i class=\"fas fa-terminal\" style=\"color:#00D4FF;\"><\/i> Linux<\/div>\n<h1 style=\"color:#ffffff;font-size:clamp(32px,5vw,46px);line-height:1.12;margin:0 0 14px;font-weight:800;\">Joomla File Permissions on cPanel: Safe Settings and How to Fix Errors (2026)<\/h1>\n<\/div>\n<div class=\"uh-blog-excerpt\" style=\"border-left:4px solid #00D4FF;padding:18px 20px;margin:0 0 34px;background:#F8FAFC;color:#1F2937;border-radius:0 14px 14px 0;box-shadow:0 8px 28px rgba(13,31,60,0.08);line-height:1.75;\"><strong style=\"color:#0D1F3C;\">Short answer:<\/strong> Set folders to <strong>755<\/strong> and files to <strong>644<\/strong>, make sure every file is owned by your cPanel user, and never use <strong>777<\/strong>. On cPanel, PHP runs as your account, so Joomla can write to its cache, tmp, logs and images folders without any world-writable permissions. Check the result in Joomla under <strong>System &gt; System Information &gt; Folder Permissions<\/strong>.<\/div>\n<nav aria-label=\"Table of contents\" class=\"uh-toc\" style=\"background:#ffffff;border:1px solid #E5E7EB;border-radius:16px;padding:20px 22px;margin:0 0 34px;box-shadow:0 4px 12px rgba(13,31,60,0.08);\">\n<div style=\"font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#176EA5;margin-bottom:10px;\"><i class=\"fas fa-list\" style=\"color:#00D4FF;\"><\/i> In this guide<\/div>\n<ol style=\"margin:0;padding-left:20px;columns:2 260px;column-gap:28px;line-height:1.9;\">\n<li><a href=\"#how-file-permissions-work\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">How file permissions work<\/a><\/li>\n<li><a href=\"#why-777-breaks-joomla-on-cpanel\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Why 777 breaks Joomla on cPanel<\/a><\/li>\n<li><a href=\"#the-settings-to-use\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">The settings to use<\/a><\/li>\n<li><a href=\"#folders-joomla-needs-to-write-to\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Folders Joomla needs to write to<\/a><\/li>\n<li><a href=\"#fix-permissions-over-ssh\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Fix permissions over SSH<\/a><\/li>\n<li><a href=\"#fix-ownership-after-a-migration\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Fix ownership after a migration<\/a><\/li>\n<li><a href=\"#change-permissions-in-cpanel-file-manager\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Change permissions in cPanel File Manager<\/a><\/li>\n<li><a href=\"#upload-limits\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Upload limits<\/a><\/li>\n<li><a href=\"#protect-sensitive-files\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Protect sensitive files<\/a><\/li>\n<li><a href=\"#upload-as-the-right-user\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Upload as the right user<\/a><\/li>\n<li><a href=\"#check-permissions-inside-joomla\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Check permissions inside Joomla<\/a><\/li>\n<li><a href=\"#check-which-php-handler-the-site-uses\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Check which PHP handler the site uses<\/a><\/li>\n<li><a href=\"#common-permission-errors\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Common permission errors<\/a><\/li>\n<li><a href=\"#keep-joomla-secure\" style=\"color:#176EA5;text-decoration:none;font-weight:600;\">Keep Joomla secure<\/a><\/li>\n<\/ol>\n<\/nav>\n<div class=\"uh-post-content\" style=\"color:#1F2937;font-size:16px;line-height:1.75;\">\n<h2 id=\"how-file-permissions-work\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-info-circle\" style=\"color:#00D4FF;\"><\/i> How file permissions work<\/h2>\n<p style=\"margin:0 0 18px;\">Every file and folder on a Linux server has an owner, a group, and three sets of permissions: for the owner, for the group, and for everyone else. Each set can allow reading (4), writing (2) and executing or opening a folder (1). The three digits in a permission such as 755 are those sets added up.<\/p>\n<div style=\"overflow-x:auto;margin:26px 0;border:1px solid #E5E7EB;border-radius:14px;-webkit-overflow-scrolling:touch;\">\n<table style=\"width:100%;border-collapse:collapse;background:#ffffff;color:#1F2937;font-size:15px;line-height:1.55;margin:0;min-width:600px;\">\n<thead>\n<tr style=\"background:#0D1F3C;color:#fff;\">\n<th style=\"padding:14px;text-align:left;\">Permission<\/th>\n<th style=\"padding:14px;text-align:left;\">Owner<\/th>\n<th style=\"padding:14px;text-align:left;\">Group<\/th>\n<th style=\"padding:14px;text-align:left;\">Everyone else<\/th>\n<th style=\"padding:14px;text-align:left;\">Use it for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">755<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read, write, open<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read, open<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read, open<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Folders<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">644<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read, write<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Files<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">444<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">read<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">configuration.php after setup (optional)<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">777<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">everything<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">everything<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">everything<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Never. Anyone on the server could change the file.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 id=\"why-777-breaks-joomla-on-cpanel\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-info-circle\" style=\"color:#00D4FF;\"><\/i> Why 777 breaks Joomla on cPanel<\/h2>\n<p style=\"margin:0 0 18px;\">On a modern cPanel server, PHP runs under your own cPanel user, through PHP-FPM or the handler selected in MultiPHP Manager. Your account already owns its files, so Joomla can write where it needs to. Setting files or folders to 777 adds nothing except risk: it lets other processes change them. Many servers refuse to run PHP from world-writable files, so 777 often causes a <strong>500 Internal Server Error<\/strong> instead of fixing anything.<\/p>\n<h2 id=\"the-settings-to-use\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> The settings to use<\/h2>\n<ul style=\"list-style:none;padding-left:0;\">\n<li style=\"margin:0 0 8px;\">\u2713 All folders: <strong>755<\/strong>.<\/li>\n<li style=\"margin:0 0 8px;\">\u2713 All files: <strong>644<\/strong>.<\/li>\n<li style=\"margin:0 0 8px;\">\u2713 <code>configuration.php<\/code>: <strong>644<\/strong>, or <strong>444<\/strong> once the site is set up. Joomla can make it read-only for you.<\/li>\n<li style=\"margin:0 0 8px;\">\u2713 Owner and group of every file: <strong>your cPanel user<\/strong>, not root and not nobody.<\/li>\n<\/ul>\n<h2 id=\"folders-joomla-needs-to-write-to\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> Folders Joomla needs to write to<\/h2>\n<div style=\"overflow-x:auto;margin:26px 0;border:1px solid #E5E7EB;border-radius:14px;-webkit-overflow-scrolling:touch;\">\n<table style=\"width:100%;border-collapse:collapse;background:#ffffff;color:#1F2937;font-size:15px;line-height:1.55;margin:0;\">\n<thead>\n<tr style=\"background:#0D1F3C;color:#fff;\">\n<th style=\"padding:14px;text-align:left;\">Folder<\/th>\n<th style=\"padding:14px;text-align:left;\">Used for<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\"><code>administrator\/cache<\/code>, <code>cache<\/code><\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Page and system cache<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\"><code>tmp<\/code><\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Uploads and installing extensions<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\"><code>administrator\/logs<\/code> (or your log folder)<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Error and activity logs<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\"><code>images<\/code><\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Media uploaded through the Media Manager<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\"><code>media<\/code>, <code>plugins<\/code>, <code>components<\/code> and similar<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Installing and updating extensions<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p style=\"margin:0 0 18px;\">With 755 folders owned by your account, all of these are writable by Joomla. You do not need special permissions for them.<\/p>\n<h2 id=\"fix-permissions-over-ssh\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-terminal\" style=\"color:#00D4FF;\"><\/i> Fix permissions over SSH<\/h2>\n<p style=\"margin:0 0 18px;\">Run these commands from the Joomla root folder. Replace the path with your own site folder.<\/p>\n<pre style=\"background:#0D1F3C;color:#EAF6FF;padding:18px 20px;border-radius:14px;overflow-x:auto;line-height:1.7;font-size:15px;\"><code>cd \/home\/youraccount\/public_html\n\n# Folders to 755, files to 644\nfind . -type d -exec chmod 755 {} \\;\nfind . -type f -exec chmod 644 {} \\;\n\n# Lock the configuration file once the site works (optional)\nchmod 444 configuration.php<\/code><\/pre>\n<h2 id=\"fix-ownership-after-a-migration\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> Fix ownership after a migration<\/h2>\n<p style=\"margin:0 0 18px;\">If files were copied as root, extracted from an archive, or restored by hand, they may belong to the wrong user. Joomla then cannot write to them. Fix the ownership as root, replacing <code>youraccount<\/code> with the cPanel user name:<\/p>\n<pre style=\"background:#0D1F3C;color:#EAF6FF;padding:18px 20px;border-radius:14px;overflow-x:auto;line-height:1.7;font-size:15px;\"><code>chown -R youraccount:youraccount \/home\/youraccount\/public_html<\/code><\/pre>\n<p style=\"margin:0 0 18px;\">If you do not have root access, ask your host to fix the ownership. In cPanel, the File Manager shows the owner of each file in its permissions view.<\/p>\n<h2 id=\"change-permissions-in-cpanel-file-manager\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> Change permissions in cPanel File Manager<\/h2>\n<p style=\"margin:0 0 18px;\">Without SSH, use the File Manager in cPanel:<\/p>\n<ol style=\"margin:0 0 24px;padding-left:22px;\">\n<li style=\"margin:0 0 8px;\">Open <strong>Files &gt; File Manager<\/strong> and go to the Joomla folder.<\/li>\n<li style=\"margin:0 0 8px;\">Select a file or folder and click <strong>Permissions<\/strong>.<\/li>\n<li style=\"margin:0 0 8px;\">Set the boxes to match 755 for folders or 644 for files, then save.<\/li>\n<\/ol>\n<p style=\"margin:0 0 18px;\">File Manager changes one item at a time, so use SSH or ask support for whole-site changes.<\/p>\n<h2 id=\"upload-limits\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> Upload limits<\/h2>\n<p style=\"margin:0 0 18px;\">If large uploads fail even with correct permissions, the PHP upload limits are too low. In cPanel, open <strong>MultiPHP INI Editor<\/strong>, choose the domain, and raise <code>upload_max_filesize<\/code> and <code>post_max_size<\/code>. Keep <code>post_max_size<\/code> a little larger than <code>upload_max_filesize<\/code>.<\/p>\n<h2 id=\"protect-sensitive-files\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-shield-alt\" style=\"color:#00D4FF;\"><\/i> Protect sensitive files<\/h2>\n<ul style=\"margin:0 0 24px;padding-left:22px;\">\n<li style=\"margin:0 0 8px;\">Do not leave backup copies such as <code>configuration.php.bak<\/code> or site archives inside <code>public_html<\/code>. Anyone could download them.<\/li>\n<li style=\"margin:0 0 8px;\">Keep site backups outside the web root, or off the server.<\/li>\n<li style=\"margin:0 0 8px;\">Turn off directory listing, so visitors cannot browse folders without an index file.<\/li>\n<li style=\"margin:0 0 8px;\">Remove installation and test files once the site is live.<\/li>\n<\/ul>\n<h2 id=\"upload-as-the-right-user\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-angle-double-right\" style=\"color:#00D4FF;\"><\/i> Upload as the right user<\/h2>\n<p style=\"margin:0 0 18px;\">Ownership problems usually start with how files were uploaded. Upload with SFTP or FTP using your cPanel account, not as root, and extract archives in File Manager or over SSH as the account user. The files then belong to the right user from the start, and Joomla can write to them.<\/p>\n<h2 id=\"check-permissions-inside-joomla\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-clipboard-check\" style=\"color:#00D4FF;\"><\/i> Check permissions inside Joomla<\/h2>\n<ol style=\"margin:0 0 24px;padding-left:22px;\">\n<li style=\"margin:0 0 8px;\">Log in to the Joomla administrator.<\/li>\n<li style=\"margin:0 0 8px;\">Open <strong>System &gt; System Information<\/strong>.<\/li>\n<li style=\"margin:0 0 8px;\">Open the <strong>Folder Permissions<\/strong> tab.<\/li>\n<li style=\"margin:0 0 8px;\">Every folder should show <strong>Writable<\/strong>. Any folder marked Unwritable needs its permissions or owner fixed.<\/li>\n<\/ol>\n<h2 id=\"check-which-php-handler-the-site-uses\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-clipboard-check\" style=\"color:#00D4FF;\"><\/i> Check which PHP handler the site uses<\/h2>\n<p style=\"margin:0 0 18px;\">In WHM, open <strong>MultiPHP Manager<\/strong> to see the PHP version and handler for the domain. With PHP-FPM, PHP runs as your account, which is what you want. If an account owner sees odd permission problems after a PHP change, check this page first.<\/p>\n<h2 id=\"common-permission-errors\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-exclamation-triangle\" style=\"color:#00D4FF;\"><\/i> Common permission errors<\/h2>\n<div style=\"overflow-x:auto;margin:26px 0;border:1px solid #E5E7EB;border-radius:14px;-webkit-overflow-scrolling:touch;\">\n<table style=\"width:100%;border-collapse:collapse;background:#ffffff;color:#1F2937;font-size:15px;line-height:1.55;margin:0;min-width:600px;\">\n<thead>\n<tr style=\"background:#0D1F3C;color:#fff;\">\n<th style=\"padding:14px;text-align:left;\">Error<\/th>\n<th style=\"padding:14px;text-align:left;\">Likely cause<\/th>\n<th style=\"padding:14px;text-align:left;\">Fix<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">500 Internal Server Error<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Files or folders set to 777, or a broken .htaccess<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Reset to 755 and 644, then rename .htaccess temporarily to test.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Unable to write to the cache or tmp folder<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">The folder belongs to another user<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Fix the ownership with chown, as shown above.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Extension installation fails<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">The tmp folder path in Global Configuration is wrong, or not writable<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Check the Path to Temp Folder in Global Configuration and its permissions.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Cannot save Global Configuration<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">configuration.php is read-only<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Set it to 644, save the changes, then set it back to 444.<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Uploaded images do not appear<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">The images folder or the uploaded files have the wrong owner<\/td>\n<td style=\"padding:14px;border-top:1px solid #E5E7EB;vertical-align:top;\">Fix the ownership, and check the PHP upload limits.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 id=\"keep-joomla-secure\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-shield-alt\" style=\"color:#00D4FF;\"><\/i> Keep Joomla secure<\/h2>\n<ul style=\"margin:0 0 24px;padding-left:22px;\">\n<li style=\"margin:0 0 8px;\">Update Joomla and every extension when updates come out.<\/li>\n<li style=\"margin:0 0 8px;\">Remove extensions you no longer use.<\/li>\n<li style=\"margin:0 0 8px;\">Use strong, unique admin passwords and turn on two-factor authentication.<\/li>\n<li style=\"margin:0 0 8px;\">Keep daily backups off the server. See our <a href=\"https:\/\/underhost.com\/blog\/automatic-cpanel-backup-domain-mysql-with-cron-php\/\">automatic cPanel backups guide<\/a>.<\/li>\n<\/ul>\n<p style=\"margin:0 0 18px;\">For the general rules on cPanel, see our <a href=\"https:\/\/underhost.com\/blog\/cpanel-tutorial-files-file-permissions\/\">cPanel file permissions tutorial<\/a> and our <a href=\"https:\/\/underhost.com\/blog\/joomla-hosting-optimized-solutions-for-a-faster-safer-and-scalable-website\/\">Joomla hosting guide<\/a>.<\/p>\n<div aria-hidden=\"true\" class=\"uh-section-divider\" style=\"width:min(100% - 32px, 1080px);margin:44px auto;display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;gap:18px;pointer-events:none;\"><span style=\"height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,0.40),rgba(23,110,165,0.24),transparent);\"><\/span><img alt=\"\" decoding=\"async\" height=\"32\" loading=\"lazy\" src=\"https:\/\/cdn.underhost.com\/android-chrome-192x192.webp\" style=\"width:32px;height:32px;display:block;border-radius:8px;filter:drop-shadow(0 0 14px rgba(0,212,255,0.30));\" width=\"32\"\/><span style=\"height:1px;background:linear-gradient(90deg,transparent,rgba(23,110,165,0.24),rgba(0,212,255,0.40),transparent);\"><\/span><\/div>\n<\/div>\n<div class=\"uh-blog-cta\" style=\"background:linear-gradient(135deg,#0D1F3C 0%,#125A8A 58%,#176EA5 100%);color:#ffffff;padding:36px 24px;border-radius:20px;text-align:center;margin:44px 0;box-shadow:0 20px 40px -15px rgba(13,31,60,0.32);\">\n<h2 style=\"margin:0 0 12px;font-size:28px;line-height:1.25;color:#ffffff;\">Need help with this?<\/h2>\n<p style=\"font-size:17px;margin:0 auto 22px;color:#EAF6FF;max-width:720px;line-height:1.7;\">Running Joomla? Our cPanel hosting runs PHP as your own account, with daily backups and support that understands Joomla.<\/p>\n<p><a href=\"https:\/\/underhost.com\/shared-hosting.php\" style=\"background:linear-gradient(90deg,#00D4FF,#0077FF);color:#ffffff;padding:13px 28px;border-radius:10px;text-decoration:none;font-weight:800;display:inline-block;margin:8px;\">See web hosting plans<\/a><a href=\"https:\/\/customerpanel.ca\/client\/\" style=\"background:transparent;color:#ffffff;padding:12px 28px;border-radius:10px;text-decoration:none;font-weight:800;display:inline-block;margin:8px;border:1px solid rgba(255,255,255,0.32);\">Contact @CustomerPanel<\/a><\/div>\n<div class=\"uh-faq-section\" id=\"faq\" style=\"margin:34px 0;scroll-margin-top:90px;\">\n<h2 style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:0 0 18px;border-bottom:2px solid rgba(0,212,255,0.22);padding-bottom:10px;\">Frequently asked questions<\/h2>\n<div style=\"margin-top:18px;background:#F8FAFC;padding:18px 20px;border-radius:14px;border:1px solid rgba(23,110,165,0.14);\">\n<h3 style=\"color:#0D1F3C;margin:0 0 8px;font-size:19px;\">What permissions should Joomla files have?<\/h3>\n<p style=\"margin:0;color:#1F2937;line-height:1.7;\">Folders 755 and files 644, all owned by your cPanel user. configuration.php can be 444 once the site is set up.<\/p>\n<\/div>\n<div style=\"margin-top:18px;background:#F8FAFC;padding:18px 20px;border-radius:14px;border:1px solid rgba(23,110,165,0.14);\">\n<h3 style=\"color:#0D1F3C;margin:0 0 8px;font-size:19px;\">Should I ever use 777 for Joomla?<\/h3>\n<p style=\"margin:0;color:#1F2937;line-height:1.7;\">No. On cPanel, PHP runs as your account, so 777 is never needed. It lets other processes change your files and often causes 500 errors.<\/p>\n<\/div>\n<div style=\"margin-top:18px;background:#F8FAFC;padding:18px 20px;border-radius:14px;border:1px solid rgba(23,110,165,0.14);\">\n<h3 style=\"color:#0D1F3C;margin:0 0 8px;font-size:19px;\">Why does Joomla say a folder is unwritable?<\/h3>\n<p style=\"margin:0;color:#1F2937;line-height:1.7;\">Usually the folder belongs to a different user, for example after a migration or a restore done as root. Fix the ownership with chown, or ask your host to.<\/p>\n<\/div>\n<div style=\"margin-top:18px;background:#F8FAFC;padding:18px 20px;border-radius:14px;border:1px solid rgba(23,110,165,0.14);\">\n<h3 style=\"color:#0D1F3C;margin:0 0 8px;font-size:19px;\">Do I need to change permissions after a Joomla update?<\/h3>\n<p style=\"margin:0;color:#1F2937;line-height:1.7;\">No. Updates keep the existing permissions. If an update fails, check System Information for unwritable folders, then fix the ownership or permissions and run the update again.<\/p>\n<\/div>\n<div style=\"margin-top:18px;background:#F8FAFC;padding:18px 20px;border-radius:14px;border:1px solid rgba(23,110,165,0.14);\">\n<h3 style=\"color:#0D1F3C;margin:0 0 8px;font-size:19px;\">Where can I see folder permissions in Joomla?<\/h3>\n<p style=\"margin:0;color:#1F2937;line-height:1.7;\">In the administrator, open System &gt; System Information and the Folder Permissions tab.<\/p>\n<\/div>\n<\/div>\n<p><!-- uh-related-start --><\/p>\n<div style=\"background:#F4F8FC;border:1px solid #DCE7F3;border-radius:14px;padding:18px 22px;margin:32px 0 8px;\">\n<h2 style=\"margin:0 0 12px;font-size:22px;\">Related guides<\/h2>\n<ul style=\"margin:0;padding-left:20px;\">\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/underhost.com\/blog\/cpanel-tutorial-files-file-permissions\/\">cPanel Tutorial: Files &#8211; File Permissions<\/a><\/li>\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/underhost.com\/blog\/joomla-hosting-optimized-solutions-for-a-faster-safer-and-scalable-website\/\">Joomla Hosting: Optimized Solutions for a Faster, Safer, and Scalable Website<\/a><\/li>\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/underhost.com\/blog\/underhost-supported-operating-systems\/\">UnderHost&#8217;s Supported Operating Systems (Updated October 2026)<\/a><\/li>\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/underhost.com\/blog\/top-cpanel-security-tips-to-keep-your-hosting-environment-safe\/\">Top cPanel Security Tips to Keep Your Hosting Environment Safe<\/a><\/li>\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/underhost.com\/blog\/how-to-fix-usr-bin-crontab-permissions-are-wrong-error-in-cpanel\/\">How to Fix &#8220;\/usr\/bin\/crontab Permissions Are Wrong&#8221; Error in cPanel<\/a><\/li>\n<\/ul>\n<\/div>\n<p><!-- uh-related-end --><br \/>\n<script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"What permissions should Joomla files have?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Folders 755 and files 644, all owned by your cPanel user. configuration.php can be 444 once the site is set up.\"}}, {\"@type\": \"Question\", \"name\": \"Should I ever use 777 for Joomla?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. On cPanel, PHP runs as your account, so 777 is never needed. It lets other processes change your files and often causes 500 errors.\"}}, {\"@type\": \"Question\", \"name\": \"Why does Joomla say a folder is unwritable?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Usually the folder belongs to a different user, for example after a migration or a restore done as root. Fix the ownership with chown, or ask your host to.\"}}, {\"@type\": \"Question\", \"name\": \"Do I need to change permissions after a Joomla update?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Updates keep the existing permissions. If an update fails, check System Information for unwritable folders, then fix the ownership or permissions and run the update again.\"}}, {\"@type\": \"Question\", \"name\": \"Where can I see folder permissions in Joomla?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"In the administrator, open System > System Information and the Folder Permissions tab.\"}}]}<\/script><\/p>\n<h2 id=\"sources\" style=\"color:#0D1F3C;font-size:28px;line-height:1.25;margin:34px 0 14px;scroll-margin-top:90px;\"><i class=\"fas fa-book\" style=\"color:#00D4FF;\"><\/i> Sources<\/h2>\n<ul style=\"margin:0 0 24px;padding-left:22px;\">\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/docs.joomla.org\/\">Joomla documentation<\/a><\/li>\n<li style=\"margin:0 0 8px;\"><a href=\"https:\/\/docs.cpanel.net\/whm\/software\/multiphp-manager-for-whm\/\">cPanel documentation: MultiPHP Manager<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Set folders to 755 and files to 644, make sure every file is owned by your cPanel user, and never use 777. On cPanel, PHP runs as your account, so Joomla can write to its cache, tmp, logs and images folders without any world-writable permissions. Check the result in Joomla under System > System Information > Folder Permissions.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,204],"tags":[125,108,185],"class_list":["post-354","post","type-post","status-publish","format-standard","hentry","category-linux","category-software-cms","tag-tag-backups","tag-tag-cpanel","tag-php"],"_links":{"self":[{"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/posts\/354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/comments?post=354"}],"version-history":[{"count":10,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/posts\/354\/revisions"}],"predecessor-version":[{"id":7016,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/posts\/354\/revisions\/7016"}],"wp:attachment":[{"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/media?parent=354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/categories?post=354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/underhost.com\/blog\/wp-json\/wp\/v2\/tags?post=354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}