Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
litespeed_wiki:config:understanding_500 [2018/07/18 15:23]
Lisa Clarke [Example 1]
litespeed_wiki:config:understanding_500 [2018/09/20 13:32]
Jackson Zhang [PHP Code with wrong php configuration settings]
Line 55: Line 55:
  
 To confirm whether a misconfiguration in ''​.htaccess''​ is the cause of the 500 Internal Server error, either remove or rename the .htaccess file temporarily and then try to reload the page. To confirm whether a misconfiguration in ''​.htaccess''​ is the cause of the 500 Internal Server error, either remove or rename the .htaccess file temporarily and then try to reload the page.
 +
 +==== Example 3 ====
 +The following "​Alias"​ directive in .htaccess will cause 500 on Apache (LSWS will ignore it without returning 500) since "​Alias"​ directive is not allowed in .htaccess.
 +
 +  Alias "/"​ "/​home/​$USER1/​public_html/"​
 +  ​
 +==== Example 4 ====
 +Syntax is wrong for the followintg directive:
 +  Header always set Strict-Transport-Security:​ max-age=63072000;​ includeSubDomains;​ preload
 +
 +which will lead to "Too many arguments to directive"​ error in error_log:
 +
 +  [Tue Sep 11 19:​59:​40.864917 2018] [core:​alert] [pid 15738] [client 66.666.76.139:​64740] /​home/​example/​public_html/​.htaccess:​ Too many arguments to directive
 +
 +The correct syntax is the following and it should fix the 500 error for Apache:
 +  Header always set Strict-Transport-Security:​ "​max-age=63072000;​ includeSubDomains;​ preload"​
  
 ===== Different level of Rewrite rules misplaced to the wrong level ===== ===== Different level of Rewrite rules misplaced to the wrong level =====
Line 82: Line 98:
  
 Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace. Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.
 +
 +===== Incorrect Rewrite Rules misplace in differernt directories =====
 +The following rewrite rules in subfolder is incorrect and it will cause 500 for LiteSpeed.
 +/​home/​user1/​public_html/​subfolder1] vi .htaccess
 +  RewriteEngine On
 +  RewriteCond %{REQUEST_FILENAME} !-f
 +  RewriteCond %{REQUEST_FILENAME} !-d
 +  RewriteRule ^(.*)$ subfolder1/​index.php/​$1 [L]
 +
 +The correct rule should be:
 +/​home/​user1/​public_html/​subfolder1] vi .htaccess
 +  RewriteEngine On
 +  RewriteCond %{REQUEST_FILENAME} !-f
 +  RewriteCond %{REQUEST_FILENAME} !-d
 +  RewriteRule ^(.*)$ index.php/​$1 [L]
 =====  Improperly Configured php.ini ===== =====  Improperly Configured php.ini =====
 An improperly configured ''​php.ini''​ may lead to 500 error. ​ An improperly configured ''​php.ini''​ may lead to 500 error. ​
Line 99: Line 130:
 It will bring the website to 500 immediately. It will bring the website to 500 immediately.
 This is only one example. Many times, wrong PHP syntax will lead to a 500 error. This is only one example. Many times, wrong PHP syntax will lead to a 500 error.
 +
 +===== PHP Code with wrong php configuration settings =====
 +
 +Sometimes, 500 error may be not easy to locate. If you move .htaccess to .htaccess.bak and move php.ini to php.ini, the 500 error still happens, it might be something wrong in the PHP code and it might be hard to find. 
 +
 +We experienced a case with WHMCS. In configuration.php,​ someone placed **wrong php setting** there:
 +  $display_errors = E_All;
 +"​E_All"​ is an incorrect value for PHP setting "​$display_errors"​ and it is for "​$error_reporting"​. "​$display_errors"​ should be either "​true"/"​false",​ or "​on"/"​off"​. Changed it to the following as "​true"​ and it fixed the 500 error.
 +  $display_errors = true;
 +
 +
 +
  
 ===== PHP Handler Not Set ===== ===== PHP Handler Not Set =====
  • Admin
  • Last modified: 2019/12/10 19:33
  • by Lisa Clarke