Hướng dẫn how to run php file from another server - cách chạy tệp php từ máy chủ khác

Tôi có hai tệp PHP được đặt trên các máy chủ khác nhau, một ở http://www.mysite.com/main.php, một tệp còn lại tại http://www.sample.com/includeThis.php.

Tôi muốn bao gồm tệp thứ hai từ tệp thứ nhất.

Nội dung của tệp thứ hai trông như thế này:

Và tệp đầu tiên:

Có cách nào tôi có thể làm điều này không?

Hướng dẫn how to run php file from another server - cách chạy tệp php từ máy chủ khác

Nikic

99.5K36 Huy hiệu vàng188 Huy hiệu bạc224 Huy hiệu đồng36 gold badges188 silver badges224 bronze badges

Khi được hỏi ngày 2 tháng 5 năm 2010 lúc 7:41May 2, 2010 at 7:41

2

Không, cài đặt này bị vô hiệu hóa/không được phép theo mặc định trong hầu hết các máy chủ web (php.ini) để bạn không thể sử dụng include để bao gồm các tệp từ địa chỉ từ xa vì lý do bảo mật.security reasons.

Nếu bạn vẫn muốn cho phép đưa vào các tệp từ xa, chỉ thị allow_url_include phải được đặt thành On trong php.iniinclusion of remote files, the directive allow_url_include must be set to On in php.ini

Nhưng một lần nữa, đó là một thực tế xấu, theo quan điểm định hướng bảo mật; và, vì vậy, nó thường bị vô hiệu hóa (thực sự tôi chưa bao giờ thấy nó được bật)

Nếu bạn muốn đọc nội dung của một tệp từ xa, bạn có thể sử dụng hàm file_get_contents thay thế nhưng điều này sẽ được trả về dưới dạng mã đánh dấu HTML thuần túy, sẽ không có bất kỳ mã phía máy chủ nào., you can use the file_get_contents function instead BUT this will be returned as pure HTML markup code, there won't be any server-side code.

Đã trả lời ngày 2 tháng 5 năm 2010 lúc 7:45May 2, 2010 at 7:45

Hướng dẫn how to run php file from another server - cách chạy tệp php từ máy chủ khác

SarfrazsarfrazSarfraz

371K75 Huy hiệu vàng529 Huy hiệu bạc575 Huy hiệu Đồng75 gold badges529 silver badges575 bronze badges

3

Sau khi đọc bình luận của bạn - trong đó bạn nói rằng bạn muốn làm điều này như một phương tiện bảo vệ sao chép - câu trả lời của tôi là một sự nhấn mạnh, hãy quên nó đi. Đây không phải là cách bảo vệ bản sao hoạt động.forget it. This is not how copy protection works.

Điều duy nhất bạn có thể làm bằng cách sử dụng include() là tìm nạp mã nguồn từ nơi khác để được giải thích trên trình thông dịch cục bộ. Điều này rất dễ bị bẻ khóa: một khách hàng độc hại sẽ phải

0 mã được tìm nạp.

Thực hiện tập lệnh từ xa từ xa (trên máy chủ của bạn) sẽ không giúp bạn, bởi vì trạng thái của tập lệnh đó (biến, chức năng ...) sẽ không xuất hiện trong tập lệnh bạn gọi nó từ đó.

Các tùy chọn bạn có là:

  • Biên dịch / mã hóa / làm mờ tập lệnh, có thể yêu cầu một mô -đun PHP cụ thể để thực thi nó (rất nhiều câu hỏi về điều này trên SO)

  • Tạo một dịch vụ web thực (ví dụ: sử dụng SOAP) chạy trên máy chủ của bạn và thực hiện các hoạt động được yêu cầu

Tuy nhiên, đối với những gì nó có giá trị, cá nhân tôi không mua, cũng không khuyến nghị cho khách hàng mua, các tập lệnh được mã hóa và tập lệnh cần "điện thoại về nhà" để làm việc. Tôi tin vào việc bảo vệ sản phẩm của bạn thông qua thỏa thuận cấp phép nghiêm ngặt (sẽ khiến khách hàng kinh doanh sợ hãi khi mua sản phẩm của bạn, vì những rủi ro của việc bị bắt bị đánh cắp là quá đắt.)

Đã trả lời ngày 8 tháng 8 năm 2010 lúc 13:21Aug 8, 2010 at 13:21

Hướng dẫn how to run php file from another server - cách chạy tệp php từ máy chủ khác

PekkapekkaPekka

435K137 Huy hiệu vàng965 Huy hiệu bạc1079 Huy hiệu Đồng137 gold badges965 silver badges1079 bronze badges

0

Tôi tự hỏi nếu OP từng tìm một giải pháp cho chính mình. Theo như tôi biết, cách duy nhất để hoạt động, điều này sẽ là có tất cả các tài khoản khách hàng của bạn trên cùng một máy chủ với các tập lệnh bạn muốn bao gồm - Tôi đã thực hiện một cái gì đó tương tự:

/path_to_myserver_root/httpdocs/clents/client01/wwwroot/scripta.php /path_to_myserver_root/httpdocs

Sau đó: /path_to_myserver_root/privatefiles/myapp/scriptb.php

wwwroot là nơi mỗi điểm miền máy khách.

Scripta.php có một số logic kinh doanh sau đó bao gồm scriptb.php cho các chức năng của nó với đường dẫn đầy đủ ở trên:

require('/path_to_myserver_root/privatefiles/myapp/scriptB.php')

Scriptb.php cư trú trong một DIR được bảo vệ riêng trên máy chủ, không thể truy cập được bởi HTTP và không thể vượt qua các máy khách.

