Skip to main content
 首页 » 编程设计

php之shell_exec 不显示任何 PHP

2026年04月06日40dudu

我新安装了 Ubuntu Server 12。我想做的是在驻留在服务器上的 php 网页上执行 landscape-in​​fo 命令,这样我就可以使用返回的数据,但它不会运行一些原因。我检查了 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) 

请您参考如下方法:

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

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

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