일부 호스팅에서 Apache 기능이 작동하지 않을때


이번에 미리내에서 서비스하는 블로그 호스팅을 사용할 기회가 생겨, 여느때와 다름없이 워드프레스를 설치하고 이런 저런 설정을 해 보았으나, Permalinks(고유주소) 설정 부분에서 제시된 주소들이 좀 이상하게 표시되는 것이다.

즉, 요즘 워드프레스 버전에서는 찾아 볼 수 없는 '/index.php' 부분이 추가되어 보이더라는...

혹시나 mod_rewrite 모듈을 지원하지 않나 해서 phpinfo() 함수를 이용해 정보를 살펴보았지만, 해당 모듈이 버젓이 지원되고 있었다.

미심쩍은 내용이 혹시 없나 하여 살펴보니 'Apache Version' 이 'Microsoft-IIS/5.0' 으로 표시되고 있더라는... 혹시나 하여 apache_get_version() 함수를 사용해 보았으나, 결과는 마찬가지였다.

이 경우 워드프레스에서 $is_IIS, $is_apache 변수를 확인하여 작동하는 함수 혹은 페이지에서 지원하는 Apache를 내버려두고 지원하지 않는 IIS 를 지원하는 형태가 되어버려 여러가지 문제가 발생할 가능성이 있을 것이다.

현재 확인한 내용으로는 Permalinks(고유주소) 설정이 되지 않는것과, redirect_canonical(), wp_redirect() 함수가 제대로 작동하지 않는것이 있었다.

실수인지 의도적인 것인지를 알아보려 미리내측에 문의해 본 결과 그 답변은 아래와 같았다.

악의적으로 접근하는 사람들에게 혼란을 주기위해 일부러 표기해논 부분입니다.

오류발생시에도 Microsoft-IIS/5.0 로 확인되게 설정되어 있습니다.

뭐... 나쁜짓 하는놈들 막으려고 취한 조치라는데, 어쩔 수 없다 싶으면서도, 이것 때문에 헤맨 시간과 노력을 생각하면 기분이 언짢기도 하다.

어쨓든, 이를 워드프레스에서 해결하기 위한 플러그인을 만들어 보았으니, 같은 문제로 고민중에 있는 분들께서는 사용해 보시고 문제가 해결되는지 확인해 주셨으면 합니다. :-)

fix-server-software-info.zip

글을 등록하고나서야 워드프레스 관리자 화면에서 플러그인 설정의 저장 등이 제대로 동작하지 않는것을 알게 되었다. 따라서 해당 플러그인을 삭제...

원인은 wp-settings.php 파일에서 플러그인들을 불러오기 전 과정에서 'REQUEST_URI', 'PATH_INFO' 등의 값을 IIS 용으로 덮어씌우는 내용이 있기 때문이었다.

하여, 결국에는 wp-config.php 파일을 직접 수정하는 방법밖에는 없게 되었다.

wp-config.php 파일을 열어 define ('WPLANG', 'ko_KR'); 부분의 아래에 아래와 같이 내용을 추가하면 된다.

주의! 해당 서버가 확실하게 'Apache'로 운영되고 있어야 함

define ('WPLANG', 'ko_KR');

$_SERVER['SERVER_SOFTWARE'] = 'Apache';

사용중인 서버가 'Apache'로 운영되고 있슴을 확인하려면, 아래 phpinfo.zip 파일을 내려받아 압축을 풀면 나오는 phpinfo.php 파일을 FTP 프로그램 등을 이용하여 웹 루트에 올린 뒤, http://자신의도메인/phpinfo.php 으로 접속하여 그 내용을 살펴보아 'Apache' 와 관련된 내용이 있는지 확인하면 된다.

download phpinfo.zip(0.1 KB)

18 responses to “일부 호스팅에서 Apache 기능이 작동하지 않을때”

  1. 대박이네요. 전 테마가 잘못 만들어진 건가 했었는데.
    블로그보고나서 확인해보니 제가 쓰는 호스팅도 IIS라고 나오는데 실은 Apache…^^
    좋은 정보 감사합니다^^

  2. 저도 index.php가 없어졌고, /%postname% 적용했을때 오류나던것도 잘 작동되었습니다.:boogie:고생하신 덕분에 도움이 많이되었습니다. 감사합니다

  3. 한국 워드프레스 포럼에서 질문을 올렸던 사람입니다.

    정말 URL 중간에 index.php도 없어지고

    모든 것이 정상적으로 돌아갑니다.

    진심으로 감사합니다.