Skip to content

Commit 8fc5d22

Browse files
구글 애드센스 스크립트 로드 조건 추가 최적화
- default.html에서 구글 애드센스 스크립트 로드 조건을 추가로 최적화하여 생산 환경에서만 로드되도록 설정 - 사이트 성능 및 광고 노출 최적화를 위한 추가 개선 사항 반영
1 parent b69a540 commit 8fc5d22

File tree

1 file changed

+234
-0
lines changed

1 file changed

+234
-0
lines changed
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
---
2+
layout: post
3+
title: "아파치에서 HTML 파일에서 PHP 코드 인식하도록 설정하기"
4+
date: 2023-03-18 14:00:00 +0900
5+
categories: [Apache, PHP, Web Server]
6+
tags: [Apache, PHP, HTML, 웹서버, 설정, mime.conf]
7+
author: Kevin Park
8+
excerpt: "아파치 웹서버에서 .html 확장자 파일에서도 PHP 코드를 실행할 수 있도록 설정하는 방법을 단계별로 알아봅니다."
9+
---
10+
11+
일반적으로 아파치 웹서버에서는 `.php` 확장자를 가진 파일에서만 PHP 코드가 실행됩니다. 하지만 때로는 `.html` 파일에서도 PHP 코드를 실행해야 하는 경우가 있습니다. 오늘은 아파치 설정을 통해 HTML 파일에서 PHP 코드를 인식하도록 하는 방법을 알아보겠습니다.
12+
13+
## 🎯 언제 이 설정이 필요한가요?
14+
15+
- 기존 HTML 파일에 PHP 기능을 추가해야 할 때
16+
- URL에서 `.php` 확장자를 숨기고 싶을 때
17+
- 레거시 시스템에서 HTML 파일에 동적 기능이 필요할 때
18+
- SEO 목적으로 URL 구조를 유지해야 할 때
19+
20+
## 📁 설정 파일 위치
21+
22+
아파치의 MIME 타입 설정은 다음 파일에서 관리됩니다:
23+
24+
```
25+
/etc/apache2/mods-enabled/mime.conf
26+
```
27+
28+
## 🔧 현재 설정 확인
29+
30+
먼저 현재 설정 파일의 내용을 확인해보겠습니다:
31+
32+
```bash
33+
sudo nano /etc/apache2/mods-enabled/mime.conf
34+
```
35+
36+
**기본 설정 내용:**
37+
38+
```apache
39+
#AddHandler cgi-script .cgi
40+
41+
#
42+
# For files that include their own HTTP headers:
43+
#
44+
#AddHandler send-as-is asis
45+
46+
#
47+
# For server-parsed imagemap files:
48+
#
49+
#AddHandler imap-file map
50+
51+
#
52+
# For type maps (negotiated resources):
53+
# (This is enabled by default to allow the Apache "It Worked" page
54+
# to be distributed in multiple languages.)
55+
#
56+
AddHandler type-map var
57+
58+
#
59+
# Filters allow you to process content before it is sent to the client.
60+
#
61+
# To parse .shtml files for server-side includes (SSI):
62+
# (You will also need to add "Includes" to the "Options" directive.)
63+
#
64+
AddType text/html .shtml
65+
<IfModule mod_include.c>
66+
AddOutputFilter INCLUDES .shtml
67+
</IfModule>
68+
69+
</IfModule>
70+
```
71+
72+
## ✏️ 설정 수정하기
73+
74+
HTML 파일에서 PHP 코드를 인식하도록 하려면 다음 라인을 추가해야 합니다:
75+
76+
### 📝 추가할 코드
77+
78+
```apache
79+
AddType application/x-httpd-php .html
80+
```
81+
82+
### 📋 수정된 전체 설정
83+
84+
```apache
85+
#AddHandler cgi-script .cgi
86+
87+
#
88+
# For files that include their own HTTP headers:
89+
#
90+
#AddHandler send-as-is asis
91+
92+
#
93+
# For server-parsed imagemap files:
94+
#
95+
#AddHandler imap-file map
96+
97+
#
98+
# For type maps (negotiated resources):
99+
# (This is enabled by default to allow the Apache "It Worked" page
100+
# to be distributed in multiple languages.)
101+
#
102+
AddHandler type-map var
103+
104+
#
105+
# Filters allow you to process content before it is sent to the client.
106+
#
107+
# To parse .shtml files for server-side includes (SSI):
108+
# (You will also need to add "Includes" to the "Options" directive.)
109+
#
110+
AddType text/html .shtml
111+
AddType application/x-httpd-php .html
112+
<IfModule mod_include.c>
113+
AddOutputFilter INCLUDES .shtml
114+
</IfModule>
115+
116+
</IfModule>
117+
```
118+
119+
## 🔄 서버 재시작
120+
121+
설정 변경 후 아파치 서버를 다시 로딩해야 합니다:
122+
123+
```bash
124+
sudo service apache2 reload
125+
```
126+
127+
또는
128+
129+
```bash
130+
sudo systemctl reload apache2
131+
```
132+
133+
## 🧪 설정 테스트
134+
135+
설정이 제대로 적용되었는지 테스트해보겠습니다:
136+
137+
### 1. 테스트 파일 생성
138+
139+
```bash
140+
sudo nano /var/www/html/test.html
141+
```
142+
143+
### 2. 테스트 코드 작성
144+
145+
```html
146+
<!DOCTYPE html>
147+
<html>
148+
<head>
149+
<title>PHP in HTML Test</title>
150+
</head>
151+
<body>
152+
<h1>PHP 코드 테스트</h1>
153+
<p>현재 시간: <?php echo date('Y-m-d H:i:s'); ?></p>
154+
<p>서버 정보: <?php echo $_SERVER['SERVER_SOFTWARE']; ?></p>
155+
</body>
156+
</html>
157+
```
158+
159+
### 3. 브라우저에서 확인
160+
161+
브라우저에서 `http://your-domain/test.html`에 접속하여 PHP 코드가 실행되는지 확인합니다.
162+
163+
## ⚠️ 주의사항
164+
165+
### 1. 보안 고려사항
166+
167+
- HTML 파일에서 PHP 실행은 보안 위험을 증가시킬 수 있습니다
168+
- 사용자가 업로드하는 HTML 파일에 대한 검증이 필요합니다
169+
- 적절한 파일 권한 설정이 중요합니다
170+
171+
### 2. 성능 영향
172+
173+
- 모든 HTML 파일이 PHP 파서를 거치게 되어 성능에 영향을 줄 수 있습니다
174+
- 정적 HTML 파일도 동적으로 처리되어 캐싱 효율성이 떨어질 수 있습니다
175+
176+
### 3. 대안 방법
177+
178+
특정 디렉토리나 가상 호스트에만 적용하고 싶다면:
179+
180+
```apache
181+
<Directory "/var/www/html/dynamic">
182+
AddType application/x-httpd-php .html
183+
</Directory>
184+
```
185+
186+
## 🔍 문제 해결
187+
188+
### PHP 코드가 실행되지 않는 경우
189+
190+
1. **PHP 모듈 확인:**
191+
```bash
192+
sudo a2enmod php8.1 # PHP 버전에 맞게 조정
193+
```
194+
195+
2. **설정 문법 검사:**
196+
```bash
197+
sudo apache2ctl configtest
198+
```
199+
200+
3. **에러 로그 확인:**
201+
```bash
202+
sudo tail -f /var/log/apache2/error.log
203+
```
204+
205+
## 🎯 추가 활용 방법
206+
207+
### 1. 여러 확장자 지원
208+
209+
```apache
210+
AddType application/x-httpd-php .html .htm .shtml
211+
```
212+
213+
### 2. 조건부 적용
214+
215+
```apache
216+
<FilesMatch "\.html$">
217+
SetHandler application/x-httpd-php
218+
</FilesMatch>
219+
```
220+
221+
## 📚 마무리
222+
223+
HTML 파일에서 PHP 코드를 실행하도록 설정하는 것은 간단하지만, 보안과 성능에 미치는 영향을 충분히 고려해야 합니다.
224+
225+
특히 프로덕션 환경에서는:
226+
- 꼭 필요한 디렉토리에만 적용
227+
- 적절한 보안 조치 구현
228+
- 정기적인 보안 점검 수행
229+
230+
이런 사항들을 염두에 두고 설정하시기 바랍니다.
231+
232+
---
233+
234+
💡 ****: 개발 환경에서 먼저 충분히 테스트한 후 프로덕션에 적용하는 것을 권장합니다!

0 commit comments

Comments
 (0)