原来用的环境是php5.5-ts,但今天因一个项目需要使用到php7.0-nts的环境,所以只好现在本地配置个工作环境,用的php7.0-nts环境,发现页面始终报No input file specified.问题。
php中ts和nts区别:
ts(Thread-Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本。php以ISAPI方式加载的时候选择这个版本。
nts(None-Thread Safe)即非线程安全,就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是脏数据php以fast cgi方式运行的时候选择这个版本,具有更好的性能。
解决方法:
一、修改php.ini配置文件
找到
; cgi.force_redirect = 1
去掉前面分号,把后面的1改为0
cgi.force_redirect = 0
二、修改.htaccess文件
原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误。
打开.htaccess 在RewriteRule 后面的index.php教程后面添加一个“?”
如下:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] </IfModule>