>운영 및 유지보수 >Apache >mod_php 또는 php-fpm을 사용하여 PHP와 작동하도록 Apache를 어떻게 구성합니까?

mod_php 또는 php-fpm을 사용하여 PHP와 작동하도록 Apache를 어떻게 구성합니까?

James Robert Taylor
James Robert Taylor원래의
2025-03-12 18:44:16207검색

mod_php 또는 php-fpm을 사용하여 Php와 함께 작동하도록 Apache 구성

PHP와 함께 작동하도록 Apache 구성에는 mod_php 와 PHP-FPM (FASTCGI Process Manager)의 두 가지 기본 방법 중에서 선택해야합니다. mod_php PHP를 Apache에 직접 모듈로 통합하는 반면 PHP-FPM은 FASTCGI 인터페이스를 통해 Apache와 통신하는 별도의 프로세스 관리자로 실행됩니다.

mod_php 사용 : 이것은 더 간단한 접근법이며, 구성이 덜 필요합니다. PHP를 설치 한 후 Apache 모듈 mod_php 활성화되어 있는지 확인하십시오. 여기에는 일반적으로 설치 후 Apache를 다시 시작하거나 시스템 패키지 관리자 (예 : 7.4 PHP 버전을 나타내는 Debian/Ubuntu Systems의 a2enmod php7.4 )를 사용하여 모듈을 명시 적으로 활성화하는 것이 포함됩니다. Apache는 .php 확장자가있는 파일의 PHP 처리를 자동으로 처리합니다. 특정 설정에 대해 php.ini 파일을 조정해야 할 수도 있지만 더 이상 구성이 필요하지 않습니다.

PHP-FPM 사용 : 이 방법은 특히 강력한 부하에서 더 나은 성능 및 리소스 관리를 제공합니다. 먼저 PHP-FPM을 설치하십시오. 그런 다음 FastCGI 클라이언트 역할을하도록 Apache를 구성해야합니다. 여기에는 Apache 구성 파일 내에 구성 블록을 추가하는 것이 포함됩니다 (일반적으로 시스템에 따라 /etc/apache2/sites-available/000-default.conf 또는 유사한 경로에 위치). 이 블록에는 일반적으로 PHP 파일의 위치를 ​​지정하고 proxy_pass 지시문을 사용하여 요청을 PHP-FPM 소켓으로 전달하는 <location></location> 또는 <directory></directory> 지시문이 포함됩니다. 일반적인 구성은 다음과 같습니다.

 <code class="apache"><directory> Options Indexes FollowSymLinks AllowOverride All Require all granted <filesmatch> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </filesmatch> </directory></code>

/run/php/php7.4-fpm.sock PHP-FPM 소켓의 실제 경로로 교체하고 웹 루트를 가리 키도록 Directory 지침을 조정하십시오. Apache를 구성한 후 변경 사항이 적용되도록 다시 시작하십시오. PHP-FPM은 이미 실행 중입니다. 그렇지 않은 경우 시스템의 초기 시스템 (예 : systemctl start php7.4-fpm )을 사용하여 시작하십시오.

mod_php 대 php-fpm의 장점과 단점

mod_php :

장점 :

  • 단순성 : 쉽게 설정하고 구성하기 쉽습니다.
  • 오버 헤드 덜 : 프로세스 간 통신 간접비가 없습니다.

단점 :

  • 성능 : Apache 처리로 인해 PHP 실행을 직접 처리하여 무거운 하중에서 느리게 할 수 있습니다.
  • 자원 사용 : 각 Apache 프로세스는 PHP 리소스를 소비하여 메모리 소비가 높아집니다.
  • 덜 안정 : 단일 PHP 스크립트에서 충돌하면 전체 아파치 프로세스에 잠재적으로 영향을 줄 수 있습니다.

PHP-FPM :

