Serving wordpress from subdomain
Alan Chandler
alan at chandlerfamily.org.uk
Fri May 16 05:11:43 UTC 2014
On 16/05/14 03:38, adambenayoun wrote:
> My setup is nginx + php-fpm. I am running a web application on domain.com
> and I am serving a wordpress configuration from domain.com/blog.
>
> The problem is that the web app is served from /var/www/domain/html/http and
> wordpress is located outside of the root directory:
> /var/www/domain/html/blog
> ...
I have been wrestling with a similar problem - except mine is worse, in
that the applications running in a separate physical directory were php
applications which required $_SERVER['DOCUMENT_ROOT'] to point to the
actual physical directory for the real document root. I
> location /blog {
> root /var/www/domain/html;
> try_files $uri $uri/ /blog/index.php?q=$1;
> }
> location ~ \.php(/|$) {
> try_files $uri =404;
> include /etc/nginx/fastcgi_params;
> fastcgi_split_path_info ^(.+\.php)(.*)$;
> fastcgi_param SCRIPT_FILENAME
> $document_root$fastcgi_script_name;
> fastcgi_param PATH_INFO $fastcgi_script_name;
> fastcgi_param SERVER_NAME $http_host;
> fastcgi_pass 127.0.0.1:9000;
The problem here is that as nginx redirects to the second location block
when it can't find the file with try_files and goes to /blog/index.php,
it changes root back to the default
The way I solved the problem is
location = /blog {
rewrite ^ /blog/ permanent;
}
location /blog/ {
alias /home/alan/dev/blog/web/;
index index.php;
}
location ~ ^/blog/(.*\.php)$ {
alias /home/alan/dev/blog/web/$1;
include php-apps.conf;
}
and the include file (used becaise I have several similar apps in this
area and each one is treated the same)
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT /home/alan/dev/test-base;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php5-fpm-alan.sock;
There is a problem - which I don't really understand - that try_files
does not work with alias. so I am not using it in my sub location blocks
I do have
location / {
try_files $uri $uri/ =404;
}
and with the whole thing in place I do get 404s when somebody attempts
to access a non existent page. I think in your situation, your location
path equals the final elements of the physical filesystem path, so you
could use root instead of alias and then include the try_files bits you
have.
--
Alan Chandler
http://www.chandlerfamily.org.uk
More information about the nginx
mailing list