AddType application/x-httpd-php-source .phps

Submitted by westporch on 2009.08.29.(Sat) - 14:29

아파치 설정옵션이 AddType application/xhttpd-php-source mime type로 설정되었다면
http://localhost/test.phps를 실행하면 php소스를 출력하잖아요.
이럴땐 아파치 설정을 AddType application/x-httpd-php-source .phps로 하면된다는데요. http://semtle.tistory.com/132
위 블로그의 내용을 보면, AddType application/x-httpd-php-source .phps 설정이 '나열된 확장자를 php소스로 보이라는 것' 이라고 하는데 아리송합니다.
'나열된 확장자를 php소스로 보이라는 것'이라면 AddType application/x-httpd-php-source .phps로 설정하면 *.phps을 실행하면 파일의 소스가 보여야 하지않나요? 어째서 이게 정상적인 설정이라고 할 수 있는지 이해가 안됩니다.

[질문1]
AddType application/x-httpd-php-source .phps의 역할은 확장자가 phps인 파일의 실행을 거부하는거 아닌가요?

[질문2]
*.phps의 파일을 실행하면 왜 php소스가 그대로 출력되는지 모르겠어요.
php 소스가 그대로 출력되면 서버의 설정에 문제가 있겠지만, php확장자에 s를 붙여서 *.phps 파일을 실행하면 왜 소스를 그대로 출력하도록 인식하는지 궁금합니다.

eunchul

작성: 2009.08.30.(Sun) - 01:12

수정: 2017.05.02.(Tue) - 17:27

[질문1]

AddType application/x-httpd-php-source .phps의 역할은 확장자가 phps인 파일의 실행을 거부하는게 아닌가요?

아파치에서 .phps 에대한 처리를 application/x-httpd-php-source 로 하겠다는 설정입니다.
결과를 보시면 마치 vim 에서 syntax 설정을 enable 한것처럼 예쁜(?) 코드가 출력이 되는데요,
php 스크립트의 내용을 어떤 로직을 통해서 html 로 결과를 만들어 주는것이기 때문에 phps 파일의 실행을 거부한다는 것은 아닌것 같습니다.

 

[질문2]
*.phps의 파일을 실행하면 왜 php소스가 그대로 출력되는지 모르겠어요.
php 소스가 그대로 출력되면 서버의 설정에 문제가 있겠지만, php확장자에 s를 붙여서 *.phps 파일을 실행하면 왜 소스를 그대로 출력하도록 인식하는지 궁금합니다.

어떤 로직으로 동작하는지는 소스를 뒤져봐야 할것 같네요. :p
사용 용도는 말 그대로 코드를 보여주는 용도로 사용되는것 같습니다.
생각보다 phps 에 대한 내용들은 적은것을 봐서, 실제 phps 를 사용하는 경우가 적다고 생각할수도 있을것 같네요..

답변 감사해요.

아파치에서 .phps 에대한 처리를 application/x-httpd-php-source 로 하겠다는 설정입니다. 

위와 같이 말씀하셨잖아요. 위 옵션은 .phps파일을 .php 파일 처럼 다룬다는 것인가요? :)

eunchul

작성: 2009.08.31.(Mon) - 10:40

수정: 2017.05.02.(Tue) - 17:34

In reply to by westporch

그렇게 생각하시면 될것 같습니다. :)
<?php 
  require_once $_SERVER['DOCUMENT_ROOT'] . '/../libs/common.php'; 
  $smarty->template_dir = SERVER_ROOT . '/templates'; 
  $smarty->assign('msg', 'Welcome to the Smarty world'); 
  $smarty->display('smarty.tpl'); 
?>
 
alert('hi')
라는 코드를 test.phps 로 작성하고, 웹브라우져에서 호출을 하게되면
<?php
  require_once $_SERVER['DOCUMENT_ROOT'] . '/../libs/common.php'; 
  $smarty->template_dir = SERVER_ROOT . '/templates'; 
  $smarty->assign('msg', 'Welcome to the Smarty world'); 
  $smarty->display('smarty.tpl'); 
?>

<script type="text/javascript">    
alert('hi');
</script>

이라는 코드가 생성이 됩니다. :o
대충 php 코드는 컬러를 좀 입혀주고(문법강조), '<' 는 '<' 로, '>' 는 '>' 로, 그리고 등등.. 이런 일을 하는것 같습니다.