You've already forked nginx-ubuntu
127 lines
2.7 KiB
Markdown
127 lines
2.7 KiB
Markdown
|
|
# Nginx + PHP-FPM for Ubuntu 24.04
|
|||
|
|
[](#)
|
|||
|
|
[](#)
|
|||
|
|
[](#)
|
|||
|
|
[](#)
|
|||
|
|
[](./LICENSE)
|
|||
|
|
|
|||
|
|
Install Nginx + PHP-FPM on Ubuntu 24.04 server.
|
|||
|
|
|
|||
|
|
This is not a guide and not a toy.
|
|||
|
|
This is a production-grade installer — secure, structured, and ready for multiple applications.
|
|||
|
|
|
|||
|
|
## Why this installer exists
|
|||
|
|
Default Nginx configs become unmanageable quickly. This setup keeps things structured and predictable.
|
|||
|
|
|
|||
|
|
## What this installer does
|
|||
|
|
✔ Creates snippet directory for modular config
|
|||
|
|
✔ Optional security and bot-blocking modules
|
|||
|
|
✔ Cloudflare Real-IP support
|
|||
|
|
✔ Requests to bare server IP return **444**
|
|||
|
|
✔ Suitable for WordPress, Gitea, Zabbix, Wiki and more
|
|||
|
|
|
|||
|
|
## What this installer does *NOT* do
|
|||
|
|
It won’t stop you from running the script without reading the documentation like there’s no tomorrow.
|
|||
|
|
Skip the README, and whatever happens next is your headache, not a bug report.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. Prepare your system
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
sudo apt update -y
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. Download and enter the installer
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
git clone https://git.x-files.dk/webserver/nginx-ubuntu.git
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
cd nginx-ubuntu
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. Run the installer
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
sudo ./nginxinstall
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
After this runs, you have:
|
|||
|
|
|
|||
|
|
| Feature | Status |
|
|||
|
|
|--------|--------|
|
|||
|
|
| Nginx installed & enabled | ✓ |
|
|||
|
|
| PHP-FPM configured | ✓ |
|
|||
|
|
| Snippet structure created | ✓ |
|
|||
|
|
| Default website disabled | ✓ (returns HTTP 444) |
|
|||
|
|
| Cloudflare Real-IP support | ✓ |
|
|||
|
|
| Bad-bot blocking available | ✓ |
|
|||
|
|
| Custom error pages | ✓ editable |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Included Nginx Features
|
|||
|
|
|
|||
|
|
### `/etc/nginx/nginx-snippets/`
|
|||
|
|
|
|||
|
|
Reusable drop-in configs:
|
|||
|
|
|
|||
|
|
| Snippet | Purpose |
|
|||
|
|
|--------|---------|
|
|||
|
|
| cloudflare.conf | Fixes real visitor IPs |
|
|||
|
|
| block-bots.conf | Drops garbage traffic |
|
|||
|
|
| csp.conf | Security headers |
|
|||
|
|
| ssl.conf | TLS configuration |
|
|||
|
|
| errorpages/ | Custom 40x/50x pages |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Default IP response
|
|||
|
|
|
|||
|
|
Server IP access = **444 Drop.**
|
|||
|
|
Because your server is not public property.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### Caching
|
|||
|
|
|
|||
|
|
Performance tuning examples included, **commented until activated intentionally**.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## What happens after install?
|
|||
|
|
|
|||
|
|
Example vhost:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
server {
|
|||
|
|
listen 443 ssl http2;
|
|||
|
|
server_name yourdomain.com;
|
|||
|
|
|
|||
|
|
include nginx-snippets/cloudflare.conf;
|
|||
|
|
include nginx-snippets/block-bots.conf;
|
|||
|
|
|
|||
|
|
root /var/www/yourproject;
|
|||
|
|
index index.php index.html;
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### More Information
|
|||
|
|
|
|||
|
|
More guides and documentation can be found on [wiki.x-files.dk](https://wiki.x-files.dk)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### License
|
|||
|
|
Licensed under the [MIT License](./LICENSE).
|
|||
|
|
|
|||
|
|
---
|