SSI에는 Apache와 함께 데비안에서 작동하지 않는 것이 포함됩니다.


12

Apache를 실행하는 Debian에서 SSI를 작동 시키려고하지만 .shtml파일이 구문 분석되지 않습니다. PHP 파일 phpinfo()에서로드 된 모듈 섹션에 다음이 표시되는 것을 볼 수 있습니다.

mod_mime_xattr mod_mime mod_mime_magic

에서 /etc/apache2/mods-enabled/mime.conf나는 (무엇보다도)이 있습니다

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

에서 /etc/apache2/sites-enabled/domain.com.conf(문제의 가상 호스트에 대한) 내가 가진 :

<Directory /home/username/public_html>
Options +Includes
allow from all
AllowOverride All 
</Directory>

그리고 좋은 측정을 위해 다음을 추가했습니다.

<Directory />
Options +Includes
</directory>

사용자 .htaccess파일에서 다음을 추가하려고했습니다.

Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml

아무것도 작동하지 않는 것 같습니다. 이것을 어떻게 디버깅 할 수 있습니까?

편집하다:

ls /etc/apache2/mods-enabled/이것이 도움이되는 경우 의 결과는 다음과 같습니다.

actions.conf          dav_svn.load         proxy_balancer.load
actions.load          deflate.conf         proxy.conf
alias.conf            deflate.load         proxy_connect.load
alias.load            dir.conf             proxy_http.load
auth_basic.load       dir.load             proxy.load
auth_digest.load      env.load             python.load
authn_file.load       fcgid.conf           reqtimeout.conf
authz_default.load    fcgid.load           reqtimeout.load
authz_groupfile.load  mime.conf            rewrite.load
authz_host.load       mime.load            ruby.load
authz_user.load       mime_magic.conf      setenvif.conf
autoindex.conf        mime_magic.load      setenvif.load
autoindex.load        mime-xattr.load      ssl.conf
cgi.load              negotiation.conf     ssl.load
dav_fs.conf           negotiation.load     status.conf
dav_fs.load           php5.conf            status.load
dav.load              php5.load            suexec.load
dav_svn.conf          proxy_balancer.conf

.shtml페이지 를 방문 하면 Apache 오류 로그에 어떤 것이 있습니까?
Zoredache

사실 맞아요. error.log에서[error] an unknown filter was not added: includes
Mike

라인을 주석 처리 AddOutputFilter INCLUDES .shtml하면 오류가 제거되지만 여전히 문제가 해결되지 않습니다.
Mike

알았어. 알아 냈어. 다른 사람들이 같은 문제를 겪을 경우에 대비하여 답변을 게시하겠습니다.
Mike

답변:


12

서버 측 포함을 작동 시키려면 include모듈도로드해야합니다. 루트로 다음을 실행하여이를 수행 할 수 있습니다.

a2enmod include

또는 다음을 실행하십시오.

ln -s /etc/apache2/mods-available/include.conf /etc/apache2/mods-enabled/include.conf
ln -s /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/include.load

그런 다음 아파치를 다시 시작하십시오.

SSI를 .shtml파일에 추가 .htaccess했다면 그렇게 할 것 AddOutputFilter INCLUDES .shtml입니다. 또는 .shtml서버 측에서 구문 분석하려는 파일 유형을 대체 하십시오.

현재 데비안 설정 파일 /etc/apache2/mods-available/mime.conf에는 다음을 추가한다는 오류가 있습니다.

<IfModule mod_mime.c>
[...]
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
[...]
</IfModule>

mod_include.c로드 여부를 먼저 확인하지 않고 이 문제를 해결하기 위해 해당 줄을 다음과 같이 변경할 수 있습니다.

<IfModule mod_mime.c>
[...]
<IfModule mod_include.c>
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
[...]
</IfModule>

<IfModule>태그는 중첩 될 수 있습니다. mod_include.c로드되지 않은 이벤트에서 발생하는 오류 메시지를 제거합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.