php4 and php5 with suphp

Discussion in 'Installation/Configuration' started by smartcall, Dec 3, 2006.

  1. smartcall

    smartcall ISPConfig Developer ISPConfig Developer

    Hello to all!

    I installed the panel and both php4 and php5 as cgi. I also installed suphp and made it work. By default my handler adds php4 to the configuration of the hosts.
    I would like to give the users the ability to switch between php4 and php5. But seems that suPHP_AddHandler can't be added to .htaccess and there is no way to override the the default:

    AddType application/x-httpd-php .php .php3 .php4 .php5
    AddHandler x-httpd-php .php .php3 .php4 .php5
    suPHP_AddHandler x-httpd-php


    AddType application/x-httpd-php5 .php .php3 .php4 .php5
    AddHandler x-httpd-php5 .php .php3 .php4 .php5
    suPHP_AddHandler x-httpd-php5

    from .htaccess

    So my question is - can I add a checkbox in any of the forms and then modify the vhosts template to change 'x-httpd-php' to 'x-httpd-php5' and vice versa. And if I do so which files and how to retain such functionality after an upgrade.

    And another question - what security level adds suphp? Because I still can open files from other directories with php scripts that I run in my webroot.


  2. smartcall

    smartcall ISPConfig Developer ISPConfig Developer

    suphp with both php5 and php4

    Looks like nobody is interested in how to do this.
    But I need it and found out the solution. It's not perfect, because an upgrade of the panel would destroy the additions to the code.

    This is how I did it:
    1. I have both php4 and php5 compiled with fastcgi option and all other options that I need.
    2. I have the suPHP installed and WORKING as per the Falko's tutorial.
    3. I edited the form 'ISP Web' and added a checkbox called php_5 to the Options tab.
    4. I edited the file /root/ispconfig/scripts/lib/config.lib.php
    and changed the original code to

    if($go_info["server"]["apache2_php"] == 'suphp'){
    $php .= "suPHP_Engine on\n";
    $php .= "suPHP_UserGroup ".$webadmin." web".$web["doc_id"]."\n";
    $php .= "AddHandler x-httpd-php5 .php .php3 .php4 .php5\n";
    $php .= "suPHP_AddHandler x-httpd-php5\n";
    else {
    $php .= "suPHP_Engine on\n";
    $php .= "suPHP_UserGroup ".$webadmin." web".$web["doc_id"]."\n";
    $php .= "AddHandler x-httpd-php .php .php3 .php4 .php5\n";
    $php .= "suPHP_AddHandler x-httpd-php\n";

    And it works.

    I would like to have some feedback from any of the developers. But not necessarily, as I notice that this topic is not very interesting to anyone in this forum.


  3. falko

    falko Super Moderator ISPConfig Developer

    Looks nice! I've copied your solution to the Tips/Tricks forum!

Share This Page