如何从另一台服务器调用 PHP?

如何从另一台服务器调用 PHP?

如何使用 shell 脚本从另一台服务器调用 PHP?我有一个 PHP 和 shell 脚本,这两个文件存储在不同的服务器中。

我有这个脚本:

#!/bin/bash

php "http://example.com/csv_import.php"

但是当我手动运行此命令时,出现错误:Could not open input

如何使用 shell 脚本正确调用 PHP?

答案1

你想去哪里执行PHP 脚本?如果它在其他服务器上,那么你只需要点击相应的 URL:

curl "http://example.com/csv_import.php"

或者,如果它需要 POST 请求,

curl -XPOST "http://example.com/csv_import.php"

这相当简单。


然而,如果你想下载一个 PHP 脚本并运行它服务器,你的情况会稍微复杂一些。首先,你必须确保远程服务器发送实际的脚本,而不是像正常情况那样运行脚本并发送结果(或者,也许您有一个脚本,在处理时会输出另一个脚本)。通常,您可以通过在 Web 服务器中禁用 PHP 解析或将文件扩展名更改为非标准扩展名(可能只是.txt)来实现这一点。

现在您要下载该脚本,并在本地计算机上使用 PHP 可执行文件运行它。首先,通过运行curl上述命令并检查输出是否确实是 PHP 脚本本身来检查它是否有效。如果您已经实现了这一点,那么可以简单地执行如下操作

curl "http://example.com/csv_import.php.txt" | php

应该可以解决问题。

棘手的部分在另一端。

如果您无法在另一端禁用​​ PHP 解析,您可能能够通过其他方式(例如scprsync)从那里获取 PHP 文件,然后在本地执行它。

答案2

您可以使用任何命令行 HTTP 客户端(如curl或)wget发出 HTTP 请求。

答案3

你可以试试

#!/usr/local/bin/php

即,如果 php 的第一个参数看起来不像一个选项,那么它就是要执行的 PHP 文件的名称,而 -q 仅仅是 CGI。

相关内容