Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP exec()可以在命令行中工作,但不能在web中工作_Php_Exec_Raspbian - Fatal编程技术网

PHP exec()可以在命令行中工作,但不能在web中工作

PHP exec()可以在命令行中工作,但不能在web中工作,php,exec,raspbian,Php,Exec,Raspbian,我试图在PHP脚本中使用jarun的“”,以便搜索YouTube并找到第一个结果的URL。我正在执行的命令是googler--np--json-C-n1-wyoutube.com-x,它在我的本地机器上运行得非常好。这是我的密码: <?php exec("googler --np --json -C -n 1 -w youtube.com -x thomas the dank engine", $results); var_dump($results); ?> 以及 su - pi

我试图在PHP脚本中使用jarun的“”,以便搜索YouTube并找到第一个结果的URL。我正在执行的命令是
googler--np--json-C-n1-wyoutube.com-x
,它在我的本地机器上运行得非常好。这是我的密码:

<?php
exec("googler --np --json -C -n 1 -w youtube.com -x thomas the dank engine", $results);
var_dump($results);
?>
以及

su - pi -c 'googler --np --json -C -n 1 -w youtube.com -x thomas the dank engine'
这两个都不起作用。这和谷歌有关系吗?我做错了什么

2>&1
添加到命令时,我会收到以下错误消息:

检测到标准输出编码“ascii”。谷歌要求utf-8正常工作。错误的编码可能是由于非UTF-8区域设置或不正确的Python编码造成的。(对于记录,您的区域设置语言为,区域设置编码为;未设置PythonoEncoding。)请设置UTF-8区域设置(例如en_US.UTF-8)或将PythonoEncoding设置为UTF-8


必须从php.ini文件中的
disable_functions
参数中删除
exec
,以安装php服务器模块(与CLI安装分开)。服务器模块默认情况下通常会禁用它。

必须从php.ini文件中的
disable_functions
参数中删除
exec
,以便安装php服务器模块(与CLI安装分开)。默认情况下,服务器模块通常会禁用它。

请尝试放置:

putenv("PYTHONIOENCODING=utf-8");
在调用
exec()
之前在脚本中
googler
显然需要设置区域设置或此环境变量。

尝试放置:

putenv("PYTHONIOENCODING=utf-8");

在调用
exec()
之前在脚本中
googler
显然需要设置区域设置或此环境变量。

可能
googler
不在其
$PATH
中,请尝试使用完整路径名。在发送到
exec()
的命令末尾,使用
2>&1
捕获错误输出。PHP给您的实际错误是什么?“所以我给了那个用户没有密码的完全sudo权限“-这永远不是做事的方式!登录时,在
~/.profile
/etc/profile
中设置环境变量。Web服务器不以交互方式登录,因此不执行概要文件脚本。谷歌的
googler
脚本显然依赖于语言环境设置,而这些变量没有设置。尝试放置
putenv(“LC_ALL=en_US.UTF-8”)exec()
之前,请在PHP脚本中使用code>。可能
googler
不在其
$PATH
中,请尝试使用完整路径名。在发送到
exec()
的命令末尾,使用
2>&1
捕获错误输出。PHP给您的实际错误是什么?“所以我给了那个用户没有密码的完全sudo权限“-这永远不是做事的方式!登录时,在
~/.profile
/etc/profile
中设置环境变量。Web服务器不以交互方式登录,因此不执行概要文件脚本。谷歌的
googler
脚本显然依赖于语言环境设置,而这些变量没有设置。尝试放置
putenv(“LC_ALL=en_US.UTF-8”)exec()
之前,请在PHP脚本中执行code>。我已经成功地执行了
exec(“whoami”)
,因此这不是问题所在。对于错误的答案,我深表歉意。根据提供的信息,我给出了我的最佳猜测。我已经成功地执行了
exec(“whoami”)
,因此这不是问题所在。对于错误的答案,我深表歉意。根据提供的信息,我做出了最好的猜测。