大家好,
我正在尝试托管我的 symfony 项目,但 nginx 返回了 500 错误。错误日志没有显示任何内容。但是访问日志确实显示了一些东西:
46.243.152.13 - - [17/Mar/2016:14:05:45 +0100] "GET / HTTP/1.1" 500 507 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
当我看到 http 请求完成时,我得到了 500 507 的回复。
我已仔细检查了文件夹的权限,现在它们是正确的。
我需要如何继续?
这是我的 nginx 主机文件:
upstream php5-fpm {
server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
}
server {
listen 80;
server_name dev.domain.nl;
return 301 https://$host$request_uri;
}
server {
# listen *:80;
listen 443 ssl;
server_name dev.domain.nl;
ssl_certificate path/to/fullchain;
ssl_certificate_key path/to/key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
server_tokens off;
root /var/www/dev.domain.nl/html/web;
client_max_body_size 250m;
access_log /var/log/dev.domain.nl/dev_access.log;
error_log /var/log/dev.domain.nl/dev_error.log;
rewrite ^/app\.php/?(.*)$ /$1 permanent;
location / {
index app.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/(app|app_dev)\.php(/|$) {
fastcgi_pass php5-fpm;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
}
}
请帮帮我!
答案1
哇,我真是太蠢了……不是 Nginx 出了问题。Nginx 显示了需要查看的实际页面。是我的 Symphony 应用程序在控制器中没有返回值时显示错误。
它之所以没有记录在我的日志文件中是因为这是一个 symfony 错误。哦,我的天,真是太蠢了。
答案2
那将会是一个重写循环:
rewrite ^/app\.php/?(.*)$ /$1 permanent;
rewrite ^(.*)$ /app.php/$1 last;
我不知道为什么你的错误日志不起作用。你应该在其中看到以下错误(但包含你的主机详细信息,而不是我的):
2016/03/17 14:05:03 [error] 75745#0: *23741 rewrite or internal redirection cycle while redirect to named location "@rewrite", client: 10.6.1.0, server: , request: "GET / HTTP/1.1", host: "10.3.0.3:8080"