Tôi có một tập lệnh trên một máy chủ của mình và tôi muốn tập lệnh đó tạo tệp trên máy chủ khác của tôi bằng PHP, KHÔNG phải VIA FTP?Tạo tệp trên máy chủ khác bằng chức năng tệp PHP
Trả lời
Có nhiều cách để thực hiện việc này. Tôi muốn chọn ngày đầu tiên một bản thân mình bởi vì nó dễ dàng nhất để thiết lập:
- Nếu bạn có PHP + Apache trên máy chủ khác, chỉ cần gọi một số kịch bản trên máy chủ khác sử dụng file_get_contents với http URL as filename hoặc sử dụng cURL nếu bạn cũng cần phải đăng nội dung tệp.
- Nếu các máy chủ trong cùng một mạng (LAN, VPN), bạn có thể sử dụng chia sẻ Windows/Samba hoặc NFS để gắn kết một thư mục từ xa để bạn hệ thống tập tin địa phương và chỉ cần ghi ra tập tin trực tiếp sử dụng fopen chức năng/fwrite
- sử dụng SSH qua SCP hoặc SFTP
Nói chung, FTP là cách duy nhất thường xuyên và dễ dàng có sẵn (bằng PHP) để tạo tệp trên máy chủ khác.
Có tất nhiên các giao thức khác cho phép bạn tạo một tập tin, nhưng tất cả đều yêu cầu cài đặt phần mềm trên một hoặc cả hai máy chủ:
- Samba (sẽ cho phép truy cập vào các máy chủ từ xa thông qua một tuyệt đối đường dẫn tập tin)
- WebDaV (PHP client thư viện có sẵn)
- SCP (Tìm một client PHP có lẽ sẽ rất khó)
Nếu cả hai máy chủ chạy PHP, có thể dễ nhất để thiết lập một tập lệnh PHP trên máy chủ từ xa chấp nhận dữ liệu tệp tin POST, và ghi nó ra một tệp cục bộ. Không phải là một giải pháp hoàn hảo, tuy nhiên, do các giới hạn thường được áp dụng cho tải lên POST.
Các downvote không phải là tôi, nhưng PHP không hỗ trợ SCP bằng cách sử dụng SSH - xem câu trả lời của tôi cho các liên kết. –
@Andy tốt để biết, cổ vũ. –
Nói chung, FTP không thực sự có sẵn ở khắp mọi nơi và đặt ra một lỗ hổng bảo mật rất lớn. Và tất cả các giải pháp khác mà bạn đề cập đều tốt hơn. Tôi cũng tự hỏi tại sao bạn nói rằng bài viết HTTP không phải là rất hiệu quả theo định hướng khi nó có ít nhất trên không của tất cả các giải pháp khác? –
PHP cho phép gửi tệp qua SSH - xem họ ssh2 *, cụ thể là ssh2_scp_send và ssh2_scp_recv.
Tôi chưa bao giờ sử dụng chúng bản thân mình, nhưng cơ sở hạ tầng có trong Linux, giống như SMB trong Windows.
Bạn luôn có thể sử dụng DAV, nhưng nó có thể yêu cầu một số cấu hình trên máy chủ tiếp nhận. Ngoài ra còn có SSHFS, cho phép bạn dễ dàng gắn kết thư mục từ xa cục bộ qua đường hầm SSH hoặc chỉ sử dụng họ ssh2_ * là Andy Shellam suggested.
Thực sự, có rất nhiều cách để thực hiện việc này.
- 1. Tải tệp tin lên php lên máy chủ php khác
- 2. Tạo liên kết tải xuống tệp trên máy chủ tệp
- 3. Gọi chức năng Coldfusion trên máy chủ khác?
- 4. Tải xuống tệp bằng curl từ máy chủ php
- 5. Tải xuống tệp từ máy chủ php
- 6. Xóa tệp máy chủ
- 7. Máy chủ tệp riêng biệt cho trang web php
- 8. Tạo tệp csv bằng php
- 9. Tạo tệp Javascript bằng PHP
- 10. C, cách tạo chủ đề bằng chức năng pthread_create
- 11. Chức năng thành công AJAX trên máy chủ
- 12. IIS7 Tạo thư mục ảo cho các tệp trên máy chủ khác
- 13. Cách tốt nhất để di chuyển tệp từ máy chủ này sang máy chủ khác với PHP là gì?
- 14. Gửi tệp từ máy khách đến máy chủ bằng XMLRPC?
- 15. Hiệu quả để bao gồm các tệp chức năng (bằng PHP)
- 16. Tải lên tệp máy chủ từ xa qua PHP
- 17. Làm cách nào để sao chép tệp từ máy chủ này sang máy chủ khác?
- 18. Xóa các tệp trên máy chủ từ xa
- 19. Cách liệt kê các tệp của thư mục trong một máy chủ khác bằng ssh2
- 20. Làm cách nào để lưu tệp đính kèm email vào máy chủ bằng PHP?
- 21. Cách tạo tệp PDF bằng PHP?
- 22. Cách tạo tệp .json bằng PHP?
- 23. Tạo một Máy chủ Lưu trữ Tệp Bảo mật cho các tệp PDF
- 24. Lưu tệp img từ xa vào máy chủ, với php
- 25. Xóa tệp hình ảnh từ máy chủ
- 26. Cách tạo tệp .BAT để tải xuống tệp từ máy chủ HTTP \ ftp?
- 27. PHP - một open_basedir khác nhau cho mỗi máy chủ ảo
- 28. Truy cập chức năng tĩnh trong các tệp khác
- 29. Tệp đính kèm chức năng mail() của PHP có hỗ trợ một chút bị hỏng trên Windows không?
- 30. Làm cách nào để biết tệp hoàn tất trên máy chủ bằng FTP?
Máy chủ nào là máy chủ? Nền tảng gì? –
Cả hai đều là Centos – Roland