一切福田,不離方寸,從心而覓,感無不通。

nginx运行php"No input file specified"错误的解决方法

http://www.jbxue.com/article/5649.html 打开一个页面<?php phpinfo(); ?> 然后在游览器下运行:页面提示 No input file specified. FastCGI模式下访问php文件时,出现No input file specified.错误 查看access.log 发现是 404 打开一个页面<?php  phpinfo(); ?>  然后在游览器下运行:页面提示 No input file specified. FastCGI模式下访问php文件时,出现No input file specified.错误 查看access.log 发现是 404 原因分析: 1、任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified” 2、还可能跟 路径或者 权限有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因) 1)如果html也出现404错误,那么就是document root 设置的有问题 2)检查脚本文件的权限, 可能PHP或者web server不能读取它 3)SCRIPT_FILENAME设置错误 网上的解决方法: 步骤一:修改nginx主配置文件nginx.conf 默认安装的nginx配置文件中定义fastcgi处是:fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name; 可以将它改成: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 必须保证 $document_root 在配置文件中,在astcgi_param SCRIPT_FILENAME前面被用到过一次, 后面有解释为什么。 步骤二:修改PHP的住配置文件php.ini 修改/etc/php5/cgi/php.ini中cgi.fix_pathinfo=1 这样也可让php-cgi正常使用SCRIPT_FILENAME这个变量 有人说,这样改也行 fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name; 让我们看看PHP对这两个变量是怎么解释的吧 SCRIPT_NAME SCRIPT_FILENAME 据说,必须指定正确的SCRIPT_FILENAME, PHP-CGI会忽略SCRIPT_NAME(即使它的值设置的是正确的) 或者指定特殊的php.ini, 设置doc_root, discard path, fix pathinfo等等 script_filename 只是被用做一种快捷方式。 如果fix_pathinfo设置打开,init函数将它用来决定真实的路径 因为配置文件会改变 nginx的变量$fastcgi_script_name fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name; fastcgi_param […]

龙生   20 Dec 2017
View Details

Win7配置Nginx+PHP7

Nginx Nginx有官方native build的32bit版本, 也有cygwin build的64bit版本, 出于稳定性的考虑, 还是选了官方的32bit. 解压, 本例中使用的路径是 C:\Servers\nginx-1.9.12 , 创建两个bat, 用于启动和关闭nginx: start_nginx.bat

stop_nginx.bat

PHP 选的版本是 7.0.4 64位 NTS(非线程安全) VC14, 本例中解压至目录 C:\Servers\php-7.0.4-nts-Win32-VC14-x64 , 使用php.ini-development 创建 php.ini, 修改以下几处, (参考 http://man.chinaunix.net/develop/php/php_manual_zh/html/ini.core.html )

添加扩展, 修改以下几处

启动的命令是

如果需要后台启动PHP CGI, 使用vbs, 创建 startup.vbs

停止PHP CGI, 创建shutdown.bat

Nginx 启用 PHP 修改nginx.conf

重启nginx 注: PHP5.6及以下, 需要将mysql 的 libmysql.dll 拷贝至 C:\Windows\SysWOW64 PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql, 故libmysql.dll已经不需要 如果提示api-ms-win-crt-runtime-l1-1-0.dll丢失, 请安装 visual c++ redistributable 2015, 从微软官网上可以下载. 安装对系统的要求必须在win7 sp1以上, 如果win7还未升级的, 安装会失败.   from:https://www.cnblogs.com/milton/p/5244387.html

龙生   20 Dec 2017
View Details