Install PHP 7.4 / 7.3 / 7.2 / 7.1 on Debian 10 / Debian 9

Add PHP Repository

SURY, a third-party repository which offers PHP 7.4 / 7.3 / 7.2 / 7.1 for Debian operating system.

By default, Debian 10 ships PHP v7.3. So, you can either install PHP v7.3 from Debian repository or SURY repository. Skip this section if you want to install PHP 7.3 from the Debian repository. However, if you want to install PHP 7.4 / 7.2 / 7.1 on Debian 10, you must set up SURY repository.

Update the repository cache.

sudo apt update
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https

Import the public using the below commands.

wget https://packages.sury.org/php/apt.gpg
sudo apt-key add apt.gpg

Add the SURY repository to your system.

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.list

Update the repository index.

sudo apt update

Install PHP 7.4 on Debian 10 / Debian 9

sudo apt install -y php7.4 php7.4-cli php7.4-common

Install PHP 7.3 on Debian 10 / Debian 9

sudo apt install -y php7.3 php7.3-cli php7.3-common

Install PHP 7.2 on Debian 10 / Debian 9

sudo apt install -y php7.2 php7.2-cli php7.2-common

Install PHP 7.1 on Debian 10 / Debian 9

sudo apt install -y php7.1 php7.1-cli php7.1-common

You can also have multiple PHP versions on your system. Each PHP version will have separate configuration files under /etc/php/7.X directory.

Set Default PHP Version

You can set the default PHP version with the below command incase your system has multiple PHP versions. Change php7.3 with the version you want to set as the default PHP version.

sudo update-alternatives --set php /usr/bin/php7.3

Check PHP Version

Once you installed the PHP, check the version.

php -v

Output:

PHP 7.4.1 (cli) (built: Dec 18 2019 15:00:01) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.1, Copyright (c), by Zend Technologies

PHP Support for Web Server

Both Apache and Nginx do not support processing of PHP files by default when the browser requests the PHP page. So, we need to install the PHP package on the server to support PHP files.

PHP Support for Apache

You can install a below package with Apache webserver to support PHP. This package provides the PHP modules for Apache 2 web server. Change PHP version, if required

sudo apt install -y apache2 libapache2-mod-php7.4

PHP Support for Ngnix

Nginx does not have a PHP modules package to support PHP. But, we can use the PHP FastCGI Process Manager to handle PHP requests. Change PHP version, if required

sudo apt install -y php7.4-fpm

Once you have installed FastCGI manager, add socket details in Nginx virtual host.

server {

# other codes

location ~* \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}

Install PHP Extensions

PHP extensions enable specific functions/support for your code. For example, installing PHP MySQL extension will let your PHP code to connect with the MySQL database. PHP extensions package is normally named like php<version>-<extn_name>. To install MySQL support for PHP v7.4, you can install php7.4-mysql package.

sudo apt install -y php7.4-mysql

Once you have installed a required extension, use the below command to verify it.

php -m | grep -i mysql

Output:

mysqli
mysqlnd
pdo_mysql

PHP Extensions for WordPress

The following extensions are required to install and run WordPress on your Debian system. WordPress recommends having PHP v7.3 for the installation.

sudo apt install -y php7.3-mysql php7.3-dom php7.3-simplexml php7.3-ssh2 php7.3-xml php7.3-xmlreader php7.3-curl php7.3-exif php7.3-ftp php7.3-gd php7.3-iconv php7.3-imagick php7.3-json php7.3-mbstring php7.3-posix php7.3-sockets php7.3-tokenizer

Src: https://www.itzgeek.com/how-tos/linux/debian/how-to-install-php-7-3-7-2-7-1-on-debian-10-debian-9-debian-8.html

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.