nginx에서 PHP를 활성화하는 가장 쉬운 방법은 무엇입니까?


130

Ubuntu 12.04의 nginx에서 PHP를 활성화하는 가장 쉬운 방법은 무엇입니까?

최상의 솔루션은 최소한의 작업을 요청하는 것입니다. 패키지 설치는 이상적입니다. :)

답변:


141

다음 방법으로 Ubuntu 12.04에서 빠르게 시작할 수 있습니다.

종속성을 설치하십시오.

sudo apt-get install php5-common php5-cli php5-fpm

nginx를 설치하십시오 :

sudo apt-get install nginx

nginx를 시작하십시오 :

sudo service nginx start

작동하는지 테스트하십시오 ( "Nginx에 오신 것을 환영합니다!")

sudo service nginx stop

nginx 사이트 구성 (/ etc / nginx / sites-available / default)에서 서버 {} 섹션의 행을 수정하십시오.

index index.html index.htmindex index.php index.html index.htm.

다음으로 시작하는 서버 {} 섹션에서 라인 주석 처리를 제거하십시오.

listen ipv4 / ipv6 모두

"location ~ .php {"라고 표시된 줄까지 아래로 스크롤하여 행의 주석을 해제하십시오.

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart sudo service nginx restart

기본 웹 루트는 / usr / share / nginx / www (설정 파일 당)에 있습니다. (보다root /usr/share/nginx/www;

(참고 : Ubuntu 12.10 이상에서는 다음 fastcgi_pass 127.0.0.1:9000;과 같이 줄 을 바꿔야 작동합니다. fastcgi_pass unix:/var/run/php5-fpm.sock;)


1
후기 참고로, 12.04는 12.10 이상과 같은 UNIX 소켓을 편집 /etc/php5/fpm/pool.d/www.conf하고 청취 라인을로 변경 listen = /var/run/php5-fpm.sock한 다음 @ThomasW 라인을 사용하여 만들 수 있습니다. 말하는.
Powerlord

@Powerlord NGINX 기본 설정에는 두 줄이 있으며 PHP 실행 방식을 변경하지 않고 NGINX의 구성 줄을 더 빨리 변경할 수 있으며 모든 작업이 가능합니다.
토마스 워드

@ThomasW. NGINX 기본 설정의 두 줄에 대한 설명도 12.04에서 잘못되었습니다. php5-fpm은 12.04에서 php5-fpm이 구성된 방식으로 인해 첫 번째 방법이 필요합니다. 12.10까지 두 번째 방법으로 변경되지 않았습니다. php5-fpm이 nginx와 작동하도록 문서화하려면 이전 메시지에서 언급 한 것처럼 fpm의 www.conf를 수정해야합니다.
Powerlord

@Powerlord 기본 설정 파일에서 문서를 변경하여 해결할 수있는 문제입니다. 이 이슈에서 내가 만든이 버그를 보십시오 . 아직 버그 수정을 제안 할 기회가 없었습니다.
토마스 워드

1
이것은 우분투 14.04에서 작동하지 않습니다. nginx는 "오류가 발생했습니다. 찾고있는 페이지를 찾을 수 없습니다"라고 말합니다. 어떻게해야합니까?
user3459110

46

편집 : Matt Browne 이 지적한 것처럼 이 최신 게시물에 관심이있을 수 있습니다 :
우분투 16.04의 Linux, Nginx, MySQL, PHP (LEMP 스택) 설치 방법


papashou의 대답은 오래된 우분투 12.04에 대한 올바른 것입니다. Ubuntu 12.10부터 구성이 약간 다릅니다. 여기 내가 한 일이 있습니다.

설치

sudo apt-get install nginx php5-fpm

PHP 활성화

구성 파일에서 다음 줄의 주석 처리를 제거하십시오 /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

시작 (또는 다시 시작)

sudo service php5-fpm restart
sudo service nginx restart

테스트 nginx

이 링크 열기 http://localhost표시되어야합니다 "nginx에 오신 것을 환영합니다!"

테스트 php

PHP 파일을 만듭니다 :

  • 대상 경로는

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    예 : /usr/share/nginx/www

  • 다음으로 info.php파일을 작성 하십시오.

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    또는 하나의 라이너

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

시작 http://localhost/info.php하면 PHP 정보 페이지가 표시됩니다.


3
고마워 여기에 또 다른 도움이 링크는 다음과 같습니다 digitalocean.com/community/tutorials/...은 . 그리고 MySQL을 설치하려면 apt-get install php5-mysqlMySQL 자체를 설치하는 것 외에도 실행해야합니다 .
Matt Browne

1
Ubuntu 16에 대한 위 기사의 새 버전이 있습니다. digitalocean.com/community/tutorials/…
Matt Browne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.