2017-10-09 5 views
1

私は2つのドッキング用のコンテナ、nginxとphp-fpmを持っています。自己完結型のnginxとphp-fpmコンテナの作り方

生産のために、それらを自己完結型(コンテナはビルド時にgitからクローンを複製する)にしたいと考えています。しかし、Repoをクローンした後、プロジェクトフォルダにcomposer installのような初期のものを作る必要があります。私はそこにphpを持っているので、私はそれをphp-fpmコンテナの中で行うことができます。しかし、どのようにnginxのコンテナでコードを準備する?私は作曲家のためにそこにPHPを持っていません。

初期化された同じフォルダを両方のコンテナにマウントすると、問題はありません。

多分私は何か間違っている、何がnginx + php-fpmのための自己完結型コンテナを行うための最善の方法ですか?今の

私はこのnginxの-config設定を持っている:

server { 
    listen  80; 
    server_name localhost; 

    index index.php index.html; 

    # I need only /api/ path 
    location /api/ { 
     try_files $uri $uri/ /index.php?$query_string; 
    } 

    location ~ \.php$ {  
     root /var/www/public; 
     try_files $uri =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass api:9000; 
     fastcgi_index index.php; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
    } 
} 

答えて

1

あなただけFPMサーバー上のPHPファイルを持っている必要があります。あなたが以前に指摘したように、あなたはそのサーバ上で作曲家を動かすためにphp cliを持っているべきです。 nginxサーバーにPHPファイルは必要ありません。 SCRIPT_FILENAMEはCGIサーバーによって解決されるため、Webプロキシ上に場所が存在する必要はありません。 nginxサーバに設定を変更する必要がある場合は、おそらくSalt、Chef、Puppetなどのシステム指向のものを使用したいと思うでしょう。

location ~ \.php$ { 
    # This is the webserver root for static junk 
    root /var/www/public; 
    ... 
    # Point this somewhere else if the docroot is in a different location on the FPM server. 
    fastcgi_param SCRIPT_FILENAME /home/php-fpm/wwwroot/$fastcgi_script_name; 
} 
+1

ありがとうございました。あなたの答えは私を助けました。私は最初から始め、その後、nginxとfpmを適切に設定することができました。 –

関連する問題