2013-11-28 95 views
0

我有一个Ubuntu服务器12的新安装。我想要做的是在服务器上的PHP网页上执行landscape-in​​fo命令,所以我可以使用返回的数据,但它赢了由于某种原因跑步。我已经检查Apache的作品,因为我可以看到从服务器的IP地址的网页和检查安全模式关闭使用phpinfo()但它仍然无法显示任何东西。我从来没有自己运行过Apache,并且没有Linux经验。任何想法可能导致这个或什么检查?谢谢。shell_exec不显示任何东西PHP

<?php 
$output = shell_exec('../../usr/bin/landscape-sysinfo'); 
echo "$output"; 
?> 

编辑:

改为:

<?php 
$output = shell_exec('/usr/bin/landscape-sysinfo'); 
echo $output; 
?> 

寻找在Apache的error.log中,我发现了很多:

OSError: [Errno 13] Permission denied: '/var/www/.landscape' 
Traceback (most recent call last): 
    File "/usr/bin/landscape-sysinfo", line 22, in <module> 
    run(sys.argv[1:], reactor) 
    File "/usr/lib/python2.7/dist-packages/landscape/sysinfo/deployment.py", line 96, in run 
    setup_logging() 
    File "/usr/lib/python2.7/dist-packages/landscape/sysinfo/deployment.py", line 83, in setup_logging 
    os.mkdir(landscape_dir) 
    File "/usr/lib/python2.7/dist-packages/landscape/sysinfo/deployment.py", line 83, in setup_logging 
    os.mkdir(landscape_dir) 
+0

您的日志中是否有任何错误? –

+0

*此函数可以在发生错误或程序不产生输出时返回NULL。使用此功能无法检测执行失败。当需要访问程序退出代码时,应使用exec()。*您可能想要验证可执行文件的输出是否有效。在PHP-shell中,可执行文件的行为也会有所不同。 – 2013-11-28 21:18:22

+0

我在用户权限问题上下注 – 2013-11-28 21:18:48

回答

1

看来目录/ var /www/.landscape不存在或不可写。在终端运行以下命令:

mkdir -p /var/www/.landscape && chmod -R og+rwX /var/www/.landscape 

这将使所需的目录,并没有错误,如果它已经存在,然后将更改其权限,递归,成为大家可读/写,如果有任何子他们将可以访问目录以及..

+0

我刚刚得到这个,当我尝试: chmod:更改'/var/www/.landscape'的权限:不允许操作 – burg93

+0

尝试以root用户身份从命令行运行chmod:'sudo chmod -R og + rwX/var/www/.landscape' –

+0

完美!谢谢! – burg93