4

我想通过 Nginx 使用 HHVM。(Ubuntu 12.04.2 LTS,PHP 5.3.10)

我已经按照这里提到的步骤:
http ://www.hhvm.com/blog/1817/fastercgi-with-hhvm

这是我的 Nginx 设置的外观:

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;
        }
}

我有一个名为 hhvm.php 的文件,其中包含以下内容:

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

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

我做错了什么,如何查看 HHVM 是否正常工作?

更新:输出: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
4

2 回答 2

10

一切看起来都不错。您可以尝试使用php-fpm完全相同的 ngingx 配置,看看它是否有效?也许您有目录权限问题或其他问题。还要确保您实际上是在hhvm-fastcgi使用启动进程,/etc/init.d/hhvm-fastcgi start并且在运行之前没有在端口 9000 上进行任何监听。您可以运行ps auxf | grep hhvm以确保它正在运行和收听。

于 2014-01-07T07:09:32.933 回答
3

在 HHVM 之前,您是否已在服务器上安装并运行 PHP5-FPM?

如果是,那么您需要使用命令停止 PHP5-FPM

service php5-fpm stop

然后启动/重启 HHVM

service hhvm restart

如果您在 Web 服务器根目录中创建了 hhvm.php,则使用任何浏览器浏览该文件应该会输出 HHVM 工作正常。

您也可以使用 FETCH 和 Google 来查看页面的标题。如果标题是使用 HHVM 生成的,则标题将包含 HHVM。

您可以阅读https://udinra.com/blog/hhvm-fastcgi-nginx-speedup-php了解有关 HHVM 设置和故障排除的更多详细信息。

于 2014-09-16T08:50:07.187 回答