mod_php가 뭐죠?
Zend 튜토리얼을 진행하던 중 다음과 같은 문구를 발견했습니다.
.htaccess의 php_flag 설정은 mod_php를 사용하는 경우에만 작동합니다.
그게 무슨 뜻인지 누가 설명 좀 해줄래?
mod_php
Apache 모듈로서 PHP를 의미합니다.
기본적으로 로드 시mod_php
Apache 모듈로서 Apache는 PHP 파일을 해석할 수 있습니다(이것들은 에 의해 해석됩니다).
편집 : Apache를 사용하는 경우 PHP를 실행하는 방법은 다음 두 가지가 있습니다.
- CGI 사용: Apache에 의해 PHP 프로세스가 시작되며, Apache 자체가 아닌 PHP 코드를 해석하는 PHP 프로세스입니다.
- PHP를 Apache 모듈로 사용( ) : PHP 인터프리터는 Apache 프로세스 내에 "내장"되어 있습니다.PHP 프로세스는 외부 PHP 프로세스가 없습니다.이는 Apache와 PHP가 더 잘 통신할 수 있음을 의미합니다.
코멘트 후에 CGI를 사용하여 다시 편집합니다.mod_php
웹 서버 구성의 문제일 뿐입니다.
현재 서버에서 어떤 방식으로 사용되고 있는지 확인하려면 의 출력을 체크할 수 있습니다.PHP가 다음 명령을 통해 실행 중인지 여부를 나타내는 무언가가 있어야 합니다.mod_php
(또는 ) 또는 CGI 경유.
또한 웹 서버와 PHP 사이의 인터페이스 유형을 반환합니다.
Apache 구성 파일을 체크인하는 경우mod_php
, 이 있어야 합니다.LoadModule
다음과 같은 선:
LoadModule php5_module modules/libphp5.so
(오른쪽의 파일명은 다를 수 있습니다.예를 들어 Windows 에서는 파일명은.dll
)
TuxRadar의 답변은 다음과 같습니다.
웹 서버를 통해 PHP를 실행하는 경우 두 가지 다른 옵션이 있습니다. PHP의 CGI SAPI를 사용하여 PHP를 실행하는 경우와 웹 서버용 모듈로 실행하는 경우입니다.각각의 장점이 있지만 전반적으로 모듈이 선호됩니다.
CGI로 PHP를 실행하는 것은 기본적으로 웹 서버에 PHP 실행 파일의 위치를 알려주고 서버는 실행 파일을 실행하며, 사용자가 페이지를 방문할 때마다 호출한 스크립트를 제공합니다.즉, 페이지를 로드할 때마다 PHP는 php.ini를 읽고 설정을 해야 합니다.모든 확장자를 로드해야 합니다.그리고 스크립트 해석 작업을 시작해야 합니다.반복 작업이 많이 반복됩니다.
PHP를 모듈로 실행하면 PHP는 말 그대로 웹 서버 내에 배치됩니다.PHP는 한 번만 시작하고 설정 및 확장을 한 번만 로드하며 세션 전체에 걸쳐 정보를 저장할 수 있습니다.예를 들어, PHP 액셀러레이터는 CGI 버전에서는 불가능한 요청 간에 캐시된 데이터를 저장할 수 있는 PHP에 의존합니다.
PHP를 모듈로 사용하는 명백한 장점은 속도입니다. CGI에서 모듈로 변환하면 속도가 크게 향상됩니다.많은 사람들(특히 Windows 사용자들)은 이것을 깨닫지 못하고 php.exe CGI SAPI를 계속 사용하고 있습니다.이것은 유감스러운 일입니다.모듈은 보통 3~5배 빠릅니다.
CGI 버전을 사용하는 데는 중요한 장점이 하나 있는데, 그것은 PHP가 페이지를 로드할 때마다 설정을 읽는다는 것입니다.PHP를 모듈로 실행하면 웹 서버를 재시작할 때까지 php.ini 파일의 변경은 실행되지 않습니다.따라서 많은 새로운 설정을 테스트하고 즉각적인 응답을 원하는 경우 CGI 버전을 사용하는 것이 좋습니다.
php 코드를 해석할 수 있도록 서버에 php 모듈이 설치되어 있어야 합니다.
ubuntu를 사용하시는 분들은
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
그렇지 않으면 http://dan.drydog.com/apache2php.html을 사용하여 apache를 컴파일할 수 있습니다.
서버 OS를 지정하면 다른 사용자가 보다 구체적으로 답변할 수 있습니다.
덧붙여 mod_php는 HTTPD 서버에서 PHP를 사용하는 가장 오래되고 느린 메서드입니다.이전 버전의 Apache HTTPD 및 PHP를 실행하고 있지 않는 한 권장되지 않습니다. PHP-FPM 및 proxy_cgi가 권장됩니다.
즉, CGI 스크립트로 시작하는 것이 아니라 Apache에서 PHP를 모듈로 설치해야 합니다.
mod_php는 PHP 인터프리터입니다.
docs에서 mod_php의 중요한 캐치는 다음과 같습니다.
"mod_displays는 스레드 세이프가 아니기 때문에 가능한 한 느린 설정인 프리포크 mpm(멀티 프로세스, 스레드 없음)을 고수하도록 강제합니다."
언급URL : https://stackoverflow.com/questions/2712825/what-is-mod-php
'source' 카테고리의 다른 글
리스트/쌍의 태플을 2개의 리스트/탭으로 압축 해제 (0) | 2023.01.28 |
---|---|
덱스를 실행할 수 없음: 여러 덱스 파일에 의해 정의됩니다. (0) | 2023.01.28 |
MySQL의 '삭제 제한 시' 절의 정확한 의미 (0) | 2023.01.28 |
메서드 org.postgresql.jdbc.PgConnection.createClob()은 아직 구현되지 않았습니다. (0) | 2023.01.28 |
jQuery를 사용하여 HTML 요소를 만드는 가장 효율적인 방법은 무엇입니까? (0) | 2023.01.28 |