按照以下步骤走,出现了奇怪的问题。
我用phalcon-devtools-2.0.13 工具创建了一个项目,test
。
然后,成功运行!
之后,我改了如下内容:
也没问题:
但是:
我添加一个路由,就出问题了:
请问这是怎么回事儿?我现在php5.6
phalcon2.0
nginx 配置:
server {
listen 80;
server_name test;
root /Users/ryugou/test/public;
index index.php index.html index.htm;
charset utf-8;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index /index.php;
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
PHPz2017-05-16 13:15:09
环境问题,不是php版本、Phalcon版本bug,是nginx配置问题!
坑!
Phalcon默认的URI信息是从$_GET['_url']获得,也可以设置为$_SERER['REQUEST_URI']获取。
使用这两种不同方法获取,还得要不同的nginx配置!!(详情请看Phalcon文档 Phalcon nginx配置)
这特么也得配置!
使用$_GET['_url'](默认):
location / {
try_files $uri $uri/ /index.php?_url=$uri&$args;
}
使用$_SERVER['REQUEST_URI'],nginx配置:
location / {
try_files $uri $uri/ /index.php;
}
想要正常使用$_SERVER['REQUEST_URI']的方式,nginx配置完了还不要紧,还得在php代码里修改:
use PhalconMvcRouter;
$router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI);