At https://packages.raspberry-hosting.com/ we have provided for download the latest version of the nginx for Raspberry Pi.
There is also a init script. Packages will be updated regularly.
Installation:
1. Update/upgrade
root@raspberrypi:~# apt-get update && apt-get -y upgrade
2. Install additional packages:
root@raspberrypi:~# apt-get install libpq5 libxslt1.1 aspell mcrypt libltdl7 libgmp10 curl libicu48 libgomp1 libpng12-0 libjpeg8 libfontconfig1 libgd2-xpm
2. Add BEST-HOSTING repository with all packages: (Read more: FREE Raspbian repository )
root@haproxy01:~# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x908332071dd2e32e root@haproxy01:~# cat > /etc/apt/sources.list.d/best-hosting.list deb http://deb.best-hosting.cz/debian/ raspberry main root@haproxy01:~# apt-get update root@haproxy01:~# apt-cache search bh-
3. Install the NGINX
stable version: root@raspberrypi:~# wget https://packages.raspberry-hosting.com/nginx-raspberry-pi/nginx_1.6.2-1_armhf.deb mainline version: root@raspberrypi:~# wget https://packages.raspberry-hosting.com/nginx-raspberry-pi/nginx_1.7.7-1_armhf.deb install: root@raspberrypi:~# dpkg -i ./nginx_1.6.2-1_armhf.deb
stable version: root@raspberrypi:~# apt-get install bh-nginx-stable or mainline version: root@raspberrypi:~# apt-get install bh-nginx-mline
4. Download nginx init script in /etc/init.d/ and add it permissions to execute:
It's not necessary
root@raspberrypi:~# wget https://packages.raspberry-hosting.com/nginx-raspberry-pi/etc/init.d/nginx -O /etc/init.d/nginx root@raspberrypi:~# chmod +x /etc/init.d/nginx
5. Allowing execution nginx even after reboot:
It's not necessary
root@raspberrypi:~# update-rc.d nginx defaults
6. Create the following folders:
It's not necessary
root@raspberrypi:~# mkdir /etc/nginx/cache root@raspberrypi:~# mkdir /etc/nginx/conf.d root@raspberrypi:~# mkdir /etc/nginx/sites-available root@raspberrypi:~# mkdir /etc/nginx/sites-enabled
7. Basic settings /etc/nginx/nginx.conf :
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log error;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
access_log /var/log/nginx/access.log main;
# geoip_country /usr/local/share/GeoIP/GeoIP.dat;
# geoip_city /usr/local/share/GeoIP/GeoLiteCity.dat;
# upload_progress uploads 1m;
# upload_progress proxied 1m;
open_file_cache max=5000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
set_real_ip_from 0.0.0.0/32;
real_ip_header X-Forwarded-For;
add_header X-XSS-Protection '1; mode=block';
add_header X-Content-Options nosniff;
gzip on;
gzip_static on;
gzip_disable "msie6";
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 4;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
gzip_buffers 16 8k;
client_max_body_size 30M;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
types_hash_max_size 2048;
server_tokens off;
ignore_invalid_headers on;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 240;
fastcgi_cache_path /etc/nginx/cache/ levels=1:2 keys_zone=microcache:10m max_size=1000m inactive=60m;
fastcgi_cache microcache;
fastcgi_cache_key $scheme$request_method$host$request_uri;
fastcgi_cache_valid 10m;
fastcgi_cache_lock off;
fastcgi_cache_use_stale updating;
index index.php index.html index.htm;
include fastcgi_params;
# limit_req_zone $binary_remote_addr zone=one:10m rate=50r/s;
include /etc/nginx/sites-enabled/*.conf;
}8. Basic settings for /var/www/ :
server {
listen 80;
server_name your-domain-name-here.com;
root /var/www;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ (^|/)\. {
return 403;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
# SECURITY : Zero day Exploit Protection
try_files $uri =404;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/your-domain-name-here.com.sock;
}
}9. Nginx and fastcgi_params files for download is here:
root@raspberrypi:~# wget https://packages.raspberry-hosting.com/nginx-raspberry-pi/etc/nginx/fastcgi_params -O /etc/nginx/fastcgi_params root@raspberrypi:~# wget https://packages.raspberry-hosting.com/nginx-raspberry-pi/etc/nginx/nginx.conf -O /etc/nginx/nginx.conf
root@raspberrypi:~# wget http://deb.best-hosting.cz/_scripts_/nginx/fastcgi_params -O /etc/nginx/fastcgi_params root@raspberrypi:~# wget http://deb.best-hosting.cz/_scripts_/nginx/nginx.conf -O /etc/nginx/nginx.conf
10. Install PHP-FPM and configure it how you need:
root@raspberrypi:~# apt-get install php5-fpm root@raspberrypi:~# nano /etc/php5/fpm/php-fpm.conf root@raspberrypi:~# nano /etc/php5/fpm/pool.d/www.conf (or your-domain-name-here.com.conf) simply as you need
11. Restart NGINX & PHP-FPM:
root@raspberrypi:~# /etc/init.d/php-fpm restart && /etc/init.d/nginx restart
Enjoy!
In case of an update package, be very careful and keep a back-up of all configuration files from /etc/nginx/ !
