Kohana似乎与NGiNX无关

时间:2012-08-22 21:26:24

标签: nginx kohana

以下是我在日志中遇到的错误:

2012-08-22 17:20:35 --- ERROR: HTTP_Exception_404 [ 404 ]: Unable to find a route to match the URI: index.php ~ SYSPATH/classes/kohana/request.php [ 1126 ]
2012-08-22 17:20:35 --- STRACE: HTTP_Exception_404 [ 404 ]: Unable to find a route to match the URI: index.php ~ SYSPATH/classes/kohana/request.php [ 1126 ]
--
#0 /var/www/index.php(109): Kohana_Request->execute()
#1 {main}

这是我的nginx配置:

server {
        listen  80;
        server_name     000.000.00.00;

        root    /var/www;
        index   index.php;

        location / {
                try_files $uri $uri/ @kohana;
        }

        location ~ /\. {
                deny  all;
        }

        location ~* \.php$ {
                try_files $uri $uri/ @kohana;

                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                include /usr/local/nginx/conf/fastcgi_params;
        }

        location @kohana {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include /usr/local/nginx/conf/fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        }

        #error_page  404              /404.html;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root    html;
        }
}

在首页我得到:

HTTP_Exception_404 [ 404 ]: Unable to find a route to match the URI: index.php

 DOCROOT/index.php [ 109 ] » Kohana_Request->execute()

提前感谢您的帮助!

更新

Kohana::init(array(
    'base_url'   => '/',
));

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
            'controller' => 'welcome',
            'action'     => 'index',
    ));

2 个答案:

答案 0 :(得分:0)

尝试浏览http://localhost/代替http://localhost/index.php

如果不是这样,那么example nginx config可能会有所帮助。

答案 1 :(得分:0)

我有一个类似的问题,这是我们最终得到的nginx配置

server {
listen       80;
server_name <<INSERT SERVER NAME>>;
root   /add/root/directory;

index index.php;

# ROUTING TO KOHANA IF REQUIRED
location / {
    try_files $uri $uri/ @kohana;
}

# BLOCKS ACCESS TO . FILES (.svn, .htaccess, ...)
location ~ /\. {
    deny  all;
}

# FOR PHP FILES
location ~* \.php$ {
    # PHP FILES MIGHT BE TO HANDLED BY KOHANA
    try_files $uri $uri/ @kohana;

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

# HANDLES THE REWRITTEN URLS TO KOHANA CONTROLLER
location @kohana
{
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}

# CACHE CONTROL FOR STATIC FILES
location ~* \.css|\.js|\.jpg|\.jpeg|\.png|\.gif|\.swf|\.svg|\.tiff|\.pdf$ {
    expires 30d;
}

# REDIRECTING MEDIAS TO STATIC
location ^~ /medias/ {
    rewrite ^/medias/(.*) http://static.xxxx.com/$1 permanent;
    break;
}
}