From 72c8392e70b9572a779df2b880097f1446fe6d4a Mon Sep 17 00:00:00 2001 From: Nathan Steel Date: Wed, 19 Apr 2023 15:34:57 -0400 Subject: [PATCH] Update php/nginx guide --- guides/add-php-to-nginx.html | 26 +++++++++++--------------- guides/guide-to-server-hosting.html | 2 +- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/guides/add-php-to-nginx.html b/guides/add-php-to-nginx.html index 456da21..f2fd409 100644 --- a/guides/add-php-to-nginx.html +++ b/guides/add-php-to-nginx.html @@ -36,42 +36,38 @@

PHP is one of the highest used programming languages for websites, and it allows you to add practically any functionality you'd ever want to your sites.

Install

-
sudo apt install php-fpm php-mysql
- -

Um, I forgor

-
sudo nano /etc/php//fpm/php.ini
-

Comment the cgi.fix_pathinfo line, to look like below

-
#set cgi.fix_pathinfo = 0
+
sudo apt install php-fpm
+

If you want to work with mysql, then you also need to install php-mysql.

Add to Website's NGINX conf

-

For each website you want to use php, you'll need to edit the confige file

+

For each website you want to use php, you'll need to edit the config file.

sudo vim /etc/nginx/sites-available/
-

The following code needs adding within the XXX block

+

The following code needs adding within the server block.

location ~ \.php$ {
 	include snippets/fastcgi-php.conf;
-	fastcgi_pass unix:/run/php/php-fpm.sock;
+	fastcgi_pass unix:/run/php/php<VERSION>-fpm.sock;
 }
-

This will use nginx's fastcgi-php.conf snippet which is more secure by deafult than many other php/nginx configs because it 404s if the files doesn't exist. Read Neal Poole'sDon't trust the tutorials for more info.

+

This will use nginx's fastcgi-php.conf snippet which is more secure by default than many other php/nginx configs because it 404s if the requested file doesn't exist. Read Neal Poole's Don't trust the tutorials for more info.

Reload NGINX

sudo systemctl reload nginx

Test it works

-

Create a PHP file e.g. filename.php in the website's directory, and add the snippet below into it

-
+

Create a PHP file e.g. filename.php in the website's directory, and add the snippet below into it.

+
<?php phpinfo(); ?>

Go to that webpage in your browser e.g. domain.co.uk/filename.php, and if php is working you should see a dump of your PHP's version, headers, etc.

Make nginx use index.php as homepage/root

-

Now we'll set nginx to load up index.php as the root of the website, if it exists. Open the site's config with an editor

+

Now we'll set nginx to load up index.php as the root of the website, if it exists. Open the site's config with an editor.

vim /etc/nginx/sites-available/
-

Change the index line to read as below. This will then tell the server to load index.php, and if it doesn't exists, load index.html in it's stead

+

Change the index line to read as below. This will then tell the server to load index.php, and if it doesn't exists, load index.html in its stead.

index index.php index.html
diff --git a/guides/guide-to-server-hosting.html b/guides/guide-to-server-hosting.html index 7dfb2ea..723b06e 100644 --- a/guides/guide-to-server-hosting.html +++ b/guides/guide-to-server-hosting.html @@ -62,7 +62,7 @@
  • Setup an nginx website
  • Add an SSL certificate w/Certbot
  • TODO:Nginx web optimisation
  • -
  • TODO:(Optional) Add PHP to your webserver
  • +
  • (Optional) Add PHP to your webserver
  • MariaDB Database