私は自分のサイトで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にアップグレードするだけです。それが原因だろうか?誰かが私がこれをどのように解決できるかについての解決策や洞察力があれば、それは大いに感謝します。前もって感謝します。
SSHログを投稿できますか?あなたは 'define( 'NET_SSH2_LOGGING'、2)'を実行し、次に 'echo $ sftp-> getLog()'を実行することによってそれらを得ることができます。 – neubert