Bây giờ hãy quan tâm đến bạn, lý do của tôi để thực hiện việc này là duy trì tính nhất quán của phiên bản trên nhiều tài khoản, không giữ lại một số mã PHP ma thuật độc quyền từ khách hàng của tôi - nhưng tôi cho rằng nó có thể được thực hiện cho mục đích đó.

Meh, ymmv.

Đã trả lời ngày 24 tháng 5 năm 2012 lúc 3:43May 24, 2012 at 3:43

Khi bạn đang cố gắng đi qua các tên miền như bạn đã đề xuất, bạn không thực sự bao gồm một tệp ngồi đó sẵn sàng để thực hiện - quá trình này là khác nhau. Máy cần phải mang lại tệp qua HTTP, đó không phải là câu nói bao gồm tất cả.

Ngoài ra, nếu bạn đang lưu trữ được chia sẻ, PHP thường được cấu hình để ngăn bạn ra khỏi miền của riêng bạn.

Nếu bạn không bị hạn chế này, một giải pháp có thể là sử dụng PHP để sao chép lại một bản sao của tệp từ máy chủ khác và sau đó đưa nó vào khi nó ngồi trong miền của bạn. Một apporach khác có thể là viết một kịch bản "triển khai" một chút sao chép nó ở mọi nơi cần thiết bất cứ khi nào bạn thực hiện thay đổi ...

Hi vọng điêu nay co ich...

Martin

Đã trả lời ngày 2 tháng 5 năm 2010 lúc 7:49May 2, 2010 at 7:49

Martin Milanmartin MilanMartin Milan

6.3102 Huy hiệu vàng31 Huy hiệu bạc44 Huy hiệu đồng2 gold badges31 silver badges44 bronze badges

3

Đổi tên cái đầu tiên thành.
then think twice, are you sure you need cross-domain include

Đã trả lời ngày 2 tháng 5 năm 2010 lúc 7:50May 2, 2010 at 7:50

Hướng dẫn how to run php file from another server - cách chạy tệp php từ máy chủ khác

Ý thức chung thông thường của bạnYour Common Sense

156K39 Huy hiệu vàng208 Huy hiệu bạc331 Huy hiệu Đồng39 gold badges208 silver badges331 bronze badges

0

Sử dụng file_get_contents, để mở tệp, nối nó vào tệp thứ hai như vậy:

$secondFile = file_get_contents('http://www.sample.com/includeThis.php');
file_put_contents('your_file', $secondFile, FILE_APPEND);

Điều này sẽ hoạt động nếu bạn muốn đặt nó ở cuối tệp của bạn. Chỉ chỉ thực hiện một bao gồm trên tập tin của bạn.

Dù sao, như tôi đã nói, đây là IMO rủi ro và nguy hiểm, đặc biệt nếu bạn không chắc chắn về nội dung mà nó có bên trong nó.

Ngoài ra, your_file của bạn sẽ cần phải là một đường dẫn máy chủ thực tế, không phải là URL.

Đã trả lời ngày 2 tháng 5 năm 2010 lúc 7:57May 2, 2010 at 7:57

SologhostsologhostSoLoGHoST

2.5837 Huy hiệu vàng29 Huy hiệu bạc51 Huy hiệu Đồng7 gold badges29 silver badges51 bronze badges

1

Làm cách nào để chạy một tệp PHP từ một tệp khác?

Có thể chèn nội dung của một tệp PHP vào tệp PHP khác (trước khi máy chủ thực thi nó), với câu lệnh bao gồm hoặc yêu cầu. Các câu lệnh bao gồm và yêu cầu là giống hệt nhau, ngoại trừ khi thất bại: yêu cầu sẽ tạo ra một lỗi nghiêm trọng (e_compile_error) và dừng tập lệnh.with the include or require statement. The include and require statements are identical, except upon failure: require will produce a fatal error (E_COMPILE_ERROR) and stop the script.

Làm thế nào bao gồm tệp PHP trong một máy chủ khác?

Sử dụng File_Get_Contents, để mở tệp, nối nó vào tệp thứ hai như vậy: $ secondFile = file_get_contents ('http://www.sample.com/includethis.php');file_put_contents ('your_file', $ secondFile, file_append);Điều này sẽ hoạt động nếu bạn muốn đặt nó ở cuối tệp của bạn. like so: $secondFile = file_get_contents('http://www.sample.com/includeThis.php'); file_put_contents('your_file', $secondFile, FILE_APPEND); This will work if you want to put it at the end of your file.

Chúng ta có thể chạy tệp PHP mà không cần máy chủ cục bộ không?

Bạn có thể tạo một tập lệnh PHP để chạy nó mà không cần bất kỳ máy chủ hoặc trình duyệt nào.Bạn chỉ cần trình phân tích cú pháp PHP để sử dụng nó theo cách này.Loại sử dụng này là lý tưởng cho các tập lệnh thường xuyên được thực hiện bằng cron (trên *Nix hoặc Linux) hoặc Trình lập lịch tác vụ (trên Windows).Các tập lệnh này cũng có thể được sử dụng cho các tác vụ xử lý văn bản đơn giản.. You only need the PHP parser to use it this way. This type of usage is ideal for scripts regularly executed using cron (on *nix or Linux) or Task Scheduler (on Windows). These scripts can also be used for simple text processing tasks.

Bạn có thể chạy một tệp PHP trong trình duyệt không?

Nếu bạn muốn chạy một tệp PHP trong trình duyệt trên máy tính của riêng bạn, bạn sẽ cần thiết lập một ngăn xếp phát triển PHP.Bạn sẽ cần ít nhất PHP, MySQL và máy chủ như Apache hoặc Nginx.you'll need to set up a PHP development stack. You'll need at least PHP, MySQL, and a server like Apache or Nginx.