mod_include
사용하여 서버 측 포함 (SSI)의 Apache 구성에는 여러 단계가 포함됩니다. 먼저 mod_include
모듈이 활성화되어 있는지 확인하십시오. 일반적으로 Apache 구성 파일을 통해 수행되며 종종 운영 체제 및 Apache 버전에 따라 /etc/httpd/conf.d/
또는 /etc/apache2/mods-available/
에 위치합니다. 모듈이 활성화되지 않은 경우 활성화해야합니다 (정확한 명령은 시스템에 따라 다릅니다. APACHE 구성 파일을 직접 상징적 인 링크 또는 편집하는 것이 포함될 수 있음). 예를 들어 Debian/Ubuntu 시스템에서 a2enmod include
사용할 수 있으며 systemctl restart apache2
포함될 수 있습니다.
다음으로 관련 가상 호스트 또는 디렉토리에 대해 Apache 구성 파일 내에서 SSI를 활성화해야합니다. 이는 <directory></directory>
또는 <location></location>
컨테이너 내에 Includes
지시문을 추가하여 수행됩니다. Includes
지시문은 APACH에 SSI를 처리 할 파일을 알려줍니다. 예를 들어:
<code class="apache"><directory> Options Includes AllowOverride None Require all granted </directory></code>
이 구성은 /var/www/html/ssi-enabled
디렉토리 내의 모든 파일에 대해 SSI를 사용할 수 있습니다. 필요한 경우 특정 파일 또는 파일 유형 만 타겟팅하면보다 구체적 일 수 있습니다.
마지막으로 SSI 파일을 만들어야합니다. 이 파일에는 일반적으로 .shtml
확장자가 있습니다. 이 파일 내에서 <!--#include virtual="/path/to/file.txt" -->
와 같은 ssi 지시문을 사용하여 다른 파일의 내용을 포함 시키려면 또는 <!--#echo var="DATE_LOCAL" -->
하여 서버 측 변수를 표시합니다. 구성 변경을 수행 한 후 Apache를 다시 시작해야합니다. 잘못된 구성으로 인해 Apache가 SSI 지시문을 올바르게 처리하지 못하거나 파일 제공을 거부합니다.
SSI는 신중하게 구현되지 않으면 몇 가지 보안 위험을 도입합니다.
<!--#include virtual="..." -->
지침 내에서 허용되는 경로를 엄격하게 제어하십시오. 사용자 입력에서 파생 된 동적 경로를 사용하지 마십시오. 화이트리스트 접근 방식을 사용하여 포함하려는 정확한 파일 만 지정하십시오.<!--#include virtual="http://..." -->
또는 원격 위치에서 파일을 가져 오는 유사한 지시문을 사용하지 마십시오. 로컬 파일 포함 만 엄격하게 시행합니다.요약하면, 잘 정의되고 제한된 SSI 구현이 이러한 위험을 완화하는 데 핵심입니다. 항상 최소 특권의 원칙을 따르고 SSI 파일에 포함 된 동적 컨텐츠를 세 심하게 소독하십시오.
SSI 오류 문제 해결에는 종종 Apache의 오류 로그를 검사하는 것이 포함됩니다. 이 로그에는 일반적으로 SSI 지침을 처리하는 동안 발생하는 오류에 대한 자세한 정보가 포함되어 있습니다. 구문 오류, 파일 권한 또는 누락 된 파일과 관련된 메시지를 찾으십시오.
잘못된 구문 : 오타 또는 태그의 잘못된 사용과 같은 SSI 지침의 오류로 인해 오류가 발생합니다. SSI 지시문의 구문을주의 깊게 검토하십시오. 태그가 올바르게 열리고 닫혀 있는지 확인하십시오 ( <!--#include ... -->
). 속성이 올바르게 사용됩니다. 구문을 강조하는 텍스트 편집기를 사용하여 잠재적 오류를 식별하는 데 도움이됩니다.
권한 문제 : APACHE에 SSI를 통해 포함 된 파일에 액세스하는 데 필요한 권한이 부족한 경우 실패합니다. Apache 사용자 (종종 www-data
또는 이와 유사한)가 포함되는 파일에 대한 권한을 읽었는지 확인하십시오. ls -l
명령 (Linux/MacOS)을 사용하여 파일 권한을 확인하십시오. chmod
명령을 사용하여 권한을 조정해야 할 수도 있습니다. 잘못된 파일 소유권은 또한 문제를 일으킬 수 있습니다. 파일이 올바른 사용자가 소유하고 있는지 확인하십시오.
누락 된 파일 : <!--#include -->
지시문에 지정된 파일이 존재하지 않으면 Apache는 오류를보고합니다. 포함 된 파일의 경로를 다시 확인하여 올바른 파일이 존재하고 파일이 존재하는지 확인하십시오.
구성 오류 : mod_include
의 잘못된 구성 또는 Includes
지시문으로 인해 SSI가 올바르게 작동하지 않을 수 있습니다. 구문 및 지정된 경로에주의를 기울여 Apache 구성 파일을주의 깊게 검토하십시오. 구성 파일을 변경 한 후 Apache를 다시 시작하십시오.
교통량이 많은 환경에서 SSI 성능을 최적화하는 것은 응답 성을 유지하는 데 중요합니다. 몇 가지 전략을 사용할 수 있습니다.
mod_status
모듈 또는 외부 모니터링 시스템과 같은 도구를 사용하여 사용할 수 있습니다.위 내용은 How do I configure Apache for server-side includes (SSI) using mod_include?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!