So PHP 7.4 has now been released for quite a while for Debian 10 buster. This tutorial will show you how you can install Nginx mainline version on Debian 10 for optimal performance as well as the newest version of PHP, currently 7.4.
Step 1: Install Nginx
Firstly we need to install the prerequisites.
sudo apt install curl gnupg2 ca-certificates lsb-release
Then we need to add the Nginx mainline package to our repository so that when we run apt install nginx, we will download the mainline version instead of the old stable version.
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Optionally, if you would rather want to use the older and slower stable version of Nginx you can do so by running: (Remember that you should only run one of the following)
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Next we need to download the signing key so that we can verify its authenticity
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
If it prints out OK! then you are good to go!
Now that we have downloaded & verified its authnicity lets install it!
sudo apt update
sudo apt install nginx
That’s it! You have now installed the latest release of Nginx on Debian 10. You should now start it!
sudo systemctl start nginx.service
Don’t forget to make it automaticly start on system boot as well.
sudo systemctl enable nginx.service
Visit your server’s IP address in your webbrowser. You should now see something along these lines if it is working correctly.
Step 2: Install PHP 7.4
To add the repositories for PHP:
sudo apt-get install software-properties-common
Since PHP 7.4 didn’t come with Debian 10 it is required to add the following repository
sudo add-apt-repository ppa:ondrej/php
Run this to download your added repositories:
sudo apt update
We can now install PHP now that we have all of the required repositories.
sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-soap php7.4-imap
It is recommended to raise the memory limit to improve the overall performance. Your PHP configuration is located in/etc/php/7.4/fpm/php.ini
.
sudo nano /etc/php/7.4/fpm/php.ini
Press
Replace it with memory_limit = 256
Save & exit by pressing
Step 3: Configure Nginx
Add nginx to www-data group
sudo usermod -a -G www-data nginx
Change owner of directory to www-data
sudo chown -R www-data /usr/share/nginx/html
Go into your default.conf file
sudo nano /etc/nginx/conf.d/default.conf
Replace your existing configuration file with the one below
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
if ($request_uri ~ ^/(.*)\.html$) {
return 302 /$1;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Save & exit by pressing
Now restart your Nginx:
service nginx restart
That’s it! However, you may now test to see if php works
nano /usr/share/nginx/html/phpinfo.php
Add the following lines
<?php
phpinfo();
?>
Save & exit by pressing
Now go to YOURSERVERIP/phpinfo.php in your web browser. You should see something along these lines
That’s it! Now you know how to install Nginx and PHP 7.4 on Debian 10.
Don’t forget to try out our VPS too! Our servers are located in stockholm, so if you’re from Sweden feel free to check out our Swedish site too, and grab yourself a Stockholm VPS.