Skip to main content

How To Install PHP on Debian

Updated this week

Introduction

PHP is a popular programming language used to create dynamic websites and applications. It is widely used in web development due to its simplicity and powerful features. This article will guide you through installing PHP 8.3 on Debian versions 11 and 12.

Installation Guide

1. Update the system

Update your system by running this command:

apt update

2. Install Required Packages

Install the required packages to add a repository:

apt install -y apt-transport-https lsb-release ca-certificates wget

3. Add the PHP Repository

Run the following command to install GnuPG and import the GPG key for the repository:

apt install -y gnupg
wget -qO - https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/php.gpg

Add the repository to your sources list:

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

Update the system again:

apt update

4. Install PHP

Run this command to install PHP (to install a different version, just replace 8.3 with the desired version number):

apt install -y php8.3

The installation of PHP 8.3 might automatically install Apache. If you don't need it, you can use these commands to uninstall Apache:

systemctl stop apache2
apt remove apache2 -y
apt purge apache2 -y
apt autoremove -y

5. Install PHP Extensions

Run this command to install common PHP extensions (you can change the version number):

apt install -y php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-imap

To manually install PHP extensions, you can run this command (replace extension_name with the actual extension name):

apt install php8.3-extension_name

If Apache is running, use these commands to enable the PHP-FPM extension:

a2enmod proxy_fcgi setenvif
systemctl restart apache2
a2enconf php8.3-fpm
systemctl reload apache2

6. Check the installation

Run this command to check if PHP was installed successfully:

php -v

The output should display information about the installed version:

You can also list all available PHP extensions. Use the following command:

php -m

7. Restart Your Web Server (Optional)

If you’re using a web server, restart it to apply the changes.

For Apache, run this command:

systemctl restart apache2

For Nginx, run the following command:

systemctl restart php8.3-fpm
systemctl restart nginx

Did this answer your question?