2014-01-06 1 views
4

Nginx를 통해 HHVM을 사용하고 싶습니다. 내가 여기에 언급 된 단계를 수행 한Nginx fastcgi가있는 HHVM이 제대로 작동하지 않습니다.

(우분투 12.04.2 LTS, PHP 5.3.10) :

server { 
     listen 80; 
     server_name demo1.dev 
     server_name_in_redirect off; 
     root /var/www/demo1; 
     location/{ 
       index index.php; 
       try_files $uri $uri/ @handler; 
       expires 30d; 
     } 
     location @handler { 
       rewrite//index.php; 
     } 
     location ~ .php$ { 
       fastcgi_keep_conn on; 
       if (!-e $request_filename) { rewrite//index.php last; } 
       expires  off; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_param PHP_VALUE "error_log=/var/report/PHP.error.log"; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include  fastcgi_params; 
     } 
     location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { 
       expires 1y; 
       log_not_found off; 
     } 
} 

나는이 :
http://www.hhvm.com/blog/1817/fastercgi-with-hhvm

이 내 Nginx의 설정이 모습입니다

function is_hhvm() { 
    return defined('HHVM_VERSION'); 
} 

if (is_hhvm()) { 
    echo "HHVM is working\n"; 
} else { 
    echo "HHVM is not working\n"; 
} 

무엇이 잘못 되었습니까? HHVM이 제대로 작동하는지 어떻게 알 수 있습니까?

UPDATE :의 출력 : ps auxf | grep hhvm

root  15164 0.0 0.0 9360 660 pts/0 S+ 13:55 0:00       \_ grep --color=auto hhvm 
www-data 15142 4.2 6.3 576564 122484 ?  Ss 13:54 0:01 /usr/bin/hhvm --config /etc/hhvm/server.hdf --user www-data --mode daemon 
www-data 15154 7.0 6.3 580668 122636 ?  Ss 13:54 0:01 /usr/bin/hhvm --config /etc/hhvm/server.hdf --user www-data --mode daemon -vServer.Type=fastcgi -vServer.Port=9000 -vPidFile=/var/run/hhvm/hhvm-fastcgi.pid 
+0

비슷한 문제가있는 것처럼 보였지만 nginx와는 아무런 관련이 없습니다. http://stackoverflow.com/questions/21036910/debugging-in-nginx-yields-1-line-and-infinite-frustration -how-to-debug-the-debu –

답변

10

모든 것이 잘 보인다. 정확히 동일한 ngingx 설정을 사용하여 php-fpm을 사용해보고 작동하는지 확인할 수 있습니까? 어쩌면 당신은 디렉토리 허가 문제 또는 뭔가가있을 수 있습니다. 실제로 /etc/init.d/hhvm-fastcgi start을 사용하여 hhvm-fastcgi 프로세스를 시작하고 실행하기 전에 포트 9000에서 수신 대기중인 것이 없음을 확인하십시오. ps auxf | grep hhvm을 실행하여 실행 중이고 청취 중인지 확인할 수 있습니다.

+0

명확한 답변을 보내 주셔서 감사합니다. 하지만 ps auxf를 읽는 방법을 모르겠습니다. HHVM은 거기에 있습니다 (원래 게시물의 업데이트 참조) –

+0

나는 포트 9000에서 다른 것을 듣고 있습니다. 이것을 바꿀 수 있습니까? –

+3

예, 원하는대로 9000을 변경할 수 있습니다. ngingx 설정을 변경하고 /etc/init.d/hhvm-fastcgi도 변경하십시오. –

3

HHVM을 설치하기 전에 PHP5-FPM이 설치되어 서버에서 작동합니까? 예 다음 명령을 사용하여 PHP5-FPM을 중지해야 할 경우 그 검색 웹 서버 루트에 hhvm.php 만든 경우

service php5-fpm stop 

그런 HHVM

service hhvm restart 

를 다시 시작/모든 브라우저를 사용하여 파일을 출력하면 HHVM이 작동합니다.

또한 Google에서 FETCH를 사용하여 페이지의 헤더를 볼 수 있습니다. 헤더에는 HHVM을 사용하여 생성 된 경우 HHVM이 포함됩니다.

HHVM 설정 및 문제 해결에 대한 자세한 내용은 https://udinra.com/blog/hhvm-fastcgi-nginx-speedup-php을 참조하십시오.

관련 문제