2016-12-29 95 views
2

我想与domain.com/api沿着PHP运行节点。我的nginx的配置如下图Nginx的php5.6 FPM显示空白页

server { 
    listen  80; 
    server_name domain.com; 
    return  301 http://domain.com$request_uri; 
} 
server { 
    listen 80; 
    server_name domain.com; 
    location/{ 
     proxy_pass http://domain.com:8080; 
     proxy_redirect off; 
     proxy_set_header  X-Forwarded-For $remote_addr; 
     location ~* \.(html|css|jpg|gif|ico|js)$ { 
       proxy_cache   cache; 
       proxy_cache_key  $host$uri$is_args$args; 
       proxy_cache_valid 200 301 302 30m; 
       expires    30m; 
       proxy_pass http://domain.com:8080; 
     } 
    } 
    location ^~ /api { 
     alias /var/www/html/testphp/api; 
     try_files $uri $uri/ @api; 
     location ~* \.php { 
      fastcgi_split_path_info ^(.+\.php)(/.+)$; 
      include /etc/nginx/fastcgi_params; 
      fastcgi_pass unix:/run/php/php5.6-fpm.sock; 
      fastcgi_index index.php; 
     } 
    } 
    location @api { 
     rewrite ^/api/(.*)$ /api/index.php/$1 last; 
    } 
} 

但是当我运行文件domain.com/api/test.php它给了空白页?如何解决这个

+0

任何帮助吗? –

+0

我加线fastcgi_param SCRIPT_FILENAME /var/www/html/testphp/api/test.php;它适用于特定的文件,但是当我将其更改为fastcgi_param SCRIPT_FILENAME/var/www/html/testphp/api/$ fastcgi_script_name;它不工作 –

+0

你应该尝试'root/var/www/html/testphp;'而不是'alias'指令。 –

回答

0

我得到这个配置完全工作。我正在运行代码点火器,它的工作正常。

server { 
listen 80; 
server_name www.domain.com; 
root /var/www/html/testphp/api; 
location/{ 
    proxy_pass http://www.domain.com:8080; 
    proxy_redirect off; 
    proxy_set_header  X-Forwarded-For $remote_addr; 
    location ~* \.(html|css|jpg|gif|ico|js)$ { 
     proxy_cache   cache; 
     proxy_cache_key  $host$uri$is_args$args; 
     proxy_cache_valid 200 301 302 30m; 
     expires    30m; 
     proxy_pass http://www.domain.com:8080; 
    } 
} 

location /api/ { 
alias /var/www/html/testphp/api/; 
try_files $uri $uri/ /api/index.php; 
location ~ \.php$ { 
    include /etc/nginx/fastcgi_params; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_index index.php; 
    fastcgi_pass unix:/run/php/php5.6-fpm.sock; 
    fastcgi_param SCRIPT_FILENAME $request_filename; 
    } 
} 
}