Are you looking to install multiple PHP versions on your Ubuntu server with ISPConfig? By default, ISPConfig only provides the main PHP version for your distribution. However, with the right steps, you can easily install and configure additional PHP versions to meet your specific website requirements.
In this comprehensive guide, we will walk you through the process of installing PHP versions 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.1, 8.2, and 8.3 on your Ubuntu server with ISPConfig. Whether you are using Apache or Nginx as your web server, this guide has got you covered. Let’s get started!
Preliminary Note
Before we dive into the installation process, there are a few things you need to be aware of. In this guide, we will be adding the SURY repository, which provides additional PHP packages that can be installed using the apt
package manager. It’s important to note that when you install packages from this repository, other packages such as OpenSSL may also be updated. Therefore, it is not recommended to remove the SURY repository as a source later on.
Add SURY Repository
To begin, we need to add the SURY repository to your system. Open a terminal window and run the following command:
add-apt-repository -y ppa:ondrej/php
Once the repository has been added, update the package list by running:
apt-get update
It’s also a good idea to upgrade any already installed packages from the new repository with the following command:
apt-get upgrade
Now that the SURY repository is set up, we can proceed to install the additional PHP versions.
Install Additional PHP Versions
You have the flexibility to choose which PHP versions you want to install. You can install as many versions as you need, depending on your specific requirements. For each PHP version you wish to install, use the relevant command provided below.
Install PHP 5.6
To install PHP 5.6, run the following command:
apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm php5.6-gd php5.6-mysql php5.6-imap php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl php5.6-zip php5.6-mbstring php5.6-soap php5.6-opcache libicu65 php5.6-common php5.6-json php5.6-readline php5.6-xml
Install PHP 7.0
To install PHP 7.0, run the following command:
apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm php7.0-gd php7.0-mysql php7.0-imap php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-zip php7.0-mbstring php7.0-soap php7.0-opcache php7.0-common php7.0-json php7.0-readline php7.0-xml
Install PHP 7.1
To install PHP 7.1, run the following command:
apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm php7.1-gd php7.1-mysql php7.1-imap php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php7.1-zip php7.1-mbstring php7.1-soap php7.1-opcache php7.1-common php7.1-json php7.1-readline php7.1-xml
Install PHP 7.2
To install PHP 7.2, run the following command:
apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-common php7.2-json php7.2-readline php7.2-xml
Install PHP 7.3
To install PHP 7.3, run the following command:
apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm php7.3-gd php7.3-mysql php7.3-imap php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-zip php7.3-mbstring php7.3-soap php7.3-opcache php7.3-common php7.3-json php7.3-readline php7.3-xml
Install PHP 7.4
To install PHP 7.4, run the following command:
apt-get install php7.4 php7.4-cli php7.4-cgi php7.4-fpm php7.4-gd php7.4-mysql php7.4-imap php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache libonig5 php7.4-common php7.4-json php7.4-readline php7.4-xml
Install PHP 8.0
To install PHP 8.0, run the following command:
apt-get install php8.0 php8.0-cli php8.0-cgi php8.0-fpm php8.0-gd php8.0-mysql php8.0-imap php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xsl php8.0-zip php8.0-mbstring php8.0-soap php8.0-opcache libonig5 php8.0-common php8.0-readline php8.0-xml
Install PHP 8.1
To install PHP 8.1, run the following command:
apt-get install php8.1 php8.1-cli php8.1-cgi php8.1-fpm php8.1-gd php8.1-mysql php8.1-imap php8.1-curl php8.1-intl php8.1-pspell php8.1-sqlite3 php8.1-tidy php8.1-xsl php8.1-zip php8.1-mbstring php8.1-soap php8.1-opcache libonig5 php8.1-common php8.1-readline php8.1-xml
Install PHP 8.2
To install PHP 8.2, run the following command:
apt-get install php8.2 php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-imap php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xsl php8.2-zip php8.2-mbstring php8.2-soap php8.2-opcache libonig5 php8.2-common php8.2-readline php8.2-xml
Install PHP 8.3
To install PHP 8.3, run the following command:
apt-get install php8.3 php8.3-cli php8.3-cgi php8.3-fpm php8.3-gd php8.3-mysql php8.3-imap php8.3-curl php8.3-intl php8.3-pspell php8.3-sqlite3 php8.3-tidy php8.3-xsl php8.3-zip php8.3-mbstring php8.3-soap php8.3-opcache php8.3-common php8.3-readline php8.3-xml
Set the OS Default PHP Version
It’s important to ensure that the default PHP version of your operating system remains unchanged. This is because many packages, including ISPConfig, rely on the default PHP version, and changing it may cause compatibility issues. To set the default PHP version back to the correct version, follow these steps:
- Run the following command:
update-alternatives --config php
- On Ubuntu 18.04, select PHP 7.2. On Ubuntu 20.04, select PHP 7.4. On Ubuntu 22.04, select PHP 8.1.
- Next, run the following command:
update-alternatives --config php-cgi
- Again, select the appropriate PHP version based on your Ubuntu release.
- Lastly, run the following command:
update-alternatives --config php-fpm.sock
- Choose the correct PHP version based on your Ubuntu release.
With these steps, you have successfully set the default PHP version of your operating system to the appropriate version.
Add PHP Versions to ISPConfig
In ISPConfig 3, you can easily configure the newly installed PHP versions by following these steps:
- Log in to your ISPConfig control panel.
- Navigate to System > Additional PHP Versions.
- Click on Add new PHP version.
- For the already installed PHP version, add a new version based on your Ubuntu release. Refer to the following configurations for each version:
- PHP 5.6
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi5.6
- Path to the php.ini directory:
/etc/php/5.6/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php5.6-fpm
- Path to the php.ini directory:
/etc/php/5.6/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/5.6/fpm/pool.d/
- The CLI version for cron jobs is named
php5.6
.
- PHP 7.0
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi7.0
- Path to the php.ini directory:
/etc/php/7.0/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php7.0-fpm
- Path to the php.ini directory:
/etc/php/7.0/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/7.0/fpm/pool.d/
- The CLI version for cron jobs is named
php7.0
.
- PHP 7.1
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi7.1
- Path to the php.ini directory:
/etc/php/7.1/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php7.1-fpm
- Path to the php.ini directory:
/etc/php/7.1/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/7.1/fpm/pool.d/
- The CLI version for cron jobs is named
php7.1
.
- PHP 7.2
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi7.2
- Path to the php.ini directory:
/etc/php/7.2/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php7.2-fpm
- Path to the php.ini directory:
/etc/php/7.2/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/7.2/fpm/pool.d/
- The CLI version for cron jobs is named
php7.2
.
- PHP 7.3
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi7.3
- Path to the php.ini directory:
/etc/php/7.3/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php7.3-fpm
- Path to the php.ini directory:
/etc/php/7.3/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/7.3/fpm/pool.d/
- The CLI version for cron jobs is named
php7.3
.
- PHP 7.4
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi7.4
- Path to the php.ini directory:
/etc/php/7.4/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php7.4-fpm
- Path to the php.ini directory:
/etc/php/7.4/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/7.4/fpm/pool.d/
- The CLI version for cron jobs is named
php7.4
.
- PHP 8.0
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi8.0
- Path to the php.ini directory:
/etc/php/8.0/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php8.0-fpm
- Path to the php.ini directory:
/etc/php/8.0/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/8.0/fpm/pool.d/
- The CLI version for cron jobs is named
php8.0
.
- PHP 8.1
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi8.1
- Path to the php.ini directory:
/etc/php/8.1/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php8.1-fpm
- Path to the php.ini directory:
/etc/php/8.1/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/8.1/fpm/pool.d/
- The CLI version for cron jobs is named
php8.1
.
- PHP 8.2
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi8.2
- Path to the php.ini directory:
/etc/php/8.2/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php8.2-fpm
- Path to the php.ini directory:
/etc/php/8.2/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/8.2/fpm/pool.d/
- The CLI version for cron jobs is named
php8.2
.
- PHP 8.3
-
- Fast-CGI settings:
- Path to the PHP FastCGI binary:
/usr/bin/php-cgi8.3
- Path to the php.ini directory:
/etc/php/8.3/cgi/
- PHP-FPM settings:
- Path to the PHP-FPM init script:
php8.3-fpm
- Path to the php.ini directory:
/etc/php/8.3/fpm/
- Path to the PHP-FPM pool directory:
/etc/php/8.3/fpm/pool.d/
- The CLI version for cron jobs is named
php8.3
.
Once you have added the PHP versions to ISPConfig, you can now choose the appropriate PHP version for your websites and configure them accordingly.
Conclusion
Congratulations! You have successfully installed and configured multiple PHP versions on your Ubuntu server with ISPConfig. By following the steps outlined in this guide, you can now leverage the power of various PHP versions to meet the specific requirements of your websites.
Remember, it is essential to keep the default PHP version of your operating system unchanged to avoid any compatibility issues with other packages and services. If you have any further questions or need assistance, feel free to reach out to our support team.
At Shape.host, we specialize in providing reliable and scalable cloud hosting solutions, including Cloud VPS services. With our expertise and cutting-edge infrastructure, we empower businesses to thrive in the digital landscape. Explore our hosting solutions today and experience the Shape.host difference.