워드프레스 복구

설치하여 사용하던 워드프레스가 해킹을 당해서 wordpress.com으로 이주를 했다가 다시 자체 호스팅으로 자리를 옮겼다. 매일 백업이 되고 있어서 수월하게 진행한 것 같다.

여기를 보면 내가 겪은 증상이 동일하게 설명이 되어있다. 워드프레스 디렉토리 안에 다수의 .bt 파일이 생성되어있었고, 구글 서치콘솔에서 확인해보면 이상한 링크들이 삽입되어 나오는 것을 확인할 수 있었다.

grep -nr get_data_ya *

위 커맨드로 찾아보니 wp-config.php 파일에 들어있었다. config 파일이 이상하게 변경되어 있었던 것을 모르고 wordpress 새로 설치, wp-config.php 복사하여 실행해왔으니… 계속 이상할 수 밖에.

wordpress.com에 상주하는 것도 나쁘진 않으나, 플러그인 설치 불가, 테마 설치 불가라 wordpress의 장점을 살릴 수 없어서 다시 호스팅하기로 결정…

WordPress 고유주소 404 에러 해결 방법

워드프레스의 주소를 글 이름으로 하는 것은 여러모로 이득이 있다. URL만 보고 어떤 글인지 바로 유추할 수 있고 검색 키워드가 URL에 들어가기 때문에 검색엔진에 노출되는 것도 이득이 있다.

그런데 이렇게 설정을 한 후 404 에러가 나면서 기존의 글에 엑세스 하지 못하는 문제가 생겼다. 여기저기 검색을 해 보면서 해결 방법을 찾아서 한 번 적어본다.

고유주소 설정 방법은 간단하다. 워드프레스 관리 페이지에 들어간 후 설정 > 고유주소를 누르면 설정할 수 있다. 기본적으로 글 번호가 사용되게 되는데, 이것을 글 이름을 사용하도록 변경해주면 된다.

WordPress 고유주소 설정

저장을 하면 .htaccess에 설정 내용을 붙여넣으라 안내를 해 준다. 서버의 루트에 보면 .htaccess 파일을 찾을 수 있을 것이다. 아래와 같은 형식으로 되어있다. 참고로 other의 쓰기 권한이 있으면 자동으로 편집해준다.

pi@raspberrypi:/var/www/html $ cat .htaccess 

# BEGIN WordPress
# The directives (lines) between `BEGIN WordPress` and `END WordPress` are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# END WordPress

다음으로 apache 설정을 확인해줘야 한다. /etc/apache2/sites-enabled/000-default.conf 파일에서 AllowOverride를 All로 바꿔준다.

	
		AllowOverride All
	

그리고 mod_rewrite를 활성화해줘야 한다. /etc/apache2/mods-enabled/ 밑에 rewite.load가 안보인다면 link를 걸어준다.

pi@raspberrypi:/etc/apache2/mods-enabled $ sudo ln -s ../mods-available/rewrite.load rewrite.load

pi@raspberrypi:/etc/apache2/mods-enabled $ ls -l
...
lrwxrwxrwx 1 root root 30  3월 18 14:18 rewrite.load -> ../mods-available/rewrite.load
...

이제 apache2를 재시작해보면 글 이름 도메인이 잘 동작할 것이다.

pi@raspberrypi:/etc/apache2/mods-enabled $ sudo service apache2 restart