500 (Internal Server Error) - status code in HTTP protocol, informing that the server program works, but encounters serious internal errors, preventing normal processing of client request

In the standard mod_php mode the Apache web-server is started and always runs as a single user - nobody. This is not the safest solution since an error in permissions will let other users read your files or even make changes to them. suPHP hedges against this problem since each process now starts with a specific user. It also solves the problem of scripts making changes to files and then not being able to remove/modify them via FTP because they have the owner nobody

Notes on operation and new permissions:

  • 644 - write to file is allowed (default)

  • 444 - writing to the file is prohibited (read and execute only)

  • 755 - access rights for folders (default, no need to change them)

755 - should be applied to the folder /public_html/your_domain, as well as DO NOT change permissions of other system folders/files (stats, logs, .htpasswd and /domains folder). All changes should concern only /public_html/your_domains folder and its contents.

Never chmod 666/777 files/folders. This may jeopardize the security of your account, and the scripts will NOT work with these permissions in any case. That's why suPHP mode has been configured instead of the standard mod_php mode for extra security

Please note that with access rights 644 you can only write scripts which are run under your account. No one else will be able to do the recording. You can change the file permissions to 444 to be even more secure - in this case even your scripts won't be able to write anything to the files, but this is not obligatory.

The error Internal Server Error most often means that the server has blocked access to the script, it may be due to the following reasons:

  • You have set permissions on file(s) other than 644 or 444, the server blocks script execution for security reasons (for example - you set CHMOD 666)

  • You have set permissions on folders other than 755. (for example - you set CHMOD 777)

  • You found unsupported directives in .htaccess file

In suPHP mode the installation of directives php_flag, php_admin_flag, php_value and others, which modify any PHP environment parameters, is not supported.

For example, if you have in .htaccess there will be an entry of the form:

php_flag register_globals On  

or for example

display_errors Off  

The server will return an error 500 (Internal Server Error).

Updated Jan. 23, 2019