使用 sftp 和 ssh2 在 fopen 上出现分段错误

2024-04-13php开发问题
4

本文介绍了使用 sftp 和 ssh2 在 fopen 上出现分段错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个在 AWS 上运行的 php 系统和一个使用 shh2sftp 在外部服务器上上传 xlsx 文件的类.这段代码运行良好,直到上次升级 aws 包 openssh-clients-6.6.1p1-31.62openssh-server-6.6.1p1-31.62 到此时我有一个 <fopen 期间的strong>segfault.fopen 在外部服务器上创建一个文件.代码如下:

I have a php system running on AWS and a class that upload a xlsx file on external server using shh2 and sftp. This code worked fine until last upgrade of aws package openssh-clients-6.6.1p1-31.62 and openssh-server-6.6.1p1-31.62 by this time I have a segfault during fopen. Fopen create a file on external server. Here the code:

$stream = @fopen("ssh2.sftp://$this->sftp$remote_file", 'w');

然后我使用 $stream 来编写内容,但是由于段错误,代码在 fopen 上停止.我没有发现任何关于这个问题的信息,我认为问题是opnessh的新升级,因为php代码没有改变.有什么想法吗?

Then I use $stream to write the content, but the code stop on fopen bacause a segfault. I don't find anything about this problem, I think the problem is the new upgrade of opnessh, because the php code isn't changed. Any idea?

推荐答案

在 StackOverflow 上找到了答案:https://stackoverflow.com/a/40972584/2520795

Found the answer here on StackOverflow: https://stackoverflow.com/a/40972584/2520795

似乎自从这次 PHP 更新以来,你必须用 intval() 包围你的主机部分(ssh2_sftp() 的结果):

It seems since this PHP update, you have to surround your host part (result of ssh2_sftp()) with intval():

$handle = opendir("ssh2.sftp://".intval($sftp)."/path/to/directory");

在我的例子中,有一个 fopen 而不是 opendir,但解决方案是一样的.

In my case there was a fopen instead of an opendir, but the solution is the same.

这篇关于使用 sftp 和 ssh2 在 fopen 上出现分段错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17