V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
baiyekaslana
V2EX  ›  PHP

php74-fpm 加 nginx, PHP 文件只要不是 root /var/www/html 就提示 No input file specified.求大佬看看

  •  
  •   baiyekaslana · 7 小时 59 分钟前 · 833 次点击

    使用的测试文件 info.php,调用 php.info(); 现在网站需要放在其他路径底下,修改了 nginx 中的 root 之后就提示 No input file specified. 但是 index.html 静态文件显示正常

    在网上查的和 gpt 问,试过以下几种方式还是不行,求大佬帮忙看下

    1 ,php74/etc/php-fpm.d/www.conf 文件中 chroot 和 chdir 参数都是默认注释的, 在 info.php 中,参数显示如下 USER www-data HOME /var/www

    2 ,nginx 中的 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; $document_root 或者修改成绝对路径也不行

    3 ,修改 cgi.fix_pathinfo=0

    4 ,;cgi.force_redirect=1 取消注释

    上述的 4 种方式最多就是某 2 个一起试过。 关于文件权限问题,/var/www 使用的是 777 ,html 和我想放的文件夹 site 的权限也是 777 ,site 和网站文件的属组和属主都是 www-data php74/etc/php-fpm.d/www.conf 文件中


    user = www-data

    group = www-data

    listen = /run/php74-fpm.sock

    listen.owner = www-data

    listen.group = www-data

    listen.mode = 0660


    /run/php74-fpm.sock 的属组和属主是 www-data

    求大佬帮忙看下还有什么办法嘛,想放到/var/www/site 文件夹下

    21 条回复    2026-01-12 16:27:32 +08:00
    xxyang
        1
    xxyang  
       7 小时 52 分钟前
    /usr/local/nginx/conf/fastcgi.conf
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=\$document_root/:/tmp/:/proc/:/home/wwwroot";

    我是这么配置的
    Logtous
        2
    Logtous  
       7 小时 50 分钟前
    index info.php; 配置中指定一下,或者 url 中填写/info.php
    baiyekaslana
        3
    baiyekaslana  
    OP
       7 小时 44 分钟前
    @Logtous 访问的 url 中就指定的/info.php,但是 nginx 中 root 更换地址后,访问 php 文件就会提示 No input file specified.
    baiyekaslana
        4
    baiyekaslana  
    OP
       7 小时 38 分钟前
    @xxyang 将/home/wwwroot 改成我想存放网站的位置后重启 nginx ,访问 info.php 也不行
    ntedshen
        5
    ntedshen  
       7 小时 24 分钟前
    你加了 htaccess 吧。。。
    elevioux
        6
    elevioux  
       7 小时 23 分钟前
    文件路径对不上。nginx 解析出来地址后,传给 php-fpm ,php 一看,没这文件
    baiyekaslana
        7
    baiyekaslana  
    OP
       7 小时 15 分钟前
    @elevioux 这个提示我知道是这个意思,但是我不知道要修改什么配置才能改过来,nginx 的代理路径也正常,html 文件可以找到,但是 php 文件就提示 No input file specified.
    baiyekaslana
        8
    baiyekaslana  
    OP
       7 小时 12 分钟前
    @ntedshen 您说的是网站文件中的.htaccess 嘛,文件里没东西,并且我现在用的 info.php,排除了网站文件和网站路由的影响
    fengzhongdeyihan
        9
    fengzhongdeyihan  
       7 小时 7 分钟前
    关闭 SELinux 试试
    elevioux
        10
    elevioux  
       7 小时 1 分钟前
    @baiyekaslana #7 配置了伪静态? location 下是不是还有 root/alias 什么的?
    bkchan
        11
    bkchan  
       6 小时 59 分钟前   ❤️ 1
    文件根目录下有.user.ini 文件吗, 有的话直接删掉
    jellybool
        12
    jellybool  
       6 小时 59 分钟前
    这就是文件路径不对,仔细看看
    baiyekaslana
        13
    baiyekaslana  
    OP
       6 小时 58 分钟前
    @fengzhongdeyihan 使用的 ubuntu 18.04,没有 selinux
    baiyekaslana
        14
    baiyekaslana  
    OP
       6 小时 54 分钟前
    @bkchan 解决了,删掉这个.user.ini ,就出来了
    kphcdr
        15
    kphcdr  
       6 小时 50 分钟前
    难得有 php 新人

    下次出现问题可以打开 php.ini 的 display_error ,这样可以知道出现了什么问题
    baiyekaslana
        16
    baiyekaslana  
    OP
       6 小时 45 分钟前
    @kphcdr 好的
    julyclyde
        17
    julyclyde  
       5 小时 4 分钟前
    root 是设置静态文件服务路径和$document_root 变量的指令
    然后你用 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name 拼接的话,就要求 php 文件必须在那个路径之下啦

    你如果要放到别处,这里就写上对应的路径代替$document_root 变量

    nginx 跟 777 没关系。那是 CGI 才用的东西
    canteon
        18
    canteon  
       4 小时 29 分钟前
    open_basedir 1 楼那个是对的,你这个用宝塔之类的,他有安全限制只能访问特定目录的权限,你删除了也就是按照 nginx 传递过来的来,不受限制了
    drupal
        19
    drupal  
       4 小时 25 分钟前
    尝试在配置文件中添加 php 文件,默认是没有的
    boringwheat
        20
    boringwheat  
       2 小时 19 分钟前
    @canteon 应该就是这个问题,我也碰到一次~~
    raphaelsoul
        21
    raphaelsoul  
       2 小时 13 分钟前
    我最近一次搭 php 环境 都是有问题问 gemini 全部搞定的 你也可以尝试一下
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3576 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    ♥ Do have faith in what you're doing.