우분투와 센토스에서 mod_php 대신 mod_fcgid를 사용하려면 어떻게 해야 합니까? 두 가지의 주요 이점과 차이점은 무엇입니까?
답변1
mod_php:
- mod_fcgid보다 조금 더 빠릅니다.
- httpd 프로세스에서 실행
- Apache API에 액세스할 수 있습니다( de.php.net/manual/en/ref.apache.php ).
- 모든 도메인이 동일한 사용자로 실행되므로 공유 호스팅에는 좋지 않습니다.
mod_fcgid:
- 원하는 사용자 아래에서 스크립트가 실행됩니다(공유 호스팅에 적합).
- 강화된 보안
- PHP 이상의 것을 실행할 수 있습니다
- 여러 PHP 버전(예: php4, php5, php5.1, php5.2, php 5.3)을 실행할 수 있습니다.
답변2
내 공유 호스팅 플랫폼에서는 FastCGI를 사용하여 PHP를 직접 호출하는 대신 PHP를 실행합니다. 그들은 모듈이 아닌 기본적으로 CGI를 통해 PHP를 실행하므로 내 .htaccess
파일에 다음을 추가하기만 하면 됩니다.
AddHandler application/myphp .php
Action application/myphp /cgi-bin/myphp.fcgi
myphp.fcgi
다음으로 다음을 포함하는 cgi-bin 디렉토리에 스크립트를 생성해야 했습니다 .
#!/bin/sh
# This ensures PHP doesn't try to run it's own
# process manager.
export PHP_FCGI_CHILDREN=0
# Replace this shell image with a PHP
# image.
exec /path/to/php -c /path/to/my/php.ini
이것은 나에게 완벽하게 실행되며 내 호스팅 환경은 하드웨어 부하 분산 장치 뒤에 있는 거의 12개의 서버 클러스터 내에서 실행됩니다.
답변3
cgi = 각 요청은 프로세스를 시작하고 그 결과를 클라이언트로 다시 가져옵니다. fcgi = 애플리케이션(예: Ruby/Django) 또는 인터프리터(PHP)는 계속 실행되고 웹서버는 요청을 전달하고 그로부터 응답을 받습니다.
FastCGI는 거의 항상 더 빠르지만(이를 지원하는 항목의 경우) 매우 오래된 일부 항목(예: nagios)에는 cgi가 필요합니다. cgi의 유일한 장점은 트래픽 스크립트가 없는 경우 cgi 응용 프로그램이 메모리를 사용하지 않는다는 것입니다. 그러나 일반적으로 웹 서버는 한동안 사용되지 않는 FastCGI 응용 프로그램을 종료할 만큼 지능적이므로 이는 실제 이점이 아닙니다.