다른 폴더와 함께 루트로 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

세 개의 도메인에 세 개의 Wordpress 인스턴스가 있다고 가정합니다. 이 경우 각 웹 사이트 및 Wordpress 설치에 대한 서버를 정의해야 합니다.

하나의 도메인에 여러 개의 Wordpress를 설치하려는 경우 일반적으로 접근 방식이 정확하지만 PHP로의 핸드오버를 정의해야 합니다. 나는 좋은 것을 가지고 있다그것에 대한 튜토리얼, 하지만 실제로는 "Nginx Wordpress 튜토리얼"을 구글에서 검색하여 100개의 튜토리얼을 찾을 수 있습니다.

하나를 작동시키는 것부터 시작한 다음 다른 것을 추가하는 것이 좋습니다.

답변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;
        }
     }
 }

관련 정보