[Webmin] Setting up multiple PHP versions in Webmin/Virtualmin

Regina
Regina
Webmin control panel allows you to have several PHP versions in the same server. There is a possibility to choose different PHP versions for seperate Virtual Servers (per domain and per directory).

0. Preliminary requirements

Webmin 1.8 using CentOS 6.

1. Log into your server

Log in to your server with root user. How to log into Linux based server see here.

2. Install PHP 5.6 on CentOS 6

Install the SCL Repo:

yum install centos-release-scl

Install the PHP packages:

yum install rh-php56 rh-php56-php-mysqlnd

3. Install second PHP version

In this case we will install PHP 7 on CentOS 6. Install the SCL Repo:

yum install centos-release-scl

Install the PHP packages:

yum install rh-php70 rh-php70-php-mysqlnd

4. Enable “suexec_module” on server

This will allow Webmin to recognize different PHP versions:

vi /etc/httpd/conf/httpd.conf

Find and remove comment from line “#LoadModule suexec_module modules/mod_suexec.so”. It should look like this:

LoadModule suexec_module modules/mod_suexec.so

Save and close the file. Then restart Apache:

service httpd restart

5. Log into your Webmin control panel

If you haven't done it yet, see how to use it in the link here

6. Re-Check Configuration of the server

After logging into Webmin, go to Virtualmin, then go to “System Settings → Re-Check Configuration

If you see the error:

Virtualmin is configured to setup DNS zones, but this system is not setup to use itself as a DNS server. Either add 127.0.0.1 to the list of DNS servers, or turn off the BIND feature on the module config page.”

Press on “list of DNS servers” and in the empty line in “DNS servers” section enter localhost IP: 127.0.0.1 and press “Save”.

Again go to “System Settings → Re-Check Configuration” and you should see something like this:

The following PHP versions are available : 5.5.38 (/usr/bin/php-cgi), 5.6.25 (/opt/rh/rh-php56/root/usr/bin/php-cgi), 7.0.10 (/opt/rh/rh-php70/root/usr/bin/php-cgi)

7. Modify Server Templates

Go to “System Settings → Server Templates”. Press on “Default Settings”.



In the line “Edit template section:” choose “Apache website”. Make sure that these settings are checked:

Automatically add appropriate SuExec directive? - Yes
Default PHP execution mode: CGI wrapper (run as virtual server owner)

Save by pressing the button “Save”. From now on, all created Virtual Servers in Virtualmin will recognize different installed PHP versions.

8. Choose PHP version for your domain or directory

Now you just need to choose the required PHP version for your domain. Just press on the Virtual Server you want to choose the PHP version for and go to “Server Configuration → PHP version”.



Here you can choose the PHP version for the whole domain and choose different PHP version for selected directory (enter the name of directory in the empty line).


Comments

  • Spctec
    Spctec
    Member
    Hello

    in the step No. 4
    first i dont know how to find and save throw vi
    so i tried
    pico /etc/httpd/conf/httpd.conf
    and i didnt find the line you mentioned : 
    LoadModule suexec_module modules/mod_suexec.so

    and i am sure i made the first 3 steps right so what did i do wrong ?

    my VPS Ip: 194.135.89.64

    Thank you

  • umbertobertolini
    umbertobertolini
    Member edited August 27
    I've done all the steps, but I have this problem: 
      "The Suexec command on your system is configured to only run scripts under /var/www, but the Virtualmin virtual server home directory is /home. CGI and PHP scripts run as domain owners will not be executed.
    .. your system is not ready for use by Virtualmin."
    Where can i find the right version of Suexec command?
    Thanks 
    Umberto
    Centos 6.9
  • Regina
    Regina
    Moderator
    Spctec said:
    Hello

    in the step No. 4
    first i dont know how to find and save throw vi
    so i tried
    pico /etc/httpd/conf/httpd.conf
    and i didnt find the line you mentioned : 
    LoadModule suexec_module modules/mod_suexec.so

    and i am sure i made the first 3 steps right so what did i do wrong ?

    my VPS Ip: 194.135.89.64

    Thank you

    After you use the command below:

    vi /etc/httpd/conf/httpd.conf

    You will be inside the file, where you should find the line "#LoadModule suexec_module modules/mod_suexec.so". If you can not find the correct line, just go to the start of the file and enter:

    /LoadModule suexec_module modules/mod_suexec.so

    You will see this line and then just remove the "#" symbol. The line should not be commented and therefore will be enabled. If you can not find this module, just write it in:

    LoadModule suexec_module modules/mod_suexec.so

    In order to save it press "Esc + :" and then write:

    wq

    You will save and quit the file.

  • Regina
    Regina
    Moderator
    I've done all the steps, but I have this problem: 
      "The Suexec command on your system is configured to only run scripts under /var/www, but the Virtualmin virtual server home directory is /home. CGI and PHP scripts run as domain owners will not be executed.
    .. your system is not ready for use by Virtualmin."
    Where can i find the right version of Suexec command?
    Thanks 
    Umberto
    Centos 6.9
    The tutorial above works for newly added Virtual Servers (domains). If you see the error "The Suexec command on your system is configured to only run scripts under /var/www, but the Virtualmin virtual server home directory is /home. CGI and PHP scripts run as domain owners will not be executed." or "This virtual server is using the mod_php execution mode for PHP, such does not allow per-directory version selection." please do the following steps:

    1. Log into your Webmin panel.
    2. In Virtualmin go to "System Settings -> Virtualmin configuration"
    3. Find the section "Defaults for new domains"
    4. In the line "Home directory base" select the second box and enter the following: /var/www
    5. Press "Save" on the bottom of the page.
    6. Then go to your Virtual Server (domain);
    7. Press "Server Configuration -> Website Options"
    8. Make sure these are checked and press "Save":

    Run CGI scripts as domain owner? - Yes
    PHP script execution mode - CGI wrapper (run as virtual server owner)

    9. Check "Server Configuration -> PHP versions" for PHP version selection.

    Please take a note, that the tutorial above is meant for newly added Virtual Servers to your Webmin panel and using it on already added domains, the basic directory from /home to /var/www should be changed. This may cause other errors in the website.


  • umbertobertolini
    umbertobertolini
    Member edited August 29

    It works well!

    Thanks
    Umberto

Sign In or Register to comment.
© 2013 - 2017 Time4VPS. All rights reserved. Powered by Vanilla
The opinions or views of users on the forum are those of the author and not of Time4VPS.