2017-06-24 21 views
0

私は自分のサイトでphpseclib 2.0を使用しています。私は基本的にSFTPを介してリモートサーバーに接続し、事前定義されたディレクトリ内のファイルをダウンロードするPHP関数を書いた。この関数は、cURLを使用してCRON経由で呼び出され、正常に動作しています。先週、それは動作を停止しました。私はロギングを有効にして、これは私が得るものです。phpseclib - CRONで実行しているが手動で実行していないときのエラー

Severity: User Notice 
Message: Error reading channel data 
Filename: Net/SSH2.php 
Line Number: 3579 

Severity: User Notice 
Message: Connection closed prematurely 
Filename: Net/SSH2.php 
Line Number: 3025 

Severity: User Notice 
Message: Connection closed by server 
Filename: Net/SSH2.php 
Line Number: 3373 

Severity: User Notice 
Message: Expected SSH_FXP_VERSION 
Filename: Net/SFTP.php 
Line Number: 471 

ダウンロードしたファイルの内容の保存に使用したテーブルを確認したところ、更新されていませんでした。

私がCRONから正確なコマンドを実行すると、すべて正常に動作し、テーブルが更新されるということです。私はCRONDログをチェックしており、同じユーザーと同じ権限を使用していることを確認できます。ルート。私には分かりませんので、誰もがこの問題に関する洞察を持っています。私はcURLの使用からhttpieの使用に変更しましたが、同じ結果になりました。コマンドラインで手動で実行すると動作しますが、CRONで実行すると失敗します。

PHPをバージョン5.6からバージョン7.0にアップグレードするだけです。それが原因だろうか?誰かが私がこれをどのように解決できるかについての解決策や洞察力があれば、それは大いに感謝します。前もって感謝します。

+0

SSHログを投稿できますか?あなたは 'define( 'NET_SSH2_LOGGING'、2)'を実行し、次に 'echo $ sftp-> getLog()'を実行することによってそれらを得ることができます。 – neubert

答えて

0

PHP 7はSSL証明書よりも魅力的です。

あなたが接続しようとしているサーバーが適切な証明書を提供しているかどうかを確認してください。 またはphpが無効な証明書を無視してしまう可能性がある場合。手動でスクリプトを実行することができる理由しかし、これは説明していない

-

(以下、正しくもちろん、それを設定するに好ま)。私が今考えることができるのは、証明書だけです。ユーザーとしてログインするときの検索パスに?

関連する問題