domain.com/
とdomain.com/site2
を指す同じNginxサーバに2つのCodeIngniterベースのアプリケーションを設定するための特定の要件があります。Nginx、FastCGIの2つのディレクトリに2つのCodeignterアプリケーションを設定する方法
これまでのところ、私は運のない構成のさまざまな組み合わせを試みました。ほとんどの場合、404エラーが出ます。
次は最新の設定ファイルです。
server {
listen 80;
server_name domain.com www.domain.com;
root /var/www/domain.com/;
location/{
root /var/www/domain.com/site1/public/;
index index.html index.php
access_log /var/www/domain.com/site1/logs/access.log;
error_log /var/www/domain.com/site1/logs/errors.log;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/domain.com/main/public$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
location /site2{
root /var/www/domain.com/site2/public/;
index index.html index.php;
access_log /var/www/domain.com/site2/logs/access.log;
error_log /var/www/domain.com/site2/logs/errors.log;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
}
}
}
私は、ドメイン部分なしroot
の代わりにalias
を使用していました。まだ運がありません。
ただし、ロケーションブロック内にalias
とtry_files $uri $uri/ /site2/site2/public/index.php?$query_string
を使用すると、css/jsなどのアセットなしでウェブサイトが読み込まれます。
私の設定が間違っていることを教えてください。
あなたは英雄です。それは完全に動作します。ありがとう – Johna
ただ一つの問題です。 Site2は正常に動作しています。しかし、サイト1はメインページだけを読み込みます。内部ページはnginx 404エラーを返します。 @RichardSmith – Johna
*内部ページ*は '/ index.php'スクリプトで扱うべきルートを参照していますか? site1の 'location /'ブロックに 'try_files $ uri $ uri//index.php;'を含めてください。 –