Cpanel部署的Laravel主域名报No input file specified错误 子域名正常求解决
解决方案排查步骤
- 首先校验主域名的文档根目录配置:
登录cpanel进入「域」管理页面,确认主域名的根目录是否指向Laravel项目的public文件夹。cpanel自动更新时经常会重置主域名的默认根路径为public_html,而子域名创建时通常手动指定了项目public路径,这是同代码子域名正常、主域名报错的最高发原因。 - 修正当前
.htaccess的语法错误:
你贴出的配置缺少mod_rewrite的开启标签,补充后完整的public目录下.htaccess参考如下:
额外补充了<IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> # php -- BEGIN cPanel-generated handler, do not edit # Set the “ea-php73” package as the default “PHP” programming language. <IfModule mime_module> AddHandler application/x-httpd-ea-php73 .php .php7 .phtml </IfModule> # php -- END cPanel-generated handler, do not editRewriteBase /规则适配根域名路径解析。 - 校验主域名PHP配置:
进入cpanel的「多PHP管理器」,确认主域名使用的PHP版本和子域名完全一致,且为ea-php73,避免handler不匹配导致PHP文件无法被解析。同时检查主域名的PHP配置中open_basedir是否包含项目完整路径,排除目录访问限制。 - 清除缓存重试:
重启主域名对应的PHP-FPM进程,清空OPcache、服务器端缓存(如LiteSpeed缓存)后用无痕模式访问测试。 - 校验文件权限:
确认项目所有文件权限为644、目录权限为755,所属用户组为cpanel账户对应的用户组,避免web进程无权限读取index.php文件。
内容的提问来源于stack exchange,提问作者Lamp Soft
相关产品推荐
相关产品推荐

