2010-02-10 11 views
13

Mam swoją główną stronę i wordpress w różnych katalogach na moim serwerze, na którym używam nginx jako serwera WWW. Główna witryna znajduje się w/home/me/www, a Wordpress w/home/me/wordpress. Muszę mieć je w oddzielnych katalogach w ten sposób z konkretnego powodu. Jak określić to w pliku konfiguracyjnym nginx? Obecnie mam następujące i nie działa:Udostępnianie plików php z różnych lokalizacji w nginx

location/{ 
    root /home/me/www; 
    index index.php index.html index.htm; 
} 

location /blog { 
    root /home/me/wordpress; 
    index index.php index.html index.htm; 
} 

location ~ \.php$ { 
    set $php_root /home/me/www; 
    if ($request_uri ~ /blog) { 
     set $php_root /home/me/wordpress; 
    } 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name; 
    include /etc/nginx/fastcgi_params; 
} 

Obecnie zwraca HTTP 404 podczas próby uzyskania dostępu http://mydomain/blog

Odpowiedz

11

Check out this question i Nginx Manual.

Spróbuj zmienić linię blog do:

location ^~ /blog/ { 
    root /home/me/wordpress; 
    index index.php index.html index.htm; 
} 
+1

Dzięki za odpowiedź! W rzeczywistości pytanie, które wskazałeś, było tym, o co prosiłem dawno temu! Nigdy nie udało mi się, żeby to działało w oparciu o odpowiedź. Dopiero dziś dostałem go do pracy. Wysłałem komentarz do tej odpowiedzi. – ErJab

2

Walczyłem z tym przez kilka godzin teraz i ostatecznie dotarł do konfiguracji pracy jak:

location /php-app { 
    passenger_enabled off; 
    alias /path/to/php-app/$1; 
    index index.php index.html; 
    try_files $uri $uri/ @rewrite; 
    } 

    location @rewrite { 
    rewrite ^/php-app(.*)$ /index.php?q=$1 last; 
    } 

location ~ \.php$ { 
    alias /path/to/php-app/$1; 
    rewrite ^/php-app(.*)$ $1 last; 
    passenger_enabled off; 
    fastcgi_pass unix:/tmp/php-fpm.socket; 
    fastcgi_index index.php; 
    include /etc/nginx/fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME /path/to/php-app$fastcgi_script_name; 
    fastcgi_intercept_errors on; 
    } 
Powiązane problemy