0

私は nginx のこの構成を持っています:

server {
    listen       80;
    server_name  example.com www.example.com;

    location = / {
            root /var/www/example.com;
            index index.php;
    }

    location / {
            root   /var/www/example.com/Drupal;
            index  index.php index.html;

            if (!-f $request_filename) {
                    rewrite  ^(.*)$  /index.php?q=$1  last;
                    break;
            }

            if (!-d $request_filename) {
                    rewrite  ^(.*)$  /index.php?q=$1  last;
                    break;
            }
    }

    location ~ \.php$ {

            set $php_root /var/www/example.com/Drupal;

            if ($request_uri ~ ^/MassMail) {
                    set $php_root /var/www/example.com/MassMail;
            }

            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $php_root$fastcgi_script_name;

    }

私はphpに2つのアプリを持っています:

  • /var/www/example.com/MassMail の最初の
  • /var/www/example.com/Drupal の 2 番目 (Drupal ブログ)

私のサーバーは2つのURLを正しく提供します

example.com/ --> drupal ブログ

example.com/MassMail --> 他のアプリ

しかし、それは画像や JavaScript を提供しません ... (エラー 404)

serve img などについて、次のような多くのことをテストしました(たとえば...):

    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ {
           expires         30d;
            access_log      off;
    }

ルートディレクトリが見つからない可能性がありますが、どれですか?

4

1 に答える 1

0

phpは、MassMailが/(ルート)にインストールされていると考えています。staitcファイルの2番目の場所を追加してみてください。

location ~* ^/MassMail.+.(jpg|jpeg|gif|css|png|js|ico)$ {
           expires         30d;
            access_log      off;
           root /var/www/xxx.com/MassMail;
}

構成#2

location ~* ^/(.*)/.+.(jpg|jpeg|gif|css|png|js|ico)$ {
  expires         30d;
     access_log      off;
   root /var/www/xxx.com/$1;
}

構成#3

各アプリ構成を特別なファイル(MassMailの例)に配置します。

アプリケーション/massmail.conf

  location ~ \.php$ {

            set $php_root /var/www/xxx.com/Drupal;

            if ($request_uri ~ ^/MassMail) {
                    set $php_root /var/www/xxx.com/MassMail;
            }

   location ~* ^/MassMail.+.(jpg|jpeg|gif|css|png|js|ico)$ {
           expires         30d;
            access_log      off;
           root /var/www/xxx.com/MassMail;
   }

nginx.conf

.....
include applications/massmail.conf;
于 2012-06-24T09:08:59.870 に答える