Changes

From SME Server
Jump to navigationJump to search
2,713 bytes added ,  09:44, 29 September 2007
merge PHP modifications into single page
Line 1: Line 1:  +
PHP Modifications
 +
 +
===PHP Display Error Messages===
 +
 
By default PHP does not display error messages on screen. Some times you get a blank page when executing PHP scripts. Usually some sort of error has occurred, but this error text will not be displayed as SME Server is configured to not display them. Instead the error messages are reported to the log files of the webserver and the general logfile of the server.  
 
By default PHP does not display error messages on screen. Some times you get a blank page when executing PHP scripts. Usually some sort of error has occurred, but this error text will not be displayed as SME Server is configured to not display them. Instead the error messages are reported to the log files of the webserver and the general logfile of the server.  
   Line 6: Line 10:  
{{Warning box|It is strongly advised to disable display errors after you have tracked and solved the problem, as the displayed error message might provide information (like filesystem layout) that only should be known to the system administrators and not to users, let alone people with bad intentions.}}
 
{{Warning box|It is strongly advised to disable display errors after you have tracked and solved the problem, as the displayed error message might provide information (like filesystem layout) that only should be known to the system administrators and not to users, let alone people with bad intentions.}}
    +
====Enable changes====
 
If you (for debugging purposes for instance) would like to enable it you can do it with the instructions found below:
 
If you (for debugging purposes for instance) would like to enable it you can do it with the instructions found below:
   Line 26: Line 31:     
Now access your page again and see what the error is.
 
Now access your page again and see what the error is.
 +
 +
====Undo Changes====
 
If everything works you remove the 30ErrorHandling file from the /etc/e-smith/templates-custom/etc/php.ini folder and issue the last two lines again:
 
If everything works you remove the 30ErrorHandling file from the /etc/e-smith/templates-custom/etc/php.ini folder and issue the last two lines again:
    
  expand-template /etc/php.ini
 
  expand-template /etc/php.ini
 
  /etc/rc7.d/S86httpd-e-smith restart
 
  /etc/rc7.d/S86httpd-e-smith restart
 +
 +
 +
===Open basedir restriction===
 +
SME Server has a security measure in place which is called 'open basedir restriction'. This measure prevents PHP from executing or invoking other PHP scripts outside the scope of it's own tree in other words it creates a 'sandbox' or 'jail'.
 +
Overall configuration is defined in the php.ini file but you can add an override on a per ibay basis.
 +
 +
====Error message====
 +
The PHP open basedir restriction usually present to the user like this in the /var/log/messages file:
 +
 +
Aug 12 17:27:42 homer httpd: PHP Warning:  main(): open_basedir restriction in effect. File(/tmp/test.php) is not within the allowed path(s): (/home/e-smith/files/ibays/Primary/html/) in /home/e-smith/files/ibays/Primary/html/test.php on line 2
 +
 +
In general you will find this message in the log files only as by default PHP is configured to prevent the display of error messages to the end users. This can be changed as per [[PHP_Display_Error_Messages|this HowTo]].
 +
 +
====Modifying the PHPBaseDir setting for an ibay====
 +
<ol>
 +
<!--Please do not remove the following closing tag as a fromatting/rendering bug will kick in, for more details see: http://bugzilla.wikimedia.org/show_bug.cgi?id=10893--></li><li>Open a SME Server shell as root user and document the current setting of the PHPBaseDir directive by writing down the output of the following command:
 +
db accounts getprop ibayname PHPBaseDir
 +
Be careful to write it down to the letter as we need it in the next step
 +
For the Primary ibay the ouptut of above command would normally look like this:
 +
/home/e-smith/files/ibays/Primary/html/
 +
</li><li>Decide on what directory you would like to add and issue the following:
 +
db accounts setprop ibayname PHPBaseDir value
 +
 +
Replace ibayname with the name of the ibay and value with the old value for the PHPBaseDir directive you have written down and a colon (:) followed by the full path to the directory you would like to add with a tailing slash (/), e.g.
 +
db accounts setprop Primary PHPBasedir /home/e-smith/files/ibays/Primary/html/:/opt/gallery2/
 +
 +
Above command would allow for invocation of scripts in the /opt/gallery2 path from the Primary ibay html folder by PHP.
 +
 +
</li><li>After defining the new setting we need to reflect the change in the configuration file of the web server and have the web server reload it's configuration file. This is done by issuing the following command:
 +
signal-event ibay-modify ibayname
 +
 +
Be sure to replace ibayname with the name of the ibay you have just modified.
 +
</li></ol>
 +
 +
===PHP 5===
 +
SME 7.x uses PHP 4, you should not upgrade this version but you can add PHP 5
 +
See this howto ...
 +
 +
    
[[Category: Howto]]
 
[[Category: Howto]]
[[Category: PHP]]
 

Navigation menu