如何在 PHP 中将curl 作为 shell 命令行运行

发布于 2024-12-06 12:28:47 字数 415 浏览 0 评论 0 原文

如果我尝试在脚本中运行此命令:

<?php exec("curl http://ww.google.com") ?>

我得到:

-bash-3.2$ php test.php 
sh: /curl: No such file or directory

using shell_exec:

PHP Warning:  shell_exec(): Cannot execute using backquotes in Safe Mode...

How can I run curl as shell command line?

这些错误发生在 Linux 上,在我的 mac 上正常。

If I try to run this inside a script:

<?php exec("curl http://ww.google.com") ?>

I get:

-bash-3.2$ php test.php 
sh: /curl: No such file or directory

using shell_exec:

PHP Warning:  shell_exec(): Cannot execute using backquotes in Safe Mode...

How can I run curl as shell command line?

Those errors are happening on Linux, on my mac works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

猫性小仙女 2024-12-13 12:28:47

问题是 PHP 安全模式已开启,最好使用完整路径来运行 cURL(感谢 GhostJago 和 amosrivera)。使用以下命令运行脚本修复了问题:

php -dsafe_mode=Off test.php

我不想更改 php.ini,但这也可能是一个解决方案。

shell_exec 告诉您安全模式问题,但是 exec 只是告诉您错误消息,希望我尝试了 execshell_exec >。

The issue is that PHP safe mode is on and it is better to use the full path to run cURL (thanks ghostJago and amosrivera). Running the script with the following command fixed the issue:

php -dsafe_mode=Off test.php

I do not want to change the php.ini but it could be a solution too.

shell_exec tells the safe mode problem, but exec just tell you an wrong message, hopefully I tried both exec and shell_exec.

失与倦" 2024-12-13 12:28:47

在 php.ini 文件中禁用安全模式。另请检查您是否安装了curl。

safe_mode = Off

Disable safe mode in your php.ini file. Also check if you do have curl installed.

safe_mode = Off
许一世地老天荒 2024-12-13 12:28:47

要将 bash 命令(就像您可以从 chrome-dev-tools 复制)转换为 php,请看一下: https://incarnate.github.io/curl-to-php/

To convert from an bash command (like you can copy from chrome-dev-tools) to php take a look at this: https://incarnate.github.io/curl-to-php/

oО清风挽发oО 2024-12-13 12:28:47

在命令行中,执行以下操作:

which curl

这将为您提供curl 程序的绝对路径。

然后仔细检查您的 php.ini 中是否有 safe_mode = Off

完成此操作后,将代码更改为:

<?php exec("path/you/got/from/which/curl http://www.google.com") ?>  

at the commandline, do this:

which curl

This will give you the absolute path to the curl program.

Then double check that safe_mode = Off is in your php.ini.

When you've done this, change your code to:

<?php exec("path/you/got/from/which/curl http://www.google.com") ?>  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文