遇到这种问题,首先确认你web服务器配置中的.PHP是不是被指定给FastCGI server处理:

location ~ .php$ {
fastcgi_pass 127.0.0.1:;
}

如已配置,那么可能是由于fastcgi_script_name访问脚本路径不正确引起的。

尤其是带有子目录的情况,比如对于Yii框架而言,路径通常是project/web

那么如果在URL中访问 /project/index.php,那么nginx配置中的SCRIPT_NAME会是全路径:project/index.php

如果你配置中的代码如下:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

那么实际访问的文件就是/var/site_root/project/web/project/index.php,这显然不是我们想要的结果,我们想访问的是/project/web/index.php。

这些错误可以通过查看php-fpm.log(错误日志)来跟踪。

解决方法是修改相应的路径配置。

备注:多个站点使用子目录配置可参考:

https://rtcamp.com/wordpress-nginx/tutorials/multisite/subdirectories/in-a-subdirectory/

nginx/php-fpm 访问php文件直接下载而不运行的更多相关文章

  1. Nginx配置指定媒体类型文件强制下载

    由于业务需要,在点击显示链接(如www.xxx.com/2015-01-15/xxx.png)显示媒体资源(如图片.视频.音频.文档),而在点击下载链接(如www.xxx.com/2015-01-15 ...

  2. Windows7安装 nginx+php 后访问.php文件出现 “No input file specified.” 的解决办法

    在Windows7上安装了Nginx+PHP,参考教程为 https://www.cnblogs.com/anlia/p/5916758.html 启动 nginx 后,在浏览器中输入localhos ...

  3. nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下)

    nginx 的第三方模块ngx_http_accesskey_module 来实现下载文件的防盗链步骤(linux系统下),安装Nginx和HttpAccessKeyModule模块(参考LNMP环境 ...

  4. nginx安装及配置访问本地文件

    第一步安装nginx windows可以直接去官网下载,解压就能用 http://nginx.org/en/download.html ubuntu用命令行 sudo apt-get install ...

  5. apache安全配置---禁止访问特定文件,防止日志、压缩包被下载

    指定禁止访问 某些后缀的文件 修改apache配置httpd.conf,在最后加上配置后,重启apache <Files ~ ".txt|.log|.zip|.gz|.sql" ...

  6. Apache和Nginx下禁止访问特定的目录或文件

    大家是否测试Apache做了目录禁止浏览后,目录下面的txt文件还是可以显示里面的内容的.例如:http://www.domain.com/test/此访问会报403错误,但是如果test下有很多tx ...

  7. Linux下使用Nginx代理访问json文件报404错误

    在网上看了很多,都说是IIS的问题,关键是使用servlet就可以正常访问,使用Nginx就不行,最后发现是其他问题,解决方案如下: 1.确认配置的路径是否正确,Nginx代理的路径和你访问的路径. ...

  8. Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间

    1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_loc ...

  9. 访问 .obj文件,由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射

    一.错误描述 HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 最可能的原因: 可 ...

随机推荐

  1. phpstudy php5.4以上版本伪静态设置 thinkphp

    http://www.thinkphp.cn/topic/35958.html <IfModule mod_rewrite.c> Options +FollowSymlinks -Mult ...

  2. GitHub上传文件不能超过100M的解决办法

    http://blog.csdn.net/u010545480/article/details/52995794     上传项目到GitHub上,当某个文件大小超过100M时,就会上传失败,因为默认 ...

  3. move_uploaded_file

    move_uploaded_file() 函数将上传的文件移动到新位置. 若成功,则返回 true,否则返回 false. 语法 move_uploaded_file(file,newloc) 参数 ...

  4. 基于VUE选择上传图片并在页面显示(图片可删除)

    demo例子: 依赖文件 : http://files.cnblogs.com/files/zhengweijie/jquery.form.rar HTML文本内容: <template> ...

  5. DEDECMS去掉自动生成首页或栏目后面带的index.html

    Dede默认生成首页后,首页的链接后面会多出一个index.html.据官方说法这样有利于网站优化.但是这个index.html怎么看都不舒服,而且也不利于seo中主页url的统一.因为我的网站的ur ...

  6. MySQL事务隔离级别的实现原理

    回顾 在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别. 读未提交:一个事务可以读取到另一个事务未提交的修改.这会带来脏读.幻读.不可 ...

  7. java.lang.NoClassDefFoundError: javax/mail/Authenticator

    摘录自:http://stackoverflow.com/questions/1630002/java-lang-noclassdeffounderror-javax-mail-authenticat ...

  8. JVM之GC算法

  9. 关于 httpUrlConnection 的 setDoOutput 与 setDoInput的区别

    httpUrlConnection.setDoOutput(true) httpUrlConnection.setDoInput(true) 这两个方法在develope的httpUrlConnect ...

  10. linux_操作系统

    如何查询操作系统版本? cat /etc/redhat-release 什么是操作系统? -- win10,linux都是os,应用软件和硬件打交道中间桥梁软件,管理 硬件+软件 资源,计算机系统基础 ...