2

nginxサーバーでサブディレクトリを機能させるのに問題があります。

私はnginxを使用してWordPressのインストールをWebルートとして提供し、サブディレクトリで追加のphpアプリケーションを実行しようとしています。Wordpressは正常に動作しますが、404、403、または「入力ファイルが指定されていません」がないと、サブディレクトリでアプリケーションを実行できません。さまざまな構成でエラーが発生します。明らかなことがあると思いますが、理解できないようです!

関連する構成は次のとおりです。

どんな助けでも大歓迎です!

server {
listen       myserver.edu:8081;                
server_name  myserver.edu:8081;           

try_files $uri $uri/ /index.php;


location / {
    root /path/to/nginx/html/wordpress;
    index index.php;
}

location /stacks {
    alias /another/path/to/usr/local/share/stacks/php;
    index index.php;
}

location ~ \.php$ {
    set $php_root /path/to/nginx/html/wordpress;
    include        fastcgi_params;
    fastcgi_pass   localhost:8082;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    }

location ~ \stacks.php$ {
    set $php_root /another/path/to/usr/local/share/stacks/php;
    include        fastcgi_params;
    fastcgi_pass   localhost:8082;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    }
4

2 に答える 2

5

エイリアスを使用して$php_rootを設定する方法がわかりません。外部フォルダからwordpress-rootdirectoryへのシンボリックリンクを作成する場合、それを修正する方法を知っています。

したがって、ターミナルを使用してシンボリックリンクを作成し、stacks-subdirectoryが実際のサブディレクトリになるようにします。

 ln -s /another/path/to/usr/local/share/stacks/php /path/to/nginx/html/wordpress/stacks

nginx-configとして使用します

server {
    listen       myserver.edu:8081;                
    server_name  myserver.edu:8081;

    root /path/to/nginx/html/wordpress;
    index index.php;       

    location / {    
        try_files $uri $uri/ /index.php;
    }

    location /stacks {
        try_files $uri $uri/ /stacks/index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   localhost:8082;
        include        fastcgi_params;
    }
}
于 2012-06-21T21:33:36.027 に答える
1

'try_files'をコメントアウトします。その後、サブディレクトリが機能し始めますか?おそらく、「location」ディレクティブが考慮される前に処理されます。その場合は、「try_files」を「location/」のブロックに移動します。

とにかく、それは「try_files」にとってより良い場所だと思います。現在の構成では、存在しないファイルのリクエストは、「stacks」ディレクトリにある場合でも、すべてWordpressに送信されるようです。

于 2012-06-21T21:32:36.553 に答える