터미널을 통해 Ubuntu 12.04에서 PHP를 FastCGI로 실행하도록 Apache를 구성하는 방법은 무엇입니까?

에반 맷슨

저는 유닉스 명령 줄 웹 서버 관리 / 관리의 세계에 비교적 익숙하지 않습니다.

제어판 관리 옵션이있는 많은 호스트를 사용하면 간단한 옵션으로 PHP 실행 방법을 변경할 수 있습니다.

가장 일반적인 옵션은 다음과 같습니다.

  • 아파치 모듈
  • CGI 애플리케이션
  • FastCGI 응용 프로그램

내 질문은 간단하게 명령 줄을 통해 어떻게 변경합니까? 아파치에 대한 많은 구성 파일이 있다는 것을 알고 있습니다.

내가 찾은 가장 가까운 것은 이 질문 이지만 디렉토리 구조가 내 OS (Ubuntu 12.04)와 일치하지 않는 것 같습니다.

이 과정이 너무 흔해 보이는 것에 대해 자세히 설명 할 수있는 명확한 가이드가없는 것 같아서 나는 매우 당황합니다. 이것이 존재한다면 용서 해주세요 ... 그렇다면 올바른 방향으로 나를 가리켜주세요.

에반 맷슨

드디어이 작업을위한 멋진 튜토리얼을 찾았습니다. LAMP 스택이 이미 설치되어 있었기 때문에 수행 한 단계를 간략히 설명 하겠습니다 . 전체 자습서는 여기 에서 찾을 수 있습니다 .

새로운 참고 사항 :

튜토리얼에서는 다음을 사용하여 루트 사용자로 전환하는 것으로 시작합니다.

sudo su

제 경우에는 sudo사용자를 전환 하는 대신 해당 명령을 접두사로 지정 했으므로 이러한 방식으로 단계를 문서화 할 것입니다.

시작

1 단계 : Apache 작업자 MPM (다중 처리 모듈) 설치

sudo apt-get install apache2-mpm-worker

이것은 Apache를 설치할 때 기본으로 설치 한 프리 포크를 대체합니다.

2 단계 : PHP5 및 필요한 모듈 설치

sudo apt-get install libapache2-mod-fastcgi php5-fpm php5

이 시점에서 'libapache2-mod-fastcgi'를 설치하는 동안 오류가 발생할 수 있습니다.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source

E: Package 'libapache2-mod-fastcgi' has no installation candidate

이 부분은 위의 튜토리얼에 없습니다.

이를 조정하려면 multiverse저장소를 apt 소스에 추가해야합니다.

이것을하기 위해:

sudo nano /etc/apt/sources.list

여기에 다음 줄을 추가했습니다.

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse

precise이 경우 내 버전의 Ubuntu " Precise Pangolin "을 나타냅니다.

이제 변경 사항을 저장하고 터미널로 돌아갑니다.

sudo apt-get update

그리고 다시:

sudo apt-get install libapache2-mod-fastcgi php5-fpm php5

이제 작동합니다.

이제 다음 Apache 모듈을 활성화하십시오.

sudo a2enmod actions fastcgi alias

아파치를 다시 시작

sudo service apache2 restart

3 단계 : Apache 구성

Apache가 PHP-FPM과 함께 작동하도록하려면 다음 구성이 필요합니다.

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
    <Directory /usr/lib/cgi-bin>
        Require all granted 
    </Directory>
    #directory statement mult be on multiple lines
</IfModule>

노트 :

이전 버전의 Apache (2.3.x 이상)를 사용하는 경우 줄을 생략하십시오.

   <Directory /usr/lib/cgi-bin> Require all granted </Directory>

다음 명령으로 설치된 버전을 확인할 수 있습니다.

apache2 -version

예를 들어 /etc/apache2/conf.d/php5-fpm.conf(이 파일이 존재하지 않으므로 생성해야 함) 전역 Apache 구성 (모든 가상 호스트에 대해 활성화 됨 )에 배치하거나 PHP-FPM을 사용해야하는 각 가상 호스트에 배치 할 수 있습니다.

저는 글로벌 루트를 선택합니다.

sudo nano /etc/apache2/conf.d/php5-fpm.conf

위의 코드 블록에 붙여넣고 저장하고 종료합니다. 이 새 파일은 /etc/apache2/conf.d/디렉토리의 모든 파일을로드하는 Apache의 기본 구성에 의해 자동으로로드됩니다 .

Apache를 다시 시작하십시오.

sudo service apache2 restart

이제 문서 루트에 다음 PHP 파일을 만듭니다 /var/www.

sudo nano /var/www/info.php

더하다:

<?php phpinfo();

저장하고 종료합니다.

이제 우리는 브라우저에서 (예를 그 파일을 호출 http://your-server-ip/info.php)

상단의 서버 API 아래에 FPM/FastCGI.

성공!

기본 TCP 포트 대신 유닉스 소켓을 사용하도록 PHP-FPM을 변경하는 방법 또는 전체가 아닌 개별 가상 호스트에 대해이를 구성하는 방법과 같은 자세한 정보는 상단에 링크 된 소스 튜토리얼을 참조하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관