How to Install PHP 8 on Ubuntu 20.04 LTS Server
PHP is one of the most widely used server-side programming languages. Many popular CMS and frameworks such as WordPress, Magento, and Laravel are written in PHP.
At the time of writing this guide, the latest version of PHP is PHP 8.0. It was released on November 26, 2020. It boasts of new features and optimizations such as union types, named arguments, null safe operator, match expression, JIT, and improvements in error handling and consistency.
By default, Ubuntu 20.04 Lts does not come with PHP 8.0 version in its default repository So, you need to add from the ondrej/php PPA repository. This tutorial is also applicable to Ubuntu 18.04.
Following steps we are goining to execute:
- Step 1)–Enable PHP Repository
- Step 2)– Install PHP 8
- Step 3) – Installing PHP Extensions
- Step 4.1) – Install PHP 8 with Apache
- Step 4.2) – Install PHP 8 with Nginx
- Step 5) – Switch Default PHP Version (If your Server Running Multiple PHP Version)
- Step 6)Testing PHP
Note: If you are going to upgrading your existing live server, Before upgrading to or installing PHP 8, make sure that your applications support it and make complete backup your existing environment to avoid any data losses.
Step 1)–Enable PHP Repository
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update
Step 2)– Install PHP 8
Execute the following command to install PHP 8
sudo apt install php8.0
After the installation has been completed, you can confirm the installation using the following command
php -v
Step 3) – Installing PHP Extensions
Now, install the required PHP modules for your application. Use the following command to search all available PHP 8.0 modules.
sudo apt search php8.0-*
Then install the required PHP modules. The following command will install some frequently used PHP modules on your system.
sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y
You can choose exact extensions as per your requirement from the search list.
Step 4.1) – Install PHP 8 with Apache
Apache is a popular web server widely used for deploying PHP web applications. On Debian-based systems, this is available with the name “apache2”.
An Apache module is available to integrate PHP. For PHP 8.0 install the following Apache module
sudo apt install libapache2-mod-php8.0
Then enable PHP 8 module
sudo a2enmod php8.0
Step 4.2) – Install PHP 8 with Nginx
There is no official PHP module for the Nginx server. In that case, we will use PHP-FPM to deploy PHP applications over Nginx web servers.
So, first, install PHP fpm on your system.
sudo apt install php8.0-fpm
Once the installation is finished, enable and start the service.
sudo systemctl enable php8.0-fpm
sudo systemctl start php8.0-fpm
Next, update the Nginx server block configuration with the following code.
server { # server block code ... location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.0-fpm.sock; } }
The above code instructs the Nginx server to process all files with the “.php” extension using PHP-fpm.
Finally, restart the Nginx webserver to apply the changes.
sudo systemctl restart nginx
Step 5) – Switch Default PHP Version (If your Server Running Multiple PHP Version)
You can easily switch between multiple PHP versions installed on any system. Execute the following command on the terminal:
sudo update-alternatives --config php
This system has PHP 8.0 and PHP 7.4 installed. Select a PHP version on our choice.
There are 2 choices for the alternative php (providing /usr/bin/php). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/php8.0 80 auto mode 1 /usr/bin/php7.4 74 manual mode 2 /usr/bin/php8.0 80 manual mode Press to keep the current choice[*], or type selection number: [ENTER CHOICE HERE]
Step 6)Testing PHP
To test whether the web server is configured properly for PHP processing, create a new file named info.php
inside the /var/www/html
directory with the following code:
/var/www/html/info.php
<?php
phpinfo();
Save the file, open your browser, and visit: http://your_server_ip/info.php
.
You’ll see information about your PHP configuration similar to the following:
Hope this tech article is helpfull for you while you want to install PHP 8.0 and comfortably integrate it with either Apache or Nginx web servers. Awaited your feedback because it makes us more perfect.
Subroto Mondal
Latest posts by Subroto Mondal (see all)
- Installing and Configuring OpenShift: A Step-by-Step Guide for Linux Experts with Terminal Code - February 19, 2023
- Sed Command in Linux with Practical Examples - February 19, 2023
- Rsync Command uses with examples - February 19, 2023
One Pingback
Laravel Mongodb Integration - Tech Blog