docker + nginx + php-fpm에서 wordpress 리소스를 얻으면 403이 반환되는 이야기

docker로 wordpress 세우고 싶었고, nginx + php-fpm의 구성으로 해 보면, 전혀 스타일이 맞지 않아서 비비었다.
리소스 (.css, .js)를 검색하면 403 오류가 반환되었습니다.



PHP는 실행 중이지만 리소스를 사용할 수 없다는 것은 무엇입니까?
Web은 특기 분야가 아니기 때문에, 퍼미션의 문제, 유저의 문제(컨테이너간의 유저의 차이)를 의심해 여러가지 시험해 보았지만 해결하지 않고.

1개월 정도 지나서 다시 시도해 보면, 엄청 초보적인 실수였지만, docker 초보자는 의외와 같은 실수할 것 같은 생각이 들었기 때문에, 메모.

결론에서 말하면, docker-compose.yml 에서 nginx 에서도 php 에서도 wp 루트를 마운트해 주지 않으면 안 된다고 이야기.

호스트측의 app 디렉토리가 wp 루트의 경우.

<나쁜 예>
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "8000:80"
    depends_on:
      - app
    volumes:
      - ./web/nginx/default.conf:/etc/nginx/conf.d/default.conf

  app:
    image: php:7-fpm-alpine
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db

  ...

<잘하는 예>
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "8000:80"
    depends_on:
      - app
    volumes:
      - ./web/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./app:/var/www/html # ←追加

  app:
    image: php:7-fpm-alpine
    volumes:
      - ./app:/var/www/html
    depends_on:
      - db

  ...

어느 사이트에서 해설되고 있던 것을 참고로 최초의 설정으로 했는데, 확실히 빠졌다.
※그 밖에도 다른 해결 방법이 있겠지.

이제 안전한 리소스를 얻을 수 있으며 스타일이 맞습니다.



끝.

좋은 웹페이지 즐겨찾기