Differences in php behavior on the cluster

Error message - 500 Internal Server Error (The server encountered an internal error and was unable to complete your request. Either the web site is misconfigured or there was an error in a CGI script.

This message is mostly caused by incorrect .htaccess. It can be because of syntax error or usage of prohibited directive. Only the following directives are allowed: Indexes, Limit, Fileinfo a Authconfig.

 If you are using CMS Drupal it is necessary to comment out line containing SetHandler directive in files/.htaccess.


In the new environment is not possible to use following rewrite rule:
(.*) index.php/something
- you have to use following construction:
(.*) index.php?/something.

Premature end of script headers: index.php

This message is in 99% cases caused by incorrect permissions of executed script.

Correct permissions for php scripts are 755. If you are uploading scripts by ftp, the permissions are set correctly. The problems can emerge during the installation of plugins into joomla, drupal or other CMS. During this installation the permissions are set incorrectly, so the script won't run.

You can correct this through the ftp with chmod command or by php function chmod().

Joomla - ftp layer

Because the ftp and web services are running on different servers, ftp layer cannot be used.

Joomla - SEO/SEF

If you want to use SEO/SEF it is necessary to turn on Apachemod_rewrite and rename file htaccess.txt to .htaccess in the joomla root directory.


If you are not able to add/change items, it is necessary to turn off "Display files from server in form" in the settings.


Nonfunctional variable arrays HTTP_*_VARS

Registration of these arrays are off in default. If your application rely on them you can write us and we will allow them for you. But we are strongly encouraging you not to use them and use arrays $_* instead.  HTTP_*_VARS will not be available in the next php version.


HTTP authorization

Because php is run as a FCGI it is necessary to add following lines into php scripts which use http authorization.

   $ha = base64_decode( substr($_SERVER['HTTP_AUTHORIZATION'],6) );
   list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $ha);

Further is necessary to add following lines into .htaccess:

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

   Details could be found in  PHP manual.