Hướng dẫn how to run php file on remote server - cách chạy tệp php trên máy chủ từ xa

Tôi đang cố gắng thực thi một tệp PHP từ một máy chủ từ xa như thể tôi đang gõ "Php example.php" vào các máy chủ từ xa. Hiện tại nó tiếp tục cố gắng trả lại cho máy chủ gốc. Tôi đã cố gắng thực hiện trực tiếp từ PHP, NET_SSH2 và thực hiện một .sh. Tôi không chắc mình đang đi đâu. Tôi sẽ cố gắng phá vỡ vấn đề tốt nhất có thể.

Cơ sở dữ liệu

------------------------
|   ID | password      |
------------------------
|   50 | testpassword  |
------------------------

Các tập tin

Máy chủ chính (10.0.0.10): CarryToServer.php, Execpw.php, ExecPW2.php, ExecPW3.php, Execute.php

Máy chủ ứng dụng (10.0.0.20): Grabid.php, Login.php, MakeConfig.php, local_script.php, Carry.txt

Tất cả các quyền là 777

Máy chủ chính

execute.php


carrytoserver.php

login('root', 'serverpassword')) {
    exit('Login Failed');
}


echo $ssh->exec("echo $password > /test/example/carry.txt");
?>

execpw.php

login('root', 'serverpassword')) {
        exit('Login Failed');
    }

    echo $ssh->exec('php /test/example/grabid.php');
?>

Ứng dụng

carry.txt

testpassword

grabid.php


makeconfig.php

 $id, 'password' => "$password");


$json_data = json_encode($return_arr);
file_put_contents("config.json", $json_data);

?>

local_script

#! /bin/bash
echo "php grabid.php"

EXECUTE.php sẽ thực thi carchtoserver.php sẽ mang mật khẩu trên 10.0.0.20 và đặt nó vào Carry.txt. Sau đó, nó sẽ thực thi Execpw.php sẽ thực thi GrabID.php vào ngày 10.0.0.20. Grabid.php sau đó sẽ lấy ID liên quan đến mật khẩu.

Khi nó thực hiện tất cả các 10.0.0.20 này sẽ có $ Mật khẩu và $ ID. Grabid.php sau đó sẽ thực thi MAKECONFIG.php và nó sẽ tạo tệp cấu hình JSON cho ứng dụng.

Hiện tại nó sẽ mang mật khẩu lên 10.0.0.20 và sẽ thực thi Grabid.php nhưng sẽ không tạo tệp JSON hoặc tiếp tục chạy. Nếu tôi thêm mật khẩu $ vào đầu Grabid.php và chạy từ bảng điều khiển 10.0.0.20, nó sẽ chạy.

Nếu tôi thêm Echo "Hi"; Đến cuối Grabid.php và chạy từ đầu, nó sẽ lặp lại "Hi" trên bảng điều khiển máy chủ 10.0.0.10.

Tôi cũng đã thử một vài thứ khác trong tệp EXECPW.php

execpw2.php

login('root', 'serverpassword')) {
    exit('Login Failed');
}

echo $ssh->exec('/test/example/local_script.sh');
?>

execpw3.php


Tất cả cho kết quả tương tự. Tôi xin lỗi vì quá tải thông tin nhưng tôi đang cố gắng cung cấp càng nhiều thông tin càng tốt.

Miễn là urtital_url_fopen được bật trong php.ini, bạn có thể sử dụng URL HTTP và FTP với hầu hết các chức năng lấy tên tệp làm tham số. Ngoài ra, các URL có thể được sử dụng với các câu lệnh bao gồm, bao gồm_once, yêu cầu và yêu cầu_once (phải cho phép_url_include phải được bật cho những điều này). Xem các giao thức và trình bao bọc được hỗ trợ để biết thêm thông tin về các giao thức được PHP hỗ trợ.allow_url_fopen is enabled in php.ini, you can use HTTP and FTP URLs with most of the functions that take a filename as a parameter. In addition, URLs can be used with the include, include_once, require and require_once statements (allow_url_include must be enabled for these). See Supported Protocols and Wrappers for more information about the protocols supported by PHP.

