copy了一个完整的网站到本地调试, nginx中都配置好后, 这个site就是运行不起来, 任何页面都显示"No input file specified.", 但是其他的site都正常
检查PHP的log, 只有404的状态记录, 没有发现其他的异常.
"No input file specified."的状态码就是404
在nginx中配置这个site的error_log, 也没有任何记录.
最后发现这个site的root目录下有一个".user.ini", 里面设置了 open_basedir
, 直接修改内容或删除文件, site可以正常访问了.
maybe原来的管理员使用了bt面板.....
关于 .user.ini
PHP 支持基于每个目录的 INI 文件配置。此类文件 仅被 CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果你的 PHP 以模块化运行在 Apache 里,则用 .htaccess
文件有同样效果。
除了主 php.ini
之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。
在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。
官方文档: https://www.php.net/manual/zh/configuration.file.per-user.php