如果我尝试在脚本中运行它:
<?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上工作。
答案 0 :(得分:5)
问题是PHP
安全模式已启用,最好使用完整路径运行cURL
(感谢ghostJago和amosrivera)。使用以下命令运行脚本修复了问题:
php -dsafe_mode=Off test.php
我不想更改php.ini
,但它也可能是一个解决方案。
shell_exec
告诉安全模式问题,但exec
只是告诉您错误的消息,希望我同时尝试了exec
和shell_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/