wordpress 403 forbidden error

오젼·2022년 10월 25일
0

ha.....

문제

wordpress 페이지에 접속할 때 403 forbidden error가 남

과정

  1. 처음엔 macbook으로 연결한 게 문제였나 싶었다. 그래서 vm의 우분투를 gui 환경으로 바꾸고 파이어폭스로 직접 접근해봤는데 그래도 안 됨
  1. wordpress 403 forbidden, nginx 403 forbidden 이런식으로 검색했는데 적용할만한 방법 안 나옴. 파일 소유 권한 문제일 수 있다고 했지만 난 이미 chown으로 소유자도 설정해줬었고, 디렉토리, 파일 권한도 755, 644로 문제 없었음
  1. error log에 직접 접근해서 확인. 그랬더니 directory index of "/var/www/html/wordpress/wp-admin/" is forbidden 이라는 에러 메세지를 발견할 수 있었음. 그래서 directory index of is forbidden이라는 키워드로 구글에 검색을 했고, 스택오버플로 질문 발견 ㅠㅠ

해결

https://stackoverflow.com/questions/19285355/nginx-403-error-directory-index-of-folder-is-forbidden

location / 블럭의 try_files에서 $uri/를 빼야 했음
근데 왜인지는 봐도 잘 이해가 안 된다.. 뭐 indexing을 하게 되는데 default directory는 indexing이 disabled 돼있다는데.... 이게 뭔 말이지 암튼 해결됨 ㅠ

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

--> 아 이유 정확히 알아냄;; server_block에 index를 제대로 설정 안 해줘서 index 파일이 없으니까 디렉토리 자체로 접근을 하게 된 거고, 디렉토리 접근은 안 되니까 403 forbidden이 된 거였다......

wordpress의 index인 index.php를 추가해줘야 하는 거였음ㅠ

server {
	listen 443 ssl;
	listen [::]:443 ssl;

	ssl_certificate /etc/ssl/certs/nginx.crt;
	ssl_certificate_key /etc/ssl/private/nginx.key;
	ssl_protocols TLSv1.3;

	root /var/www/html/wordpress;
	# before: index index.html index.htm;
    index index.php index.html index.htm;
    ....
    
}

배운 점

  • error가 발생했을 땐 error log를 살펴보기. error log를 접근할 수 있는 방법을 항상 마련해놓기
  • docker compose로 컨테이너를 돌리면 구동중인 컨테이너에 docker compose exec [container_name] [cmd]로 커맨드를 실행시키게 할 수 있다(docker run으로 한 건 docker exec로 가능). 이걸 응용해서 docker compose exec [container_name] bash 로 접근하면 컨테이너 상에서 패키지를 추가하거나 파일을 수정하는 등 자유롭게 테스트 할 수 있음

0개의 댓글