Hướng dẫn php ftp_connect sftp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Câu hỏi này phù hợp với câu hỏi này , tôi đang cố gắng kết nối với Máy chủ FTP an toàn và nó không thể kết nối, phần wierd là tôi có thể thực hiện ssh và kết nối với máy chủ nhưng khi tôi cố gắng làm điều đó từ php mã sử dụng một số cách tiếp cận khác nhau nhưng nó không hoạt động Phương pháp tiếp cận:
Mã cho cách tiếp cận 1:
Ở đây cũng không thể kết nối với Máy chủ FTP an toàn, mọi gợi ý tại sao nó không thể kết nối? Mã cho cách tiếp cận 2:
Mã cho cách tiếp cận 3:
Mã cho cách tiếp cận 4:
Bất cứ ai có thể tư vấn tại sao tôi không thể kết nối với Máy chủ FTP an toàn bằng cách sử dụng các phương pháp trên nhưng vẫn có thể làm như vậy bằng cách sử dụng ssh? Có bất kỳ cách tiếp cận nào khác để kết nối với Máy chủ FTP an toàn bằng php không? CẬP NHẬT: Q1. Tôi đã thử lại bằng cách sử dụng ftp_connect nhưng nó chỉ chết và tại sao nó chết, các trường hợp mà ftp_connect chết là gì? Quý 2. Chúng tôi chỉ có cách tiếp cận này để kết nối với máy chủ hay có cách nào khác mà chúng tôi có thể triển khai không? Q3. Ngôn ngữ php này có liên quan đến việc nó không hỗ trợ Kết nối FTP an toàn không? HOẶC có bất kỳ cách nào khác để thực hiện việc này bằng php, nếu có, hãy cung cấp các cách tiếp cận khác nhau vì nó sẽ rất hữu ích. CẬP NHẬT 1: Tôi đã cố gắng google thêm về vấn đề này và có vẻ như nếu ftp_connect không hoạt động thì tường lửa có thể là một trong những lý do cho vấn đề này. Tôi không hoàn toàn chắc chắn có đúng như vậy không nhưng tôi đang nghiên cứu thêm về nó và đăng bản cập nhật tại đây nếu tôi thấy bất kỳ điều gì hữu ích. Giải pháp khả thi: Vấn đề Nếu tôi xóa "hoặc chết" thì bạn sẽ gặp lỗi: Khi chạy từ một trang web:
var_dump ($ conn_id); trả về bool (false). Từ dòng lệnh / usr / bin / php /var/www/ftp_test.php var_dump ($ conn_id); trả về tài nguyên (4) kiểu (FTP Buffer). Tập lệnh hoàn thành. Giải pháp 1 Đây có thể là một trong những Hãy thử tắt Giải pháp 2 Nếu bạn không muốn tắt hoàn toàn selinux, bạn có thể nhận được những gì bạn cần bằng cách đặt httpd_can_network_connect bằng lệnh setsebool . Xác minh rằng trước đó nó đã được đặt thành "tắt": getsebool httpd_can_network_connect Đặt nó thành "on":
Bật lại selinux: setenforce 1 Kiểm tra để đảm bảo php Đặt chính sách (-P) thành "bật" để chính sách vẫn tồn tại sau khi khởi động lại:
Giải pháp 3 Cũng có thể có vấn đề với tường lửa của công ty. Đảm bảo rằng nó được định cấu hình đúng cách và có các quyền truy cập được đặt đúng cách. Giải pháp 4 Một cách tiếp cận khác là sử dụng cURL: libcurl vì nó có thể được sử dụng để kết nối và giao tiếp với nhiều loại máy chủ khác nhau với nhiều loại giao thức khác nhau Giải pháp 5 Có một dự án mã nguồn mở được gọi là Thư viện Giao tiếp Bảo mật PHP (phpspeclib) cũng có thể được sử dụng để thiết lập kết nối an toàn đến Máy chủ FTP. 13 hữu ích 3 bình luận 24k xem chia sẻ |