Ví dụ: bạn có thể sử dụng điều này để mở tệp trên máy chủ web từ xa, phân tích đầu ra cho dữ liệu bạn muốn, sau đó sử dụng dữ liệu đó trong truy vấn cơ sở dữ liệu hoặc chỉ đơn giản là xuất bản theo kiểu phù hợp với phần còn lại của trang web của bạn .

Ví dụ #1 Nhận tiêu đề của một trang từ xa


0

Bạn cũng có thể ghi vào các tệp trên máy chủ FTP (miễn là bạn đã kết nối với tư cách là người dùng có quyền truy cập chính xác). Bạn chỉ có thể tạo các tệp mới bằng phương pháp này; Nếu bạn cố gắng ghi đè một tệp đã tồn tại, cuộc gọi fopen () sẽ không thành công.fopen() call will fail.

Để kết nối với tư cách là người dùng không phải là 'ẩn danh', bạn cần chỉ định tên người dùng (và có thể là mật khẩu) trong URL, chẳng hạn như '


1'. (Bạn có thể sử dụng cùng một loại cú pháp để truy cập các tệp qua HTTP khi chúng yêu cầu xác thực cơ bản.)

Ví dụ #2 Lưu trữ dữ liệu trên máy chủ từ xa


2

Ghi chú::

Bạn có thể hiểu ý tưởng từ ví dụ trên rằng bạn có thể sử dụng kỹ thuật này để ghi vào tệp nhật ký từ xa. Thật không may, điều đó sẽ không hoạt động vì cuộc gọi fopen () sẽ thất bại nếu tệp từ xa đã tồn tại. Để thực hiện ghi nhật ký phân tán như vậy, bạn nên xem Syslog ().fopen() call will fail if the remote file already exists. To do distributed logging like that, you should take a look at syslog().

Không có người dùng đóng góp ghi chú cho trang này.

Bạn có thể chạy các tệp PHP trên máy chủ không?

Trên hầu hết các máy chủ, đây là tiện ích mở rộng mặc định cho các tệp PHP, nhưng yêu cầu quản trị viên máy chủ của bạn chắc chắn. Nếu máy chủ của bạn hỗ trợ PHP, thì bạn không cần phải làm bất cứ điều gì. Chỉ cần tạo của bạn. Các tệp PHP, đặt chúng vào thư mục web của bạn và máy chủ sẽ tự động phân tích chúng cho bạn.If your server supports PHP, then you do not need to do anything. Just create your . php files, put them in your web directory and the server will automatically parse them for you.

Php điều khiển từ xa là gì?

"Điều khiển từ xa" là thư viện lớp PHP cho phép bạn điều khiển một thiết bị từ xa một cách có thể thông qua giao diện CLI của nó (thường thông qua SSH hoặc Telnet) hoặc bất kỳ lệnh nào khác thông qua stdin và stdout bằng cách sử dụng mong đợi theo cách dễ sử dụng đối tượng.

Bạn có thể chạy PHP từ dòng lệnh không?

PHP.Lưu ý rằng không có giới hạn nào về các tệp có thể được thực thi;Cụ thể, tên tệp không bắt buộc có a.Phần mở rộng PHP.Vượt qua mã PHP để thực thi trực tiếp trên dòng lệnh.Pass the PHP code to execute directly on the command line.

Tôi có thể chạy mã PHP trong tệp HTML không?

Tuy nhiên, nếu bạn cần đặt mã PHP trong một tệp có.Tiện ích mở rộng HTML, bạn phải thêm một trình xử lý vào tệp .htaccess của bạn.Ví dụ: cùng một mã ở trên có thể được đặt trong một tệp có tên Hello.you must add a Handler to your . htaccess file. For example, the same code above could be placed in a file named hello.