500 Internal Server Error due to suPHP permission requirements

suPHP requires specific permissions and ownership for scripts to run:

  • all folders within public_html – user:user 755
  • all files in public_html – user:user 644
  • public_html itself – user:nobody 750

(“user” refers to account name)

Without these permissions set you will see a lot of errors such as: “403 Forbidden”, “500 Internal Server Error” or other messages.

In example, CPanel error logs may show something like:
SoftException in Application.cpp:631: Directory “/home/[your-account]/public_html” is writeable by group

For more details about mass updating your file permissions, see:
https://forums.cpanel.net/threads/switching-to-suphp.160421/

Change php directives with suPHP

You need to create 2 files in public_html of website where suPHP is enabled. A .htaccess specifying path to php.ini configuration and a php.ini with directives.
You can change php settings and load extensions from a central php.ini for all site folders.

 

Example for account “account-name”. Make sure you update that in .htaccess content:

.htaccess

suPHP_ConfigPath /home/[account-name]/public_html

 

php.ini

register_globals = Off
extension=pdo.so

extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so
extension=geoip.so