子目录中的 kohana 3.1 + ubuntu 14.04 + php-fpm + nginx 404 错误

子目录中的 kohana 3.1 + ubuntu 14.04 + php-fpm + nginx 404 错误

我有一个旧的 kohana 应用程序,我想把它放在我的 VPS 上,但似乎无法让它工作。我花了几个小时在谷歌上搜索并查看缓存的论坛答案。我试过了所有方法,但似乎都没有用。老实说,我不知道如何处理 nginx。我的本地版本的应用程序与 apache 配合得很好。我离取消我的 linode 帐户并获得共享主机只有一步之遥了!请劝我放弃这个念头。

我的 VPS: ubuntu 14.04LTS with php5-fpm and nginx 1.4.6.

我正在提供我的用户目录中的所有内容。

我的 nginx 站点可用文件:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /home/gabreal/Sites/public;
index index.html index.htm index.php;

# Make site accessible from http://localhost/
server_name localhost;

location / {

    try_files $uri $uri/ @kohana =404;
}

error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

location @kohana {
    rewrite ^/(.+)$ /index.php$request_uri last;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
    deny all;
}
}

我的 kohana 应用程序位于如下目录中:

├──/home/gabreal/Sites/public/ │ ├── horizons/ │ │ ├── grader/ (aka the kohana application) │ │ │ ├── index.php │ │ │ ├── application/ │ │ │ ├── system/

当我通过转到http://example.com/horizons/graderkohana 引导文件加载并调用所有重定向来访问应用程序时。例如,我的默认路由会将您重定向到起始页。如果您尚未登录,请转到“用户/登录”。网址设置正确。转到上面的网址,浏览器会重定向到http://example.com/horizons/grader/user/login但我得到nginx 404 页面

因此,不知何故,该controller/action模式无法与该 nginx 设置配合使用。

请为了对这世界上任何你所爱之物的热爱而提供帮助。

更新

仅供参考,我安装了 phpmyadmin,它运行正常。但我仍然无法让 kohana 工作...

更新2

我重新安装了 kohana,并尝试设置一些基本控制器。只有默认控制器像在我的应用程序中一样工作。因此,转到我的应用程序的基本 URL 始终有效,但直接转到任何 /controller/action/id 类型的资源都会给我nginx 404 错误在全新安装和我现有的应用程序上。

答案1

这是一个明显的问题:

    try_files $uri $uri/ @kohana =404;

=404以及整个位置块@kohana可能结合起来导致了这个问题。

您可以通过删除@kohana location块来简化此过程,并简化try_files为:

    try_files $uri $uri/ /index.php;

(当你将请求传递给 index.php 时,Kohana 不需要任何其他参数;请参阅清洁 URL页面了解详情。

相关内容