Skip to content

Instantly share code, notes, and snippets.

@sergeifilippov
Created February 10, 2014 03:22
Show Gist options
  • Save sergeifilippov/8909839 to your computer and use it in GitHub Desktop.
Save sergeifilippov/8909839 to your computer and use it in GitHub Desktop.
linux-dash with nginx
server {
server_name $domain_name;
root /var/www;
index index.html index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# Cache static files for as long as possible
location ~* \.(?:xml|ogg|mp3|mp4|ogv|svg|svgz|eot|otf|woff|ttf|css|js|jpg|jpeg|gif|png|ico)$ {
try_files $uri =404;
expires max;
access_log off;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
# if hosting in a sub folder, setup a new location
# replace `/linus-dash` with the folder name eg. `/folder_name`
#location /linux-dash {
# index index.html index.php;
#}
# Pass PHP requests on to PHP-FPM using sockets
location ~ \.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/run/php5-fpm.sock;
# fastcgi_pass localhost:9000; # using TCP/IP stack
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
try_files $uri $uri/ /index.php?$args;
include fastcgi_params;
}
}
## Dependecies
+ nginx
+ php-fpm
+ php5-curl
1. Install `php-fpm` and configura to use either `sockets` or `TCP/IP`
2. Create a nginx configuration (`eg. domain_name.conf`) in `/etc/nginx/conf.d/`
@HaoZeke
Copy link

HaoZeke commented Feb 3, 2015

Still no data shown. All blank

@yonjah
Copy link

yonjah commented Feb 5, 2015

Here are the nginx.conf for php settings that worked for me -

location ~ \.php(/|$) { 
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        fastcgi_pass unix:/run/php-fpm/dash.socket;
        # fastcgi_pass   localhost:9000; # using TCP/IP stack
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        try_files $uri $uri/ /index.php?$args;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
}

I got a blank page until I added the line

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

FPM settings /etc/php-fpm.d/dash.conf -

[dash]
listen = /run/php-fpm/dash.socket
listen.backlog = -1
listen.owner = nginx
listen.group = nginx
listen.mode=0660
access.log = /var/log/php-fpm/dash.access.log
access.format = "%t \"%m %r%Q%q\" %s %{mili}dms %{kilo}Mkb %C%%"

; Unix user/group of processes
user = nginx
group = nginx

; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500

; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

; host-specific php ini settings here
; php_admin_value[open_basedir] = /var/www/DOMAINNAME/htdocs:/tmp

I also changed php settings to display errors since I tried to figure whats wrong, you can probably don't need this but if nothing works it might be useful
in /etc/php.ini

error_reporting = E_ALL
display_errors = On
date.timezone = "Antarctica/South_Pole"

I also changed the timezone since not setting it will throw some errors that will mess up some of the widgets (but if everything else is Ok most of them will work).

If you follow this settings above you should have a few logs running (for fpm / nginx ) so if nothing works try to see if there is any useful information in the logs.

@derekslenk
Copy link

Has anyone tried to get this to work with the new setup? I can't seem to give it access to the modules directory...

@KelvinVenancio
Copy link

My config:

upstream php5-fpm-sock {
        server unix:/var/run/php5-fpm.sock;
}

server {
        server_name   dash.domain.com;
        listen  80;

        root    /usr/share/nginx/html/linux-dash;
        index   index.php index.html module.php;
        access_log      /var/log/nginx/linux-dash-access.log;
        error_log       /var/log/nginx/linux-dash-error.log;


    location ~ \.php$ {
     try_files $uri =404;
         root           /usr/share/nginx/html/linux-dash;
         fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
         fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include        fastcgi_params;
    }
}

Works fine!

@Obi8
Copy link

Obi8 commented Apr 12, 2016

How can i enable

-exec
-shell_exec
-escapeshellarg

for linux-dash?

@455412013
Copy link

How can i enable

-exec
-shell_exec
-escapeshellarg

for linux-dash?

first: vim /usr/local/php/etc/php.ini
second: find this word disable_functions

@bananabob
Copy link

I can see the webpage produced by Dash, but there is no data in any of the boxes.

My set up is on a RPi 5. I am using Nginx

Here is my nginx config:

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	autoindex on;
	root /var/www/html;

	index index.html index.htm index.php;

	server_name silver;

 	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
}

        location /dash {
        index index.html index.php;
}


	# pass PHP scripts to FastCGI server
	#
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
	#
	#	# With php-fpm (or other unix sockets):
		#fastcgi_pass unix:/run/php/php7.4-fpm.sock;
		fastcgi_pass unix:/run/php/php8.2-fpm.sock;

                fastcgi_split_path_info ^(.+\.php)(/.*)$;

                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_param DOCUMENT_ROOT $realpath_root;
                fastcgi_param HTTPS off;
                fastcgi_read_timeout 1000;

                include fastcgi_params;


	#	# With php-cgi (or other tcp sockets):
	#	fastcgi_pass 127.0.0.1:9000;
	}
}

In /var/www/ the /html is a link:

lrwxrwxrwx 1 root root 32 Mar 29 13:28 html -> /S3TB/data/share/Documents/HTML/

and /dash can be found in that directory

drwxrwxr-x 5 james janda 4096 Apr 1 14:17 dash

I am assuming that the problem is with my nginx configuration for the location of dash.

Any help would be appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment