2017-10-30 14 views
0

私たちはHTTP/2.0のためにlighttpdからnginxに移行しており、lighttpdではとても簡単な設定をしています。Nginx、場所、エイリアス、PHP

alias.url = ("/api" => "/web/myserver.com/develapi/") 

私たちはこれをバージョンコントロールAPIとして使用し、urlを適切なフォルダにポイントするだけです。私たちはファイルリンクも使いたくありません。さらに、lighttpdの1行コマンドです。

NGINXでこれを達成しようとしています。 nginxのは$ fastcgi_script_nameとしての$ DOCUMENT_ROOTと/api/index.phpとして/web/myserver.com/develapi渡しとなりSCRIPT_FILENAMEを結果が間違っているよう

location /api { 
    alias /web/myserver.com/develapi; 
    location ~ \.php$ { 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include  fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
    } 
    } 

しかし、これは動作しません。

私たちは、その後、nginxのは、$ DOCUMENT_ROOTとして/web/myserver.comを渡し、/develapi/index.php $ fastcgi_script_nameので、SCRIPT_FILENAMEが正しい結果としてこれが機能するルート

location /develapi { 
    root /web/myserver.com; 
    location ~ \.php$ { 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include  fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
    } 
    } 

を使用しようとしました。

ただし、ルートを使用するということは、既存の構造またはURLを変更することです。このような状況では、エイリアスを使用することが適切な解決策ですが、それを実装するnginxの方法ではエイリアスを使用するのが難しくなります。

私たちは何かが些細なものを欠いているかもしれませんが、どんなポインタも高く評価されます。

答えて

0

私はより多くのドキュメントを読むSCRIPT_FILENAME

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

を返す方法が$ REQUEST_FILENAMEを明らかに問題は一般的に文書化/答えていると思いますが行くには良い方法であると根とエイリアス

fastcgi_param SCRIPT_FILENAME $request_filename; 
の両方で動作します