shell_exec没有显示任何PHP

时间:2013-11-28 21:16:22

标签: php linux apache

我有一个新安装的Ubuntu Server 12.我想要做的是在驻留在服务器上的php网页上执行landscape-in​​fo命令,这样我就可以使用返回的数据,但它赢得了#39;由于某种原因运行。我已经检查过apache工作,因为我可以看到来自服务器IP地址的网页,并且使用phpinfo()关闭了检查安全模式,但它仍然无法显示任何内容。我自己从未运行过apache并且没有Linux经验。什么可能导致这个或什么检查的想法?谢谢。

<?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)

1 个答案:

答案 0 :(得分:1)

目录/var/www/.landscape似乎不存在或不可写。在终端中运行:

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

这将使所需目录没有错误(如果它已经存在)然后将递归地更改其权限,使其对每个人都是可读/可写的,如果它有任何子目录,它们也可以被访问。