Help needed with config

Hi,

I’m baffled. What I want to do is to serve static and php files from one
root if they exist there, and
from another if they don’t, and give a 404 error if the file is in
neither location. I have the following config file.

server {
server_name reseller.anake.hcs;
listen 80;
fastcgi_read_timeout 300;
index index.php;
set $resellerroot “/home/ian/websites/reseller/htdocs”;
set $centralroot “/home/ian/websites/coachmaster3dev/htdocs”;
root $resellerroot;
# if / then redirect to index.php
location = / {
# serve /index.php
rewrite ^ /index.php last;
}
# if local php file exits, serve with fcgi
location ~ .php$ {
try_files $uri $uri/ @masterphp;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param CENTRAL_ROOT $centralroot;
fastcgi_param RESELLER_ROOT $resellerroot;
include /etc/nginx/fastcgi_params;
}
# serve php file from master root
location @masterphp {
root $centralroot;
try_files $uri $uri/ =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME
$centralroot$fastcgi_script_name;
fastcgi_param CENTRAL_ROOT $centralroot;
fastcgi_param RESELLER_ROOT $resellerroot;
include /etc/nginx/fastcgi_params;
}
# serve local static files if they exist
try_files $uri @masterstatic;
# switch to master set when they don’t
location @masterstatic {
root $centralroot;
try_files $uri =404;
}
# now to configure the long polling
push_store_messages on;
location /publish {
push_publisher;
set $push_channel_id $arg_id;
push_message_timeout 30s;
push_max_message_buffer_length 10;
}
# public long-polling endpoint
location /activity {
push_subscriber;
push_subscriber_concurrency broadcast;
set $push_channel_id $arg_id;
default_type text/plain;
}
}

It gives me "No input file specified. " for all inputs - and I mean
all. Files in $centralroot,
files in $resellerroot, files in neither, static files, and php files.

Why? What am I doing silly???

I’m using nginx 1.2.6, compiled with the Comet module included.

Thanks

Ian

On Mon, Nov 04, 2013 at 05:37:15PM +0000, Ian H. wrote:

Hi there,

I’m baffled. What I want to do is to serve static and php files from one
root if they exist there, and
from another if they don’t, and give a 404 error if the file is in
neither location. I have the following config file.

It gives me "No input file specified. " for all inputs - and I mean
all. Files in $centralroot,
files in $resellerroot, files in neither, static files, and php files.

Why? What am I doing silly???

Not using that config file, that server block, or that nginx?

I’m using nginx 1.2.6, compiled with the Comet module included.

With

$ sbin/nginx -V
nginx version: nginx/1.2.6
built by gcc 4.4.5 (Debian 4.4.5-8)
configure arguments: --with-debug
–add-module=…/nginx_http_push_module-0.692/

it happily serves local files and php scripts for me.

What does the debug log say is happening, when you use “curl” to access
one specific url?

f

Francis D. [email protected]

Hi Francis,

Your guess was spot on. I had domain “resellerdev.anake.hcs” confused
with “reseller.anake.hcs” , becasue of a switch about on my favourites
menu :frowning:

Thanks.

Ian

On 04/11/2013 19:01, Francis D. wrote:

files in $resellerroot, files in neither, static files, and php files.
configure arguments: --with-debug --add-module=…/nginx_http_push_module-0.692/

it happily serves local files and php scripts for me.

What does the debug log say is happening, when you use “curl” to access
one specific url?

f


Ian H.
31 Sheerwater, Northampton NN3 5HU,
Tel: 01604 513875
Preparing eBooks for Kindle and ePub formats to give the best reader
experience.