PHP: Удаленная функция Вызов и возврат результата?

Я не очень разбираюсь в PHP. Я хочу знать, как общаться между двумя веб-серверами. Для разрешения (с 1-го сервера) запустите функцию (запрос) на удаленном сервере. И верните результат на 1-й сервер.

На самом деле тема будет:
Web Server (1) —————-> Web Server (2) —————> Database Server
Web Server (1) <—————- Web Server (2) <————— Database Server

Query Function() будет находиться только на Web Server (2) . Затем мне нужно запустить эту query function() удаленно с Web Server (1) .

Что он звонит? И возможно ли это?

Related of "PHP: Удаленная функция Вызов и возврат результата?"

Да.

Хорошим способом, который я могу придумать, было бы отправить запрос на второй сервер по URL-адресу. В параметрах GET (или POST) укажите, какой метод вы хотите вызвать, и (для безопасности) некоторый хэш, который изменяется со временем. Хеш там, чтобы гарантировать, что сторонняя сторона не может выполнить функцию произвольно на втором сервере.

Чтобы отправить запрос, вы можете использовать cURL:

 function get_url($request_url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $request_url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); return $response; } 

Это отправляет запрос GET. Затем вы можете использовать:

 $request_url = 'http://second-server-address/listening_page.php?function=somefunction&securityhash=HASH'; $response = get_url($request_url); 

На вашем втором сервере настройте файл listening_page.php (с любым именем файла, который вам нравится, конечно), который проверяет запросы GET и проверяет целостность запроса (т. Е. Хеш, правильные и действительные параметры).

Вы можете сделать это, используя API. создайте страницу на втором сервере, который принимает переменные и связывается с сервером с помощью этих варов (в зависимости от того, что вам нужно). и стандартный ответ с этой страницы должен быть либо JSON, либо XML. затем прочитайте это с сервера 1, запросив этот файл и получив ответ со второго сервера.

* ПРИМЕЧАНИЕ, если это частный файл, убедитесь, что вы используете метод проверки подлинности, чтобы пользователи не могли получить доступ к файлу

То, что вы пытаетесь сделать, определенно возможно. Вам нужно будет настроить какой-то api, чтобы сервер мог сделать запрос на сервер 2.

Я предлагаю вам читать SOAP и REST api

http://www.netmagazine.com/tutorials/make-your-own-soap-api

Как правило, вы используете что-то вроде CURL, чтобы связаться с сервером 2 с сервера 1.

Google завитка, и вы должны быстро получить представление.

Его будет нелегко дать вам полное решение, поэтому я надеюсь, что это подталкивание в правильном направлении полезно.