web-dev-qa-db-ja.com

nginxの異なるユーザーの下で実行されている複数のMagentoサイト

Magentoファイルとデータベースを本番サーバーからコピーし、テストサーバーのサブドメインで構成しようとするスクリプトを作成しました。

各テストサイトには次のものがあります。-一意のサブドメイン-php-fpmプールで指定された一意のユーザーの下で実行

Php-fpmプールの構成は次のとおりです。

[test1]
user = test1
group = test1
listen = /run/php/php7.0-test1-fpm.sock
listen.owner = www-data
listen.group = www-data

したがって、次のように異なるユーザーの下に後続のサイトを設定します。

[test2]
user = test2
group = test2
listen = /run/php/php7.0-test2-fpm.sock
listen.owner = www-data
listen.group = www-data

Magento nginxサーバーブロックを複製しようとすると、問題が発生します(以下に貼り付けた省略バージョン)。

 upstream fastcgi_backend {
     server  unix:/run/php-fpm/php-test1-fpm.sock;
 }

 server {

     listen 80;
     server_name test1.magento-dev.com;
     set $MAGE_ROOT /usr/share/nginx/html/test1;
     include /usr/share/nginx/html/test1/nginx.conf.sample;
 }

そのように設定を複製すると:

 upstream fastcgi_backend {
     server  unix:/run/php-fpm/php-test2-fpm.sock;
 }

 server {

     listen 80;
     server_name test2.magento-dev.com;
     set $MAGE_ROOT /usr/share/nginx/html/test2;
     include /usr/share/nginx/html/test2/nginx.conf.sample;
 }

Fastcgi_backend upsteamがすでに定義されているため、エラーが発生します。私は上流のnginxドキュメントを読んで、それはサーバーのプールであると言いますが、phpリクエストをハンドオフするためにこのように上流を指定するためにここで何が起こっているのか本当に理解していません。

私は何が間違っているのですか?異なるユーザーで実行されているサブドメインに複数のmagentoサイトをセットアップするにはどうすればよいですか?

修正方法:

アップストリームの名前を変更しましたが、proxy_passでアップストリーム名が使用されていることに気づきませんでした。 Magentoルートのnginx.conf.sampleのproxy_passを編集する必要があります。

2
Guerrilla

NginxとPHP 5.6を使用して複数のプールをセットアップする方法を以下に示します。パスを使用せず、ソケットを使用します。ファイルを少し編集してより一般的なものにしました。それがタイプミスだと仮定して一致しません。

/ etc/php-fpm-5.6.d/pool1

[pool1]
listen = 127.0.0.1:9000

/ etc/php-fpm-5.6.d/pool2

[pool2]
listen = 127.0.0.1:9001

/ etc/nginx/upstreams.conf

upstream php56-pool1 {
    server 127.0.0.1:9000;
}

upstream php56-pool2 {
    server 127.0.0.1:9001;
}

これが私のNginxロケーションブロックの関連部分です。

/ etc/nginx/site1.conf

location ~ \.php$ {
    fastcgi_pass   php56-pool1;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
}

/ etc/nginx/site2.conf

location ~ php$ {
    fastcgi_pass php56-pool2;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
2
Tim