我正在尝试配置 hhvm 和 nginx 来处理 /home/ubuntu/www/www.mysite.com 目录中的 php 文件
首先我从 apt get 安装了 hhvm 和 nginx,它在默认目录中运行良好
然后我将 /etc/nginx/hhvm.conf 的 fastcgi 配置从
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
到
fastcgi_param SCRIPT_FILENAME /home/ubuntu/www/www.mysite.com$fastcgi_script_name;
然后我将源根添加到 vim /etc/hhvm/server.ini
hhvm.server.source_root = /home/ubuntu/www/www.mysite.come
然后重新启动了 nginx 和 hhvm,但我仍然从默认 Web 根目录获取 php 文件,而不是从 /home/ubuntu/www/www.mysite.come 获取
这是虚拟主机的配置文件
server {
listen 80;
server_name www.mysite.se;
access_log /var/log/www.mysite.se.access_log;
error_log /var/log/www.mysite.se.error_log;
location / {
root /home/ubuntu/www/www.mysite.se;
index index.php index.htm;
if (!-f $request_filename){
set $rule_1 1$rule_1;
}
if (!-d $request_filename){
set $rule_1 2$rule_1;
}
if ($rule_1 = "21"){
rewrite /. /index.php last;
}
}
#include hhvm.conf;
location ~ \.php$ {
fastcgi_keep_conn on;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/ubuntu/www/www.mysite.se$fastcgi_script_name;
include fastcgi_params;
}
}
当我发出请求时,html 文件从 /home/ubuntu/www/www.mysite.se 加载,没有任何问题,但 php 文件却从默认 nginx 文件夹加载
答案1
nginx 网站配置文件中的问题
根需要位于服务器块中,而不是位置块中。
对于那些愿意使用 hhvm 配置 nginx 的人来说,这里是如何操作的。
我建议你使用 ubuntu。
- sudo su <- 获取 root 访问权限
- apt-get 安装 nginx
- 获得http://dl.hhvm.com/ubuntu/pool/main/h/hhvm/hhvm_3.2.0~trusty_amd64.deb<- 根据操作系统版本下载
- dpkg -i hhvm_3.2.0~trusty_amd64.deb <- 目前生产环境是 3.3.0,在 xml 错误中存在问题https://github.com/facebook/hhvm/issues/3797
- 如果你需要发送电子邮件,SMTP 邮件在 hhvm 上还不支持
- apt-get 安装 sendmail
- 现在配置 nginx 虚拟主机配置然后它需要工作
服务器 { 监听 80;
server_name www.mysite.se;
root /home/ubuntu/www/www.mysite.se;
access_log /var/log/www.mysite.se.access_log;
error_log /var/log/www.mysite.se.error_log;
location / {
index index.php index.htm;
if (!-f $request_filename){
set $rule_1 1$rule_1;
}
if (!-d $request_filename){
set $rule_1 2$rule_1;
}
if ($rule_1 = "21"){
rewrite /. /index.php last;
}
}
#include hhvm.conf;
location ~ \.php$ {
fastcgi_keep_conn on;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/ubuntu/www/www.mysite.se$fastcgi_script_name;
include fastcgi_params;
}
}