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

时间:2011-09-27 15:55:22

标签: php curl

如果我尝试在脚本中运行它:

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

我明白了:

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

使用shell_exec:

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

如何将curl作为shell命令行运行?

这些错误发生在Linux上,在我的Mac上工作。

4 个答案:

答案 0 :(得分:5)

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

php -dsafe_mode=Off test.php

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

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

答案 1 :(得分:4)

在php.ini文件中禁用safe mode。还要检查你是否安装了卷发。

safe_mode = Off

答案 2 :(得分:1)

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

which curl

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

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

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

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

答案 3 :(得分:1)

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