【发布时间】:2020-11-12 00:35:32
【问题描述】:
所以,我尝试了 4 种不同的方法,但都没有奏效。
有一个第 3 方服务器,我可以通过 Filezilla 在其上创建和删除文件。不过,这是出于测试目的。
我的 Laravel 应用程序上有一个脚本,它每天运行一次,创建一些 XML 文件,这些文件需要自动传输到同一台服务器。
当我创建一个 ftp 文件系统时,我在超时后收到错误 "ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)"。
当我尝试 PHP 的 ftp_put 或 ftp_fput 时,我收到错误 "ftp_put(): php_connect_nonb() failed: Operation now in progress (115)"(或 ftp_fput,同样的错误)。
当我尝试使用 ftp 作为目标的 PHP 的 fwrite 时,我收到错误“无法打开流:操作失败”。这在浏览器中也失败了。
我已确保凭据正确无误。我已经从有效的 Filezilla 连接详细信息中复制/粘贴了它们。
文件系统代码:
'ftp' => [
'driver' => 'ftp',
'host' => env('FTP_HOST'),
'username' => env('FTP_USERNAME'),
'password' => env('FTP_PASSWORD'),
'root' => '/Production',
'ssl' => true,
'ignorePassiveAddress' => true,
],
我知道 NAT 背后的服务器问题,但它不会接受我在文件系统中使用原始地址的更改。我已经清除了缓存、配置并喂了仓鼠,但没有任何变化。
老实说,我现在的知识已经走到了尽头。并且要求第 3 方更改他们的配置/设置不是一种选择。该服务器是众多服务器之一,它们完全相同,但客户端不同。他们可能会通过提供日志来帮助我,但仅此而已。
我看到的唯一其他可能不同的是我正在从命令行运行此代码(即,就好像它通过 cron 运行一样)。不确定这是否会导致在远程服务器上连接和创建文件时出现问题。我没有编写 Laravel 命令的经验。
任何帮助将不胜感激。
【问题讨论】:
-
你试过没有 ssl 设置为 true 吗?
标签: php laravel-5 ftp remote-server file-transfer