如何在Nginx的子目录中获取Slim PHP Framework路由

罗伯

我正在尝试将Slim应用程序移至子目录,以便可以在处对其进行访问example.com/api/,但是在使路由正常工作时遇到了严重的问题。

主要脚本位于/website/workbench/api/public/index.php,因此对的调用example.com/api/project/1应进入API文件夹。但是,我还需要能够访问example.com的index.html文件(该文件在Angular JS上运行)。

当我转到时,它确实命中了PHP脚本example.com/api/project/1-我可以var_dump查看变量。但是,路由未生效,并且请求变量似乎为空。

/ etc / nginx / sites-available / workbench

server {
    listen   80; ## listen for ipv4; this line is default and implied

    root /website/workbench;
    index index.php index.html index.htm;

    server_name example.com;

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

    location /api/ {
        try_files $uri $uri/ /api/public/index.php?$query_string;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param PHP_VALUE "newrelic.appname=workbench";
        include fastcgi_params;
    }

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

(显然example.com已替换为真实域名)

部分输出var_dump($_SERVER);

array(34) {
  ["USER"]=>
  string(8) "www-data"
  ["HOME"]=>
  string(8) "/var/www"
  ["FCGI_ROLE"]=>
  string(9) "RESPONDER"
  ["PHP_VALUE"]=>
  string(26) "newrelic.appname=workbench"
  ["QUERY_STRING"]=>
  string(0) ""
  ["REQUEST_METHOD"]=>
  string(3) "GET"
  ["CONTENT_TYPE"]=>
  string(0) ""
  ["CONTENT_LENGTH"]=>
  string(0) ""
  ["SCRIPT_FILENAME"]=>
  string(39) "/website/workbench/api/public/index.php"
  ["SCRIPT_NAME"]=>
  string(21) "/api/public/index.php"
  ["REQUEST_URI"]=>
  string(15) "/api/projects/1"
  ["DOCUMENT_URI"]=>
  string(21) "/api/public/index.php"
  ["DOCUMENT_ROOT"]=>
  string(18) "/website/workbench"
  ["SERVER_PROTOCOL"]=>
  string(8) "HTTP/1.1"
  ["GATEWAY_INTERFACE"]=>
  string(7) "CGI/1.1"
  ["SERVER_SOFTWARE"]=>
  string(11) "nginx/1.4.6"
}

var_dump($_REQUEST) 给出一个空数组。

显然,我的设置存在一些明显的错误,但是我正在努力查看结果!更改$query_string$args也无效。

斯蒂法诺·福西托

我想你可以删除$query_stringtry_filesroot/api位置添加指令,如下所示:

location /api {
    root /website/workbench/api;
    try_files $uri $uri/ /public/index.php;
}

并使用fastcgi_param SCRIPT_FILENAME最终定义为参数:

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_params文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Nginx的子目录中获取Slim PHP Framework路由

来自分类Dev

子目录中的无脂肪php,路由不起作用

来自分类Dev

从Nginx中的子目录运行辅助PHP应用

来自分类Dev

如何在php中列出目录,子目录和所有文件

来自分类Dev

如何使用php在父目录中创建子目录?

来自分类Dev

Nginx php-fpm子目录

来自分类Dev

PHP Slim 3 .htaccess 和 index.php 在子目录中不起作用

来自分类Dev

如何在PHP Laravel 5的子目录中为视图创建View Composer

来自分类Dev

如何在PHP Laravel 5的子目录中为视图创建View Composer

来自分类Dev

如何在 Rails 5 应用程序的子目录中嵌入 PHP 驱动的博客?

来自分类Dev

如何重构路由的长php文件(我正在使用Slim Framework)

来自分类Dev

如何使用.HTACCESS重写子目录中的PHP文件

来自分类Dev

如何将PHP + Slim URL Mod重写到子目录

来自分类Dev

重定向到子目录,总是在Slim php中找不到404

来自分类Dev

如何在目录及其子目录中的所有php文件中搜索和替换文本

来自分类Dev

如何将Nginx中的一个域转发到不同的子目录(php,rails)?

来自分类Dev

PHP Slim Framework REST API-在每个路由之前验证访问令牌?

来自分类Dev

Slim Framework PHP-在某些情况下阻止路由访问用户

来自分类Dev

PHP-Slim Framework:在路由闭包内包含大量代码的最佳实践

来自分类Dev

PHP Slim Framework REST API-在每个路由之前验证访问令牌吗?

来自分类Dev

Slim Framework PHP-在某些情况下阻止路由访问用户

来自分类Dev

php中的Nginx:子目录下的php文件抛出404错误

来自分类Dev

Slim Framework API路由的Nginx配置

来自分类Dev

子目录中的WordPress在Nginx fastcgi上提供根index.php

来自分类Dev

web.config中的URL重写不适用于子目录中的Slim PHP API

来自分类Dev

在module.php中确定zend framework3中的控制器、动作、路由名称

来自分类Dev

带有 PHP 的子目录的 Nginx 配置返回 404

来自分类Dev

如何在路由中为包含控制器的子目录添加前缀?

来自分类Dev

PHP获取所有文件,但不在子目录中

Related 相关文章

  1. 1

    如何在Nginx的子目录中获取Slim PHP Framework路由

  2. 2

    子目录中的无脂肪php,路由不起作用

  3. 3

    从Nginx中的子目录运行辅助PHP应用

  4. 4

    如何在php中列出目录,子目录和所有文件

  5. 5

    如何使用php在父目录中创建子目录?

  6. 6

    Nginx php-fpm子目录

  7. 7

    PHP Slim 3 .htaccess 和 index.php 在子目录中不起作用

  8. 8

    如何在PHP Laravel 5的子目录中为视图创建View Composer

  9. 9

    如何在PHP Laravel 5的子目录中为视图创建View Composer

  10. 10

    如何在 Rails 5 应用程序的子目录中嵌入 PHP 驱动的博客?

  11. 11

    如何重构路由的长php文件(我正在使用Slim Framework)

  12. 12

    如何使用.HTACCESS重写子目录中的PHP文件

  13. 13

    如何将PHP + Slim URL Mod重写到子目录

  14. 14

    重定向到子目录,总是在Slim php中找不到404

  15. 15

    如何在目录及其子目录中的所有php文件中搜索和替换文本

  16. 16

    如何将Nginx中的一个域转发到不同的子目录(php,rails)?

  17. 17

    PHP Slim Framework REST API-在每个路由之前验证访问令牌?

  18. 18

    Slim Framework PHP-在某些情况下阻止路由访问用户

  19. 19

    PHP-Slim Framework:在路由闭包内包含大量代码的最佳实践

  20. 20

    PHP Slim Framework REST API-在每个路由之前验证访问令牌吗?

  21. 21

    Slim Framework PHP-在某些情况下阻止路由访问用户

  22. 22

    php中的Nginx:子目录下的php文件抛出404错误

  23. 23

    Slim Framework API路由的Nginx配置

  24. 24

    子目录中的WordPress在Nginx fastcgi上提供根index.php

  25. 25

    web.config中的URL重写不适用于子目录中的Slim PHP API

  26. 26

    在module.php中确定zend framework3中的控制器、动作、路由名称

  27. 27

    带有 PHP 的子目录的 Nginx 配置返回 404

  28. 28

    如何在路由中为包含控制器的子目录添加前缀?

  29. 29

    PHP获取所有文件,但不在子目录中

热门标签

归档