带有 Nginx 路由的 FuelPHP 不工作

FuelPHP with Nginx routing not working

我对 FuelPHP 和一般的 Web 开发不熟悉。我正在尝试将用户重定向到另一个控制器,但由于某种原因我无法显示页面。主页显示正常,如果我将默认主页更改为博客页面,它显示正常。

这是主页上的 link: <?php echo Html::anchor('blog', 'BLOG'); ?>

那我也有它指向的控制器:

class Controller_Blog extends Controller_Template {
public function action_index() {
return Response::forge(View::forge('blog/index', $views,false)->render());
}

当我点击 link 时,它会将我带到 'mywebsite.com/blog' 但它显示 "Access denied."

这是我的 nginx 虚拟主机:

server {
listen 80;
server_name mywebsite.com
index index.php index.html index.html

root /home/me/fuelphp_project/public;

location / {
index index.php
try_files $uri $uri @php_index;

location ~ \.php$ {
 deny all;
}

location @php_index {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param FUEL_ENV "production";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

我不确定是我没有正确设置 FuelPHP 还是 Nginx。任何帮助将不胜感激,谢谢。

我设法让它工作了。我会 post 回答,以防其他人遇到这个问题。 为了澄清,这是在 Ubuntu 16.04 服务器 运行 Nginx 1.10.0 和 php7.0-fpm 上尝试设置 Fuelphp 项目。

ytsejam as a guide https://github.com/rajibmp/FuelPHP-Nginx/blob/master/nginx/sites-available/FuelPHP

使用此页面

我更改了一些内容以适应我的情况:

  • 将server_name设为我的服务器

  • 将根文件夹设置为我的fuelphp项目的public文件夹

  • 我摆脱了 fastcgi_param SCRIPT_NAME $scriptfastcgi_param PATH_INFO $path_info,因为他们给我错误抱怨未声明的变量。

  • 我的访问和错误日​​志文件在 /var/www/fuelphp/nginxlogs

  • 设置fastcgi_pass unix:/run/php/php7.0-fpm.sock

  • listen 80 不知道为什么它说要将其设置为端口 57

然后我按照这里给出的提示进一步设置 php7.0-fpm: How to find my php-fpm.sock?

我认为这就是一切。感谢您的帮助ytsejam