2014-03-25 6 views
2

HHVM이 일반 PHP 코드를 실행할 수 있다는 것을 알고 있습니다. 내가 알고 싶은 것은 hack으로 작성된 모든 파일을 HHVM으로 제공하는 방식으로 마이그레이션하고 일반 PHP 인터프리터를 통해 PHP로 작성된 모든 파일을 제공하는 방식으로 마이그레이션 할 수 있는지 여부입니다.일반 PHP 인터프리터와 함께 HHVM을 나란히 사용할 수 있습니까?

두 개의 다른 파일 확장명 (예 : .hh.php)을 사용하여 가능해야한다고 가정하고 어떻게 든 nginx 설정이있는 다른 인터프리터/VM을 매핑합니다. 당신이 nginx를 요청

+0

CGI를 사용하면 파일 유형에 대한 처리기를 추가하기 만하면됩니다. – Petah

답변

3

에도 불구하고, 여기에 예를입니다 (테스트되지 않은) 아파치 CGI 구성 :

(미안 나도 몰라 nginx를)

<IfModule mod_fcgid.c> 
    IdleTimeout 3600 
    ProcessLifeTime 7200 
    MaxProcessCount 64 
    DefaultMaxClassProcessCount 8 
    IPCConnectTimeout 300 
    IPCCommTimeout 7200 
    BusyTimeout 300 

    <FilesMatch ".+\.ph(p[345]?|t|tml)$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 

    ScriptAlias /php-5.5.10-bin/ /opt/php/5.5.10/bin/ 
    ScriptAlias /php-5.4.17-bin/ /opt/php/5.4.26/bin/ 
    ScriptAlias /php-5.3.27-bin/ /opt/php/5.3.28/bin/ 
    ScriptAlias /php-5.2.17-bin/ /opt/php/5.2.17/bin/ 

    <Directory "/opt/php"> 
     AllowOverride None 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     Order allow,deny 
     Allow from all 
    </Directory> 

    <FilesMatch ".+\.hh$"> 
     SetHandler application/x-httpd-hhvm 
    </FilesMatch> 

    ScriptAlias /hhvm-2.4.2-bin/ /opt/hhvm/2.4.2/bin/ 

    <Directory "/opt/hhvm"> 
     AllowOverride None 
     Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
     Order allow,deny 
     Allow from all 
    </Directory> 
</IfModule> 

그리고 가상 호스트 :

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName www.example.com 
    ServerAlias example.com 

    DocumentRoot /var/deployments/www.example.com/public 
    <Directory /var/deployments/www.example.com> 
     Options -Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
     Action application/x-httpd-php /php-5.5.10-bin/php-cgi 
     Action application/x-httpd-hhvm /hhvm-2.4.2-bin/hhvm-cgi 
    </Directory> 

    ErrorLog /var/deployments/$serverName/log/www.example.com.error.log 
    LogLevel warn 
    CustomLog /var/deployments/$serverName/log/www.example.com.access.log combined 
</VirtualHost> 
+0

정말 고마워! 그런 설정에 반대하는 것이 있습니까? HHVM이 모든 코드 기반을 한 순간에서 다음 순간까지 제공하는 것보다 마이그레이션 경로만큼 안전합니다. – Christoph

+0

해킹 코드를 사용하면 해킹 코드와 PHP간에 완벽하게 상호 운용 및 마이그레이션 할 수 있으므로 해킹의 이점을 많이 잃을 수 있습니다. HHVM이 모든 것을 제공하기 때문에 PHP 코드는 해킹 코드를 호출 할 수 있고 그 반대도 마찬가지입니다. 당신은 천천히 해킹으로 변환 할 수 있습니다. 이 설정을 사용하면 해킹과 PHP 코드베이스가 서로 떨어져 있어야합니다. –