In this comprehensive guide, we will walk you through the process of installing multiple versions of PHP on a Debian server running ISPConfig 3.2. By default, ISPConfig only provides the main PHP version for your distribution. However, with our step-by-step instructions, you will be able to install additional PHP versions (ranging from 5.6 to 8.3) and configure them to work seamlessly with ISPConfig. Whether you need to run different PHP versions for specific websites or want to experiment with the latest PHP features, this guide has got you covered.
1. Preliminary Note
Before we dive into the installation process, it’s important to understand the basic requirements and considerations. In this guide, we will be using the SURY repository, an additional repository that provides the PHP packages for installation using apt
. It’s worth noting that PHP-FPM can be used with both Apache and Nginx servers, while FastCGI is only available for Apache servers.
2. Adding the SURY Repository
To get started, we need to add the SURY repository to our Debian server. Follow these steps:
- Install the required packages:
apt-get install -y apt-transport-https lsb-release ca-certificates
- Add the SURY repository key:
wge -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg >/dev/null 2>&1
- Add the SURY repository itself:
echo "deb https://packages.sury.org/php/ $(lsb_release -c -s) main" >/etc/apt/sources.list.d/php.list
- Update the package list:
apt-get update
3. Installing Additional PHP Versions
Now that we have added the SURY repository, we can proceed with installing the desired PHP versions. The following commands will install PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, and 8.3 respectively. You can choose to install only the versions you need.
3.1 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
3.2 Install PHP 7.0
To install PHP 7.0, execute 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
3.3 Install PHP 7.1
To install PHP 7.1, use 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
3.4 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
3.5 Install PHP 7.3
To install PHP 7.3, execute 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
3.6 Install PHP 7.4
To install PHP 7.4, use this 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
3.7 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
3.8 Install PHP 8.1
To install PHP 8.1, use 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
3.9 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
3.10 Install PHP 8.3
To install PHP 8.3, use 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 libonig5 php8.3-common php8.3-readline php8.3-xml
4. Setting the OS Default PHP Version
After installing multiple PHP versions, it’s essential to set the default PHP version for your operating system. This step ensures that the original version remains unchanged. Follow the instructions below:
- Run the following command:
update-alternatives --config php
On Debian 12, select PHP 8.2. On Debian 11, choose PHP 7.4. On Debian 10, select PHP 7.3. On Debian 9, choose PHP 7.0.
- Next, run the following command:
update-alternatives --config php-cgi
- Finally, run the command below:
update-alternatives --config php-fpm.sock
5. Adding PHP Versions to ISPConfig
Now that we have installed the additional PHP versions, we can integrate them with ISPConfig. Follow the steps below:
- Log in to your ISPConfig panel.
- Go to System > Additional PHP Versions > Add new PHP version.
- Add the distribution’s default PHP version as a new version. The default version depends on your Debian release:
- Debian 9: PHP 7.0
- Debian 10: PHP 7.3
- Debian 11: PHP 7.4
- Debian 12: PHP 8.2
- Configure the additional PHP versions according to the following settings:
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 should be 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 should be 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 should be 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 should be 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 should be 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 should be 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 should be 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 should be 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 should be 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 should be named php8.3.
6. Conclusion
Congratulations! You have successfully installed multiple versions of PHP on your Debian server running ISPConfig. Now, you have the flexibility to choose different PHP versions for your websites, enabling you to leverage specific features and enhancements. If you have any questions or need further assistance, feel free to reach out to our support team. Shape.host is here to provide you with reliable, scalable, and secure cloud hosting solutions for your business needs.
Shape.host provides a wide range of Cloud VPS hosting services tailored to your specific requirements. Explore our offerings and take advantage of our robust infrastructure to ensure optimal performance and stability for your websites and applications. Visit Shape.host to learn more about our services and get started today.