我的localhost网站在Apache上使用Facebook SDKV4完美运行。但是在迁移到Nginx PHP-FPM之后我再也无法登录了。除了本地服务器之外,所有Facebook应用程序配置都是一样的。
我是nginx的新手我搜索了很多,并没有找到任何关于我失踪的东西。
这是我的Nginx网站配置:
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name localhost;
root /webroot/site/public_html;
index index.php index.html index.htm default.html default.htm;
access_log /webroot/site/app/logs/access.log;
error_log /webroot/site/app/logs/error.log;
location / {
try_files $uri $uri/ /index.php?q=$uri;
}
location ~ \.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;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
我认为它与会话有关。有没有人以前遇到过这个问题?任何线索都会有所帮助。
我的系统:使用自制软件安装的php-fpm 5.6,nginx-1.9.2
我的问题似乎与这个问题有关Sessions are Missing With Facebook PHP Sdk (Nginx Php-Fpm)
我无法回答这个问题。
更新: 事实证明,使用我的nginx php-fpm 5.6本地服务器在会话中不会创建csrf_token。我尝试使用我的apache(XAMPP)服务器创建csrf_token并能够登录。我仍然不知道我的配置有什么问题。任何线索都会有所帮助。
答案 0 :(得分:0)
我明白了!
问题是我无法获取url参数或参数。在我的虚拟主机配置中,我将URL重写更改为:
try_files $ uri $ uri / /index.php?$args;
获取包含参数的完整URL,例如。的index.php?Q = 1234
使用SERVER变量来获取网址而不是使用GET也非常重要。
我浪费了一天的时间来搞清楚这一点:(如果有人经历过这个,你就去吧。