如何在 PHP 中将curl 作为 shell 命令行运行
如果我尝试在脚本中运行此命令:
<?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 上正常。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
问题是
PHP
安全模式已开启,最好使用完整路径来运行cURL
(感谢 GhostJago 和 amosrivera)。使用以下命令运行脚本修复了问题:我不想更改 php.ini,但这也可能是一个解决方案。
shell_exec
告诉您安全模式问题,但是exec
只是告诉您错误消息,希望我尝试了exec
和shell_exec
>。The issue is that
PHP
safe mode is on and it is better to use the full path to runcURL
(thanks ghostJago and amosrivera). Running the script with the following command fixed the issue:I do not want to change the
php.ini
but it could be a solution too.shell_exec
tells the safe mode problem, butexec
just tell you an wrong message, hopefully I tried bothexec
andshell_exec
.在 php.ini 文件中禁用
安全模式
。另请检查您是否安装了curl。Disable
safe mode
in your php.ini file. Also check if you do have curl installed.要将 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/
在命令行中,执行以下操作:
这将为您提供curl 程序的绝对路径。
然后仔细检查您的 php.ini 中是否有
safe_mode = Off
。完成此操作后,将代码更改为:
at the commandline, do this:
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: