Error 500 in suPHP mode: file and folder permissions (chmod)

Understanding Internal Server Error in suPHP mode and how to set permissions correctly.

500 Internal Server Error is an HTTP status code indicating that the server is running but has encountered a critical error that prevents it from processing the request.

Why suPHP exists

In the standard mod_php mode, Apache always runs under a single shared user — nobody. This is far from ideal: a misconfigured permission can let other users on the same server read or even modify your files. On top of that, when scripts create or modify files under nobody, those files become impossible to delete or edit over FTP.

suPHP solves both problems by running each process under the actual account owner. Your files stay yours.

Correct permission settings

Permission Applies to Meaning
644 Files Owner can write; others can only read (default)
444 Files Read-only for everyone, including your own scripts
755 Folders Standard folder access (default, no changes needed)

A few important rules:

  • 755 must be set on the /public_html/your_domain folder
  • Never change permissions on system folders and files such as stats, logs, .htpasswd, or the /domains directory
  • All permission changes should only affect /public_html/your_domain and its contents
  • Never set 666 or 777 on files or folders — scripts will not run with these permissions, and it puts your entire account at risk

Pro tip

With 644 permissions, only scripts running under your own account can write to files. Nobody else can. For an extra layer of security, you can switch to 444 — your own scripts won't be able to write either, though this is entirely optional.

Our products and services

Web HostingReliable hosting services for websites of any scale.
Order
VPSFlexible cloud infrastructure with full root access.
Order
Dedicated ServersBare metal servers for maximum performance.
Order

Common causes of 500 Internal Server Error

In suPHP mode, a 500 error almost always means the server blocked a script for one of these reasons:

  • A file has permissions other than 644 or 444 — for example, 666
  • A folder has permissions other than 755 — for example, 777
  • Your .htaccess contains directives that suPHP doesn't support

Unsupported .htaccess directives in suPHP mode

suPHP does not support PHP environment directives inside .htaccess, including php_flag, php_admin_flag, php_value, and similar. If your .htaccess contains anything like:

php_flag register_globals On

or even just:

display_errors Off

The server will immediately return a 500 Internal Server Error. Remove these lines and configure PHP settings via a custom php.ini file instead.

Help

If you have any questions or need assistance, please contact us through the ticket system — we're always here to help!

Need help?Our engineers will help you free of charge with any question in minutesContact us