Tôi có dự án Laravel 4.2 được lưu trữ trên một máy chủ (Máy chủ A) và tôi cần có khả năng tải tệp lên từ ứng dụng này và các tệp được chuyển sang máy chủ Windows có trên máy chủ cùng một mạng cục bộ (Máy chủ B).Laravel SSH trên Windows Server
Tôi đã cài đặt OpenSSH trên máy chủ Windows và đã bắt đầu dịch vụ. Tôi có thể xác nhận rằng điều này đang hoạt động vì tôi có thể kết nối thành công trong thiết bị đầu cuối trên Máy chủ A.
Trong dự án Laravel, tôi đã tạo kết nối trong tệp app/config/remote.php.
Nhưng khi tôi cố gắng chạy một lệnh trong dự án Laravel trên Server Một bằng cách sử dụng đoạn mã sau:
SSH::into('ServerB')->run(['IF EXIST folder (echo YES) ELSE (echo NO)'], function($line){
echo $line.PHP_EOL;
});
tôi nhận được lỗi sau:
unpack(): Type N: not enough input, need 4, have 1
Tôi nhận được lỗi này cho mỗi lệnh tôi cố gắng chạy trên Máy chủ B. Kỳ lạ thay, nếu tôi cố gắng sử dụng cùng một mã nhưng chỉ nó vào một máy chủ Linux, mã hoạt động tốt. Điều này sẽ khiến tôi tin rằng máy chủ SSH có thể được thiết lập không chính xác trên Máy chủ B, nhưng thực tế là tôi có thể kết nối qua SSH tới Máy chủ B từ Máy chủ A trong cửa sổ đầu cuối gây nhầm lẫn cho toàn bộ vấn đề!
Có ai biết ý nghĩa của lỗi tôi đang nhận không?
Phiên bản PHP dự án Laravel 4.2 của bạn được lưu trữ trên phiên bản PHP nào? – revo
Tôi không biết Laravel rất tốt, nhưng tôi đã tìm thấy một báo cáo vấn đề tương tự trên phpeclib, đã được sửa vào năm ngoái: https://github.com/terrafrost/phpseclib/commit/684d6eed0e2fc3045c9169685ce135a14474abef – andrucz
đăng nhật ký của bạn 'echo $ ssh-> getLog(); 'cũng kiểm tra máy chủ và tường lửa của bạn – Ghayel