Nginx farklı yerlerden php dosyalarını Porsiyon

2 Cevap php

Ben web sunucusu olarak nginx kullandığınız benim sunucuda farklı dizinlere benim ana web sitesi ve wordpress var. Ana web sitesi / home / ben / www ve Wordpress / home / ben / wordpress olduğunu. Ben belirli bir neden için ayrı dizinleri bu şekilde onları olması gerekir. Nasıl nginx yapılandırma dosyasında bu belirtebilirim? Şu anda şu var ve çalışmıyor:

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;
}

Erişmeye çalıştığınızda şu anda HTTP 404 döndürür http://mydomain/blog

2 Cevap

this question ve Nginx Manual göz atın.

Lütfen blog hattını değiştirmeyi deneyin:

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

Ben şimdi saatlerce bu ile mücadele ve sonunda aşağıdaki gibi çalışma yapılandırmaları ulaştı:

    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;
    }