BOARD

문제 해결

HTML 확장자 파일에서 PHP 및 phpinfo() 실행 설정과 문제 해결 가이드

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 8회 작성일 26-10-12 17:36

본문

HTML 확장자 파일에서 PHP 및 phpinfo() 실행 설정과 문제 해결 가이드

Linux 및 Apache 환경에서 HTML 확장자 파일 내의 PHP 코드가 실행되지 않고 phpinfo()가 작동하지 않을 때, php.ini 및 httpd.conf 설정을 변경하여 문제를 해결하는 방법을 알아봅니다.

HTML 확장자 파일에서 PHP 실행 및 phpinfo 미동작 원인

HTML 확장자 파일에서 PHP 코드가 실행되지 않고 phpinfo() 함수가 동작하지 않는 것은 PHP 설치 자체의 문제가 아니라, 웹서버(Apache)와 PHP 설정 환경의 문제입니다. 아파치 웹서버는 기본적으로 .php 확장자만 PHP로 인식하여 처리하도록 구성되어 있기 때문입니다.

주요 원인

  1. 웹서버 MIME 타입 설정 누락: 아파치 설정 파일(httpd.conf)에 .html 확장자를 PHP MIME 타입으로 처리하도록 하는 AddType 설정이 누락되어 있습니다. 이 설정이 없으면 서버는 .html 파일을 PHP 코드가 포함된 스크립트가 아닌 일반 정적 HTML 문서로 간주합니다.
  2. PHP 단축 태그 설정 비활성화: php.ini 파일에서 short_open_tag가 Off로 설정되어 있으면, <?와 같은 단축 태그를 사용하는 PHP 코드가 올바르게 인식되지 않을 수 있습니다.

해결을 위한 확인 및 조치 사항

  • httpd.conf 설정: 아파치 설정 파일에 AddType application/x-httpd-php.html 구문을 추가하여 서버가 .html 파일을 PHP로 해석하도록 지정해야 합니다.
  • php.ini 설정: short_open_tag를 On으로 변경하여 단축 태그 사용을 허용합니다.
  • 서비스 재시작: 설정 변경 후에는 아파치 웹서버를 재시작해야 변경 사항이 적용됩니다. 운영 중인 환경에 따라 systemctl restart httpd 또는 systemctl restart apache2 등의 명령어를 사용합니다.

php.ini 파일에서 shortopentag 설정 변경 방법

PHP 코드에서 단축 태그(<?...?>)를 사용하거나 관련 설정을 활성화하려면 php.ini 파일을 수정해야 합니다. 설정 변경 절차는 다음과 같습니다.

1. php.ini 파일 수정

서버의 php.ini 파일을 텍스트 편집기(vi 등)로 엽니다. (파일 경로는 서버 환경에 따라 다를 수 있습니다.)

vi /etc/php.ini

파일 내부에서 short_open_tag 항목을 찾아 값을 On으로 변경합니다.

short_open_tag = On

2. 서버 재시작

php.ini 파일의 변경 사항을 적용하려면 반드시 웹 서버(Apache)를 재시작해야 합니다.

systemctl restart httpd

참고 사항

  • 설정 확인: 설정이 올바르게 적용되었는지 확인하려면 phpinfo() 함수를 호출하는 PHP 파일을 생성하여 브라우저에서 short_open_tag 항목이 On으로 되어 있는지 확인하십시오.
  • 주의: short_open_tag가 Off인 상태에서는 <?로 시작하는 코드가 정상적으로 동작하지 않거나 오류가 발생할 수 있습니다.

httpd.conf 파일 AddType 설정 방법

아파치 웹서버 설정 파일인 httpd.conf에서 .html 확장자 파일이 PHP 코드를 실행하도록 지정하려면 MIME 타입 매핑 설정을 추가해야 합니다.

1. 설정 파일 위치 확인 및 편집

서버 환경에 따라 다르나 일반적으로 /etc/httpd/conf/httpd.conf 경로에 위치한 설정 파일을 편집기로 엽니다.

2. AddType 설정 추가

파일 내에서 기존 AddType 관련 설정이 모여 있는 구역을 찾습니다. 예를 들어 아래와 같은 기존 설정 항목들을 확인할 수 있습니다.

AddType application/x-compress.Z
AddType application/x-gzip.gz.tgz

해당 위치 아래에 .html 및 .htm 확장자가 PHP로 처리되도록 아래와 같이 AddType application/x-httpd-php 줄을 수정하거나 내용을 추가합니다.

AddType application/x-compress.Z
AddType application/x-gzip.gz.tgz
AddType application/x-httpd-php.php4.php.phtml.ph.inc.html.htm

만약 전체 서버 설정이 아닌 특정 디렉토리나 가상 호스트에만 제한적으로 적용하려면 <Directory> 블록 내부에 설정할 수도 있습니다.

<Directory "/var/www/html/dynamic">
 AddType application/x-httpd-php.html
</Directory>

3. 다음 단계

설정을 저장한 후에는 아파치 웹서버를 재시작해야 변경된 설정이 적용됩니다.

아파치 웹서버 재시작 명령어

설정 변경 후 아파치 웹서버를 재시작하여 변경된 설정을 서버에 즉시 반영하고 정상 작동을 유도하려면 다음 명령어를 실행합니다.

[root@localhost ~]# systemctl restart httpd

상황별 판단 및 행동 지침

내 상황선택 기준다음 행동
HTML 파일에서 PHP 코드가 실행되지 않고 소스 그대로 노출됨아파치 설정 파일(httpd.conf) 내 MIME 타입 매핑 누락httpd.conf에 AddType application/x-httpd-php.html 추가 후 아파치 재시작
<? 단축 태그를 사용하는 PHP 코드가 동작하지 않음php.ini 설정 파일 내 shortopentag 설정 확인php.ini에서 shortopentag = On으로 수정 후 아파치 재시작

실전 FAQ

Q. httpd.conf 수정 후 설정을 적용하려면 어떤 명령어를 실행해야 하나요?

  • 아파치 웹서버 설정을 변경한 뒤에는 반드시 서비스를 재시작해야 반영됩니다. 리눅스 환경에서는 systemctl restart httpd 명령어를 실행합니다.

Q. 설정 파일을 모두 수정했는데도 브라우저에서 HTML 내 PHP 코드가 여전히 실행되지 않습니다.

  • httpd.conf 외에 시스템 환경에 따라 개별 가상 호스트 설정이나 mime.conf 등 추가 설정 파일에서 확장자 매핑이 덮어씌워졌을 수 있습니다. 또한 브라우저 캐시로 인해 이전 결과가 보일 수 있으므로 시크릿 모드나 강제 새로고침으로 다시 확인하십시오.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.