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

如何修复Cpanel中Laravel项目运行seed时出现的file_get_contents客户端错误

解决方案

错误原因

你当前使用的kavist/rajaongkir包默认采用file_get_contents发送HTTP请求,而你所使用的Cpanel主机PHP配置中关闭了allow_url_fopen参数,导致无法发起HTTPS请求触发报错。

可选解决方法

方法1:开启allow_url_fopen(最直接)

  • 登录Cpanel管理后台,找到「选择PHP版本(Select PHP Version)」功能入口
  • 进入后切换到「选项(Options)」标签页
  • 找到allow_url_fopen选项,勾选前方复选框后保存配置
  • 等待1-2分钟配置生效后,重新执行填充命令即可:
php artisan db:seed --class=LocationsTableSeeder

方法2:替换RajaOngkir HTTP客户端(无需开启allow_url_fopen)

如果你的主机商禁止开启allow_url_fopen,可以将包的请求驱动替换为Guzzle,Laravel项目默认已内置Guzzle依赖,操作步骤如下:

  • 执行命令发布RajaOngkir配置文件:
php artisan vendor:publish --provider="Kavist\RajaOngkir\Providers\LaravelServiceProvider"
  • 打开项目根目录下的config/rajaongkir.php文件,将api.client配置项的值修改为:
'client' => \Kavist\RajaOngkir\HttpClients\GuzzleClient::class,
  • 重新执行数据填充命令即可,该方案完全不依赖allow_url_fopen配置。

方法3:本地生成数据导入服务器(临时快速方案)

如果你仅需要执行一次省市区数据填充,可以先在本地开发环境跑完seed,将生成的省份、区县表数据导出为SQL文件,直接导入到服务器的生产数据库中即可,无需修改任何服务器配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:00