Wordpress Multi-Site Converting Apache to Nginx

Francis Daly francis at daoine.org
Thu May 1 06:55:48 UTC 2014


On Thu, May 01, 2014 at 02:07:49AM -0400, nrahl wrote:

Hi there,

> This is the entire config now:
> 
> location ^~ /wordpress/ {
>    fastcgi_pass unix:/var/run/php5-fpm.sock;
> }

That says "talk fastcgi to that socket", but nothing useful is sent on
that connection because you have no fastcgi_param directives there. (And
no indication that any are inherited from the surrounding context.)

So php will not be asked to process any particular file.

You'll probably want SCRIPT_FILENAME, and possibly some more params,
to get any kind of useful output. The details depend on your fastcgi
server, but the nginx fastcgi.conf is usually a good starting point.

> location / {
>    return 403;
> }
> 
> That's all the location blocks.
> 
> What happens:
> 1. Going to any page that does not start with /wordpress/ produces a 403.
> This is correct according to my understating of the config.

Yes, that's what the config asks for.

> 2. Going to any url starting with /wordpress/ like /wordpress/wp-admin/ or
> even just /wordpress/ itself, produces a blank page. 

Yes, that's what the config asks for.

Strictly, it provides "whatever the fastcgi server returns"; but since
that is "nothing", that's what you get. The fastcgi server logs may have
more details.

> < X-Powered-By: PHP/5.5.9-1ubuntu4

So, nginx sent the request to the fastcgi server. That's good.

> > The logs will show which location is used. Can you see which
> > file-on-the-filesystem is returned?
> 
> For the request /wordpress/ with above simple config, it matches the
> /wordpress/ location and passes it to fastcgi:

That's true of this config and test. The question was about the raw
wp-admin.php content that you reported with a previous config.

But it sounds like you're progressing with getting the config to do what
you want, so that's good.

> the log says: http upstream request: "/wordpress/?"
> then: http fastcgi record length: 61
> which seems a bit short. So PHP is returning nothing?

Correct. PHP processes the named input file, which you haven't set,
so it processes nothing and returns the output.

	f
-- 
Francis Daly        francis at daoine.org



More information about the nginx mailing list