2013-11-25 58 views
0

我试图使用一个PHP文件来调用一个shell脚本。第一次。从PHP脚本在linux中调用hello_word

#Shell script: 
#!/bin/bash 
echo "Hello, World!" 


//PHP 
echo "call shell"; 
$output = shell_exec('get_logs.sh'); 
echo "<pre>".$output."</pre>"; 

在PHP页面上,我看到打印的“call shell”。但没有你好的世界,没有错误。我可以在某处看到这些错误吗?或者我有一个我不知道的语法错误?

+0

适合我。也许你可以尝试之前添加/ bin/bash。 – mcuadros

+0

@mcuadros那条线是做什么的?我认为这是一个评论。它是否告诉程序在哪里寻找帮助? – 1252748

+0

我猜''shell_exec()'已经在你的web服务器上被禁用了。什么给你'var_dump(function_exists('shell_exec'));'? – hek2mgl

回答

0

我想你可能必须指定一个完整的shell脚本路径。

/usr/local/bin/get_logs.sh

但它取决于你在哪里把它。

确保脚本标记为可执行 即chmod +x /usr/local/bin/get_logs.sh

确保#!/bin/bash是文件中的第一行,即删除“#Shell脚本:”


托马斯,你的脚本应该简单地包含:

#!/bin/bash 
echo "Hello, World!" 

创建它之后。用执行权限标记它。

即在终端中运行“使用chmod + X [文件名]”

其中,文件名是脚本,其可以包括该路径也的名称。

+0

好吧,听起来不错。所以我的shell脚本应该是'#!/ bin/bash chmod + x /usr/local/bin/get_logs.sh 在三个独立的行上回显'hello world'?谢谢! – 1252748

+0

而我的PHP是在同一个目录中的两行:'<?php echo“call shell”; $ output = shell_exec('/ opt/httpd/htdocs/get_logs.sh'); ?>' – 1252748

+0

'exec('whoami')'工作。 – 1252748

0

您可能需要检查为PHP/Apache分配的用户是否对该文件执行访问。

+0

'exec('whoami')'工作。 – 1252748

+0

是的,这只是表明你有shell访问权限。我指的是您的gt_logs.sh的权限/所有权。它拥有什么权限以及谁拥有该文件? –

+0

看起来像这样:'-rw -r - r - ' – 1252748