[서버] 워드프레스 permalink 오류시 Apache2 .htaccess 설정방법

라즈베리파이로 서버를 차근차근 옮기고 있던중 permalink가 깨지는 문제가 발생했다.

사이트 permalink가 동작하지 않는다.

메인페이지와 설정페이지는 정상적으로 작동하였다.

구글 검색을 해보니 보통 .htaccess 파일을 수정하라는 글들이 많았다.
워드프레스 설정에서 고유주소를 설정하거나, wp-cache같은 플러그인들을 사용하면
이 .htaccess파일을 이용해서 url을 정규식으로 처리해서 permalink로 변환하고, 데이터들의 캐시 기간을 정하는걸로 보인다.

그런데 아무리 .htaccess 파일을 수정해도 사이트 링크가 고쳐지지 않길래 아파치 서버에 설정에 대한 추가적인 내용들을 알아보았다.

/etc/apache2/apache2.conf
위 파일은 아파치 메인 아파치서버의 설정을 저장하고 있는 파일이다.

파일을 아래로 내리다보면 아래처럼 작성된 부분을 볼 수 있다.

<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory><Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /ssd/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /ssd/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

지난번에 라즈베리파이에 SSD를 마운트 하고나서 디렉토리를 ssd 로 수정해 주었는데, 저기 보면 /ssd/www/ 디렉토리가 보인다.
어쨋든 지금 보면 AllowOverride None 이라고 되어있다.

AllowOverride 는 .htaccess의 파일 허용권한을 설정하는 지시자 이다.
None 이라고 되어있으니 허용하지 않는 것이다.

결국 아무리 /ssd/www 안에 있는 .htaccess를 수정해봤자.
Override가 안되게 되어있으니, 의미가 없는 것이었다.

결국 워드프레스가 설치된 폴더의 .htaccess파일을 활성화 시켜야 한다.

여러가지 방법이 있는 것 같다.
가장 쉬운 방법은 위에서 언급한 /etc/apache2/apache2.conf 에서
워드프레스가 위치한 디렉토리의 AllowOverride 를 None 에서 All로 변경하는 방법이다.
별로 추천하지 않는다. 관리측면에서 따로 site-enabled 폴더 아래 설정을 빼서 추가하는 것이 더 낫다고 본다.

그리고 특히 All을 사용할 경우 모든 권한을 허용하기 때문에, 사용하지 않아야 한다.
한정적인 범위의 옵션들이 많이 있는데, 아래 블로그를 참고하면 될 것 같다.
★아파치 Directory 보안 : 네이버 블로그 (naver.com)

나는 GCP기존 워드프레스 구성을 따르기로 했다.
/etc/apache2/sites-enabled 폴더와 sites-available에 wordpress.conf 파일을 새로 만들었다.
실제 작동하는건 sites-enabled 에만 넣어도 동작한다.

/etc/apache2/sites-available

서버에서 운영할 사이트의 설정파일이다.

/etc/apache2/sites-enabled

위의 /etc/apache2/sites-available에서 설정한 파일을 심볼릭 링크로 추가하여 실제 운영에 사용할 설정파일들이다.

출처: https://webdir.tistory.com/196 [WEBDIR]


파일 내용은 아래와 같다.
혹시나 따라 하려는 사람은 Directory /ssd/www/html 이부분을 자신의 워드프레스가 위치한 경로로 수정해주어야 한다.

<Directory /ssd/www/html>
Options -Indexes
AllowOverride FileInfo
</Directory>

그리고 항상 서버 설정을 변경하면, apche 서비스를 다시 시작해주어야 한다.

system service apache2 restart

서비스를 재시작하니 정상적으로 동작한다.

.htaccess 파일 자체에 오류가 있을 수도 있으니, 이 방법을 사용해도 링크가 깨진다면
워드프레스 폴더안에있는 .htaccess파일을 삭제 -> 설정에서 고유주소를 재설정 해보자.