Configure Nginx to serve PHP files on Ubuntu
11 March 2022 (Updated 11 March 2022)
Assuming you’ve setup Nginx and PHP-FPM, you’ll want to configure Nginx to use PHP-FPM to process PHP files.
Create sample PHP app
Create root web directory.
sudo mkdir /var/www/example-website
Create an info.php
file.
vim /var/www/example-website/info.php
Paste the following code:
<?php
phpinfo();
Assign ownership to a non-root user who will be responsible for most sysadmin tasks.
sudo chown -R $USER:$USER /var/www/example-website
Create Nginx configuration
sudo vim /etc/nginx/sites-available/example-website
Add the following:
server {
listen 80;
# Instead of example-domain, you'll want to use a domain that you own (e.g., mycoolwebsite.com)
server_name example-domain www.example-domain;
root /var/www/example-website;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Change as needed
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Activate this config by creating a symlink from the sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/example-website /etc/nginx/sites-enabled/
Test configuration for syntax errors:
sudo nginx -t
Activate new configuration:
sudo systemctl reload nginx
Verify configuration
Assuming you’ve setup your DNS records properly, navigate to http://server_domain_or_IP/info.php
and you should see information about your PHP installation.
Tagged:
Nginx
Thanks for your comment 🙏. Once it's approved, it will appear here.
Leave a comment