nginxサブディレクトリを他のフォルダとともにルートとして作成する

nginxサブディレクトリを他のフォルダとともにルートとして作成する

その根 (http://www.example.com/)は/var/www/wordpressを指します

それぞれをブラウザで表示できるようにするにはどうすればよいでしょうか?

working -- http://www.example.com
error -- http://www.example.com/wordpress2
error -- http://www.example.com/htmlsite

構造は次のとおりです。

first wordpress: /var/www/wordpress
second wordpress: /var/www/wordpress2
static html page: /var/www/htmlsite

server {
root /var/www/wordpress;
index index.php;
...

location / {
  try_files $uri $uri/ /index.php$is_args$args;
}

location /wordpress2 {
  root /var/www/wordpress2;
  try_files $uri $uri/ /index.php$is_args$args;
}

location /htmlsite {
  root /var/www/htmlsite;
  try_files $uri $uri/ =404;
}

}

代わりにこれを実行するとroot /var/www;、/wordpress2 と /wordpress3 が機能します。

server {
root /var/www;
index index.php;
...

location / {
  try_files $uri $uri/ =404;
}

location /wordpress2 {
  try_files $uri $uri/ /wordpress2/index.php$is_args$args;
}

location /wordpress3 {
  try_files $uri $uri/ /wordpress3/index.php$is_args$args;
}

location /htmlsite {
  root /var/www/htmlsite;
  try_files $uri $uri/ =404;
}

}

答え1

これは希望通りに動作するはずです。

URI はディレクティブで指定されたディレクトリに追加されるためroot、一度だけ指定する必要があります。`try_files´ のみを各場所に個別に指定する必要があります。

server {
    root /var/www/wordpress;
    index index.php;
    ...

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location /wordpress2 {
        root /var/www;
        try_files $uri $uri/ /wordpress2/index.php$is_args$args;
    }

    location /htmlsite {
        root /var/www;
        try_files $uri $uri/ =404;
    }
}

答え2

3 つのドメインに 3 つの WordPress インスタンスがあると仮定します。その場合、各 Web サイトと WordPress インストールごとにサーバーを定義する必要があります。

1つのドメインに複数のWordpressをインストールしたい場合、あなたのアプローチは一般的に正しいですが、PHPへの引き継ぎを定義する必要があります。私は良いそのチュートリアルしかし、実際には「Nginx Wordpress チュートリアル」を Google で検索するだけで 100 個のチュートリアルが見つかります。

まず 1 つを動作させてから、他のものを追加することをお勧めします。

答え3

必要なのはこれだけです。

    server {
            listen 80;
            root /var/www/wordpress;
            server_name example.com www.example.com;
            index index.php; 

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

    location ~* \.(css|gif|ico|jpeg|jpg|js|png|woff|woff2|ttf|ttc|otf|eot)$ {
            expires max;
            log_not_found off;
        }


        location / {
            #try_files $uri $uri/ =404;
            try_files $uri $uri/ /index.php$is_args$args;
        }


     location /wordpress2 {
      root /var/www/wordpress/wordpress2;
      index index.php;
      try_files $uri $uri/ =404;

      location ~ /wordpress2 /(.+\.php)$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
     }

     location /htmlsite {
      root /var/www/wordpress/htmlsite;
      index index.php;
      try_files $uri $uri/ =404;

      location ~ /htmlsite /(.+\.php)$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
     }
 }

関連情報