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/ !