【问题标题】:Shell Command in PHP file : Display the content of a file in a webpagePHP 文件中的 Shell 命令:在网页中显示文件的内容
【发布时间】:2014-11-08 14:27:49
【问题描述】:

我需要一些帮助,如何在 php 文件中执行 shell 命令?关于如何在网页中显示文件的内容。

我测试了这个脚本,它可以工作

<?php
$output = shell_exec('ls /var/www/vhosts/resame');
echo "<pre>$output</pre>";
?>

但是这个脚本,没有显示任何东西。

<?php
$output = shell_exec('cat /var/log/mail.log');
echo "<pre>$output</pre>";
?>

【问题讨论】:

  • 您是否收到任何错误消息(也请检查您的 Web 服务器日志)?试试shell_exec('cat /var/log/mail.log 2&gt;&amp;1')。很可能网络服务器没有权限阅读/var/log/mail.log
  • 将你的 shell 命令修改为 'cat /var/log/mail.log 2>&1' 以将错误也加入到你的网络输出中。
  • 感谢您的回复 :) 它说权限被拒绝。

标签: php shell ubuntu


【解决方案1】:

首先运行此命令(基于您的 apache 用户)

CHMOD 777 /var/log/mail.log

如果apache用户是nobody CHOWN nobody /var/log/mail.log

如果 apache 用户是 www-data CHOWN www-data /var/log/mail.log

然后使用以下内容在网页上显示数据。

<?php
$output = shell_exec('cat /var/log/mail.log 2>&1');
echo "<pre>$output</pre>";
?>

【讨论】:

    【解决方案2】:

    好的@DJ,我还要补充一点,/var/log/mail.log 的权限 777 不是必需的,因为您只是在读取文件内容,权限 644 就足够了。我不需要过度关注将您的公共文件权限更改为 777 的安全隐患。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      相关资源
      最近更新 更多