장점 :

  • 성능 : 무거운 부하에서 훨씬 더 빠르고 효율적입니다.
  • 자원 관리 : 프로세스 풀링을 통한 더 나은 리소스 활용 및 관리.
  • 안정성 : 단일 PHP 스크립트의 충돌은 전체 웹 서버에 영향을 미치지 않습니다.
  • 확장 성 : 더 많은 PHP-FPM 근로자를 추가하여 수평으로 확장하기가 더 쉽습니다.

단점 :

  • 복잡성 : 더 많은 구성 및 설정이 필요합니다.
  • 오버 헤드 : 프로세스 간 통신 오버 헤드를 소개합니다 (일반적으로 성능 이득에 비해 최소).

PHP를 Apache와 통합 할 때 일반적인 오류 문제 해결

문제 해결 문제는 mod_php 또는 php-fpm을 사용하는지 여부에 따라 다릅니다.

mod_php :

  • "내부 서버 오류": 특정 오류 메시지는 Apache 오류 로그 ( error.log )를 확인하십시오. 일반적인 원인에는 PHP 코드의 구문 오류, PHP 확장률 누락 또는 권한 문제가 포함됩니다.
  • 빈 페이지 : PHP가 올바르게 설치되고 mod_php 모듈이 활성화되었는지 확인하십시오. PHP 파일에서 파일 권한을 확인하십시오.
  • 잘못된 출력 : PHP 코드에서 오류를 확인하십시오. 구성 문제에 대한 php.ini 파일을 검사하십시오.

PHP-FPM :

  • "502 BAD GATEWAY": 이것은 Apache가 PHP-FPM에 연결할 수 없음을 나타냅니다. PHP-FPM이 실행 중인지 확인하십시오. Apache 구성에서 소켓 경로를 확인하십시오. 사용자 Apache가 소켓에 액세스하는 데 적절한 권한이 있는지 확인하십시오.
  • "내부 서버 오류": PHP-FPM 오류 로그를 확인하십시오 (일반적으로 /var/log/php-fpm/error.log 또는 유사한 경로에 있습니다). 이 로그는보다 자세한 오류 메시지를 제공합니다.
  • 느린 응답 시간 : PHP-FPM 풀 설정 (예 : 작업자 프로세스 수)을 조정하여 작업량의 성능을 최적화합니다.

Apache에 PHP 지원을 설치하고 활성화합니다

설치 및 활성화 프로세스는 운영 체제 및 패키지 관리자에 따라 다릅니다.

mod_php 사용 :

  1. PHP 설치 : 시스템 패키지 관리자를 사용하십시오 (예 : Debian/Ubuntu에서 apt-get install php7.4 libapache2-mod-php7.4 ).
  2. 모듈 활성화 : 시스템 패키지 관리자를 사용하여 mod_php 모듈 (예 : a2enmod php7.4 )을 활성화하십시오.
  3. Apache를 다시 시작하십시오 : Apache를 다시 시작하여 변경 사항이 적용됩니다 (예 : systemctl restart apache2 ).

PHP-FPM 사용 :

  1. PHP 및 PHP-FPM 설치 : 시스템 패키지 관리자를 사용하십시오 (예 : apt-get install php7.4 php7.4-fpm ).
  2. Apache 구성 : 첫 번째 섹션에 설명 된대로 APACHE 구성 파일에 필요한 <location></location> 또는 <directory></directory> 블록을 추가하십시오.
  3. PHP-FPM 시작 : PHP-FPM 서비스를 시작하십시오 (예 : systemctl start php7.4-fpm ).
  4. Apache를 다시 시작하십시오 : Apache를 다시 시작하여 변경 사항이 적용됩니다.

7.4 실제 PHP 버전으로 교체하십시오. 가장 정확하고 최신 지침에 대해서는 배포 문서를 항상 참조하십시오.

위 내용은 mod_php 또는 php-fpm을 사용하여 PHP와 작동하도록 Apache를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.