크세노폰의 IT 누리사랑방
확장자가 HTML로 끝나도 PHP가 실행되게 하기(NGINX + PHP) 본문
어제 퇴근하기 1시간 전, 평생교육원으로부터 프로젝트를 부탁받았습니다. 홈페이지 전반을 개선해달라는 요청이었는데 아무래도 전체적인 메인을 모두 고쳐야 하는 프로젝트라서 시간이 좀 걸릴 것 같습니다.
여하튼 페이지 전체 파일을 제 개발서버에 올려두고 개발하려는 찰나에 문제가 생겼습니다. 확장자가 php로 끝나지 않고, html 로 끝나서 페이지가 읽히지 않는 문제였는데요.
오늘은 htm이나 html로 끝나는 확장자에서도 php파일이 마술같이 척척 잘 읽히는 방법을 소개합니다.
- NGINX에서 html이 읽히도록 처리해줍니다.
제가 사용하는 우분투를 기준으로 설명합니다./etc/nginx/sites-enabled/mydomain.host
파일에서 PHP를 읽는 코드에 추가해줍니다.
server {
server_name domain.tpl *.domain.tld;
root /home/sites/domain.tld/home/html;
location ~ .(php|htm|html|js)$ {
fastcgi_pass unix:/var/run/php-fpm.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
처음 default 설정에는 location ~ . php$ 로 시작하는 문구가 있을텐데 그것을 php|htm|html로 바꾸어주면 됩니다.
참, js 파일도 포함시켜주도록 합시다.
2. php의 www.conf 파일을 수정합니다.
nano /etc/php5/fpm/pool.d/www.conf
; Limits the extensions of the main script FPM will allow to parse. This can
; prevent configuration mistakes on the web server side. You should only limit
; FPM to .php extensions to prevent malicious users to use other extensions to
; exectute php code.
; Note: set an empty value to allow all extensions.
; Default Value: .php
;security.limit_extensions = .php .php3 .php4 .php5
항목을 찾습니다. 키워드를 php3으로 해서 찾으면 쉽게 찾을 수 있을겁니다.
;security.limit_extensions = .php .php3 .php4 .php5
항목에서 .htm 과 .html 을 추가해줍니다.
그렇게 한다면 이렇게 되겠지요.security.limit_extensions = .htm .html .js .php3 .php4 php5
앞 단의 “;(세미콜론)”을 제거해주셔야 적용됩니다.
';' 세미콜론을 제거하는 것을 잊지마세요!
3. 서비스를 재시작해줍니다.
service nginx restart
service php5-fpm restart
'기술과 지침서 > Web' 카테고리의 다른 글
meta http-equiv="refresh" 태그로 간단하게 페이지 넘겨주기 (0) | 2015.02.10 |
---|---|
쉽고 간단한 URL 단축기, c11.kr (0) | 2015.02.06 |
php 개발할 때 서버가 <?를 읽게 하기 (0) | 2015.01.30 |
워드프레스 서버에서 부모 디렉토리에 쓰기가 가능합니까? 오류 해결방법 (0) | 2014.11.02 |
통신사 별 IP 일람표 (0) | 2014.04.26 |