라즈베리파이로 서버를 차근차근 옮기고 있던중 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파일을 삭제 -> 설정에서 고유주소를 재설정 해보자.