2016-09-12 6 views
0

と離れて行います。主なアイデアは単純です:3つのドッカーコンテナ、1は単に単にphpinfo();これは正常に動作して出力/app/web/でその中のindex.phpとのデータコンテナです。:あなたがする場合は、私は少し実験、仮説をやっているのFastCGIのparams

私は、うまく動作しているnginxのコンテナと、別のPHP-FPMコンテナを持っています。どちらも公式画像のものです。

は、私は、標準設定で細かい作業のすべてを持っていた、とnginxのもファイル自体へのアクセス権を持っていなかったようにもセキュリティ対策として、唯一のphp-FPMにデータコンテナを結合しました。したがって、データコンテナは、 /appのphp-fpmコンテナにマウントされており、すべてが世界で良好です。

これはすべて問題ありませんでした。それから私はいくつかの変数で遊び始めました。

実際、nginxがphp-fpmに変数を渡していると、おそらくnginx fastcgiセットアップでいくつかのパラメータを削除することができました。何が起こっているか知っていますか?

物事は/appchrootセットで細かい行っていた、と私は/webchdirを追加しましたが、できるだけ早く私はnginxのからPATH_TRANSLATEDを取り出して、それが動作するように失敗しました。私はここでFile not found.No input file specified.

を取得しないかrootがnginx.confに指定されていない、nginxのコンテナのnginx.confの関連する部分である:

location/{ 
    index index.php; 
    fastcgi_split_path_info ^(.+\.php)(/.*)$; 
    include fastcgi_params; 

    fastcgi_param PATH_INFO $fastcgi_path_info; 
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; 
    fastcgi_index index.php; 
    fastcgi_param HTTPS $https; 
    fastcgi_param HTTP_PROXY ''; 
    fastcgi_intercept_errors on; 
    fastcgi_pass php-fpm:9000; 
    break; 
} 

www.confプールの関連部分:

chroot = /app 

; Chdir to this directory at the start. 
; Note: relative path can be used. 
; Default Value: current directory or/when chroot 

chdir = /web 

php_admin_value[doc_root] = /app/web 

答えて

0

私は正しい組み合わせを見つけるまでだから私は微調整と微調整。ここに私のnginxの設定です:

location/{ 
     index index.php; 
     fastcgi_index /index.php; 
     fastcgi_param QUERY_STRING  $query_string; 
     fastcgi_param REQUEST_METHOD  $request_method; 
     fastcgi_param CONTENT_TYPE  $content_type; 
     fastcgi_param CONTENT_LENGTH  $content_length; 

     fastcgi_param SCRIPT_NAME  /index.php; 
     fastcgi_param REQUEST_URI  $request_uri; 
     fastcgi_param DOCUMENT_URI  $document_uri; 
     fastcgi_param SERVER_PROTOCOL $server_protocol; 
     fastcgi_param REQUEST_SCHEME  $scheme; 
     fastcgi_param HTTPS    $https if_not_empty; 

     fastcgi_param GATEWAY_INTERFACE CGI/1.1; 
     fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 

     fastcgi_param REMOTE_ADDR  $remote_addr; 
     fastcgi_param REMOTE_PORT  $remote_port; 
     fastcgi_param SERVER_ADDR  $server_addr; 
     fastcgi_param SERVER_PORT  $server_port; 
     fastcgi_param SERVER_NAME  $server_name; 

     # PHP only, required if PHP was built with --enable-force-cgi-redirect 
     fastcgi_param REDIRECT_STATUS 200; 
     fastcgi_param SCRIPT_FILENAME /index.php; 
     fastcgi_param HTTP_PROXY ''; 

     fastcgi_pass php-fpm:9000; 
    } 

そして、ここに私のプールの設定です:

chroot = /app 
chdir = /web 
php_admin_value[doc_root] = web 

私は何が起こっていたか見ることができたので、私は基本的にデフォルトのfastcgi_paramsファイルのうち、すべてのものをコピーしました。次のステップでは、デフォルトのsymfonyの2アプリとして、怒りで何かでこれをテストすることになります。

関連する問題