You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plesk环境软链Laravel public目录报No input file specified问题

2022年7月6日更新

我已定位问题根源为open_basedir配置限制,根据Plesk官方支持文档说明,可修改该参数添加放行路径解决,但当前所用Plesk面板已关闭该参数的编辑权限,需与主机服务商协商调整。


问题描述

我司现有一台第三方开发的存量网站,未使用Laravel、CodeIgniter等主流框架,目前计划基于Laravel开发全新后台管理系统。站点运行在Plesk面板环境,默认站点DocumentRoot为/xxx/httpdocs。

最初的可运行部署方案:将Laravel的public目录重命名为newadmin,放在/httpdocs/newadmin路径下,其余Laravel框架文件放在/httpdocs/newadmin/laravelsrc路径。该方案的问题是框架核心文件处于web可访问的公共目录下,存在安全隐患,不符合部署最佳实践,因此计划调整为更安全的目录结构:

/httpdocs  
    newadmin  # 符号链接

/laravel  
    public   # Laravel实际公共目录

调整后newadmin是指向/laravel/public目录的符号链接,该结构在本地Windows 10+Apache环境测试运行正常,可实现Laravel框架文件完全放在web根目录外的安全部署,但迁移到Plesk环境后部署失败。联系主机服务商执行软链创建命令如下:

ln -s /var/www/vhosts/mywebsite.com/laravel/public /var/www/vhosts/mywebsite.com/httpdocs/newadmin

命令执行完成后访问http://mywebsite.com/newadmin,页面仅返回 No input file specified. 错误,无其他额外报错信息,求可行解决方案。


解决方案
  • 核心修复方案:联系主机服务商修改站点的open_basedir配置,将Laravel框架所在的/var/www/vhosts/mywebsite.com/laravel完整路径加入放行列表。Plesk默认开启的open_basedir限制仅允许PHP进程访问web根目录、系统临时目录等预设授权路径,软链指向的web根目录外路径默认会被拦截,直接导致PHP无法找到入口文件返回对应报错。
  • 无需修改open_basedir的替代方案:直接在Plesk面板的「Apache与nginx设置」中,为/newadmin路径配置单独的DocumentRoot规则,将其直接指向/var/www/vhosts/mywebsite.com/laravel/public,不需要创建软链,既符合框架文件放在web根目录外的安全要求,也适配Plesk默认的权限规则,不需要调整全局PHP配置,修改完重载web服务即可生效。
  • 补充排查项:软链及Laravel所有目录的权限归属要和站点运行用户一致,避免PHP进程无读取权限;确认/laravel/public目录下存在index.php入口文件,同时检查nginx/Apache的重写规则是否正确传递给PHP处理程序,避免路径解析错误。

内容的提问来源于stack exchange,提问作者ronrun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 21:24:21