php - 如何为 PHP 正确配置 Nginx(Yii 框架和 Zurmo)

标签 php configuration yii nginx path

我正在尝试在我的本地计算机 (Win8x64) 上设置 Zurmo CRM。安装完所有要求后,我想开始实际安装。问题是路径似乎没有从 NGinx 正确传递到 FastCGI PHP。这是我的 Nginx 服务配置:

server {

    listen       80;
    server_name  zurmo.local;
    root         html/zurmo.local;
    set $index   "index.php";

    charset utf-8;

    location / {
        index  index.html $index;
        try_files $uri $uri/ /$index?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    location ~ \.php {

        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        set $fsn /$index;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }

        fastcgi_pass   127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fsn;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    location ~ /\.ht {
        deny  all;
    }
}

因此,当我调用 zurmo.local(添加到主机文件)时,我得到“此网页有一个重定向循环”,其 URI 看起来像这样 http://zurmo。 local/app/app/[...]/app/app/index.php 如果不是 $document_root$fsn 我评论 PATH_INFOPATH_TRANSLATED 比我得到 No input file specified. 的 URI 看起来像 http://zurmo.local/app/app/index.php

进一步查看,当我添加 access_log html/zurmo.local/logs/access.log; 时,Nginx error.log 向我显示以下内容:[timestamp] [emerg] 4064#3660: CreateFile() "[path to stack]\nginx/html/zurmo.local/logs/access.log"失败(3:系统找不到指定的路径)。如您所见,目录分隔符不一致。

最后一点,我的 Nginx 主目录位于 nginx/html 这实际上是 ../home 的 smlink 这纯粹是为了保存我的文件以适合我日常工作的方式构建。

如何正确配置 Nginx 以便继续(使用 Zurmo 安装)?

最佳答案

我知道这是一个老问题,但这是我为使 nginx + zurmo 工作所做的工作。

server {
    listen       80;
    server_name  zurmo.local;
    root         /home/www/zurmo.local;
    access_log   /var/log/nginx/zurmo.access.log main;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) { deny all; }
    location ~ /\. { deny all; access_log off; log_not_found off; }
    location = /favicon.ico { log_not_found off; access_log off; }
    location ~ \.(js|css|png|jpg|gif|ico|pdf|zip|rar)$ {
        try_files $uri =404;
    }

    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;

        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;

        fastcgi_read_timeout 600s;
        fastcgi_send_timeout 600s;
    }
}

关于php - 如何为 PHP 正确配置 Nginx(Yii 框架和 Zurmo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502866/

相关文章:

windows-8 - 在 Windows 8/商店应用程序中禁用触摸反馈(通过代码)?

javascript - 我如何在 onclick 函数中传递 3 个参数。参数在 php 标记内

php - Yii IN 查询不起作用

php - 如何使用 Laravel Eloquent ORM 搜索加密值?

php - 使 Yii Dropdown 默认值为 NULL

php - 获取查询中带有限制的所有行

php - 删除 SQL 中重复的字段条目

.net - 出现 "Unrecognized configuration section runtime"配置异常时出现什么问题

visual-studio-2015 - 如何从.NET Core中的appsettings.json配置嵌套对象?

javascript - 捕获双击 Yii 的 CGridView 行