Nginx does not contain native PHP processing like some other web servers, install
Install the
sudo apt install php-fpm, php-mysql
Add the following content, which was taken and slightly modified from the default server block configuration file, to your new server block configuration file: /etc/nginx/sites-available/default
sudo nginx -t
Reload Nginx to make the necessary changes:
sudo systemctl reload nginx
Open URL : http://your_server_domain_or_IP/info.php
php-fpm
, which mean for "fastCGI process manager". Nginx to pass PHP requests to this software for processing.Install the
php-fpm
module along with an additional helper package for mysql database server php-mysql
, which will allow PHP to communicate with your database backend. Do this by typing:sudo apt install php-fpm, php-mysql
Add the following content, which was taken and slightly modified from the default server block configuration file, to your new server block configuration file: /etc/nginx/sites-available/default
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name test.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Test your new configuration file for syntax errors by typing:sudo nginx -t
Reload Nginx to make the necessary changes:
sudo systemctl reload nginx
Creating a PHP File to Test Configuration
To do this, use your text editor to create a test PHP file called
info.php
in your document root:
sudo nano /var/www/html/info.php
This is valid PHP code that will return information about your server:
<?php
phpinfo();