【问题标题】:Bash script works on ssh but not in phpBash 脚本适用于 ssh 但不适用于 php
【发布时间】:2013-03-20 19:46:12
【问题描述】:

我有一个 bash 脚本 (myscript.sh),它在 ssh 控制台上使用用户“www-data”运行,但是当我在我的 php 脚本中使用“exec”运行此脚本时,该脚本不起作用。

有什么问题? “www-data” 具有外壳“/bin/bash”,当我设置为“/bin/sh”时,脚本也不起作用。

【问题讨论】:

  • 您必须引用登录用户的环境。此外,请确保脚本中使用的所有路径都是绝对路径。没有看到脚本,很难猜出会出现什么问题。
  • 相对于 php 文件的 bash 脚本在哪里?

标签: linux bash ssh debian


【解决方案1】:

注意可执行模式

chmod +x myscript.sh

如果脚本在路径中。否则调用 myscript.sh 时使用完整路径

【讨论】:

  • 我已经检查过了,但它并没有改变任何东西。
【解决方案2】:

我知道这样做有一种“不安全”的方式,我曾经遇到过类似的问题,您也可以更改文件的所有权限 - 在命令行类型中:

首先复制您的原始文件 - 以防万一,所以我们不会进一步搞砸:

    cp myscript.sh myscript2.sh

    chmod 755 myscript2.sh

在命令行输入:

    chown www-data:www-data myscript2.sh

在 PHP 脚本文件中尝试使用 myscript2。 (我记得还发现与此类似的问题与以 root 身份运行 Web 服务器(我假设您使用 Apache)有关。)

顺便问一下,OP,您查看过错误日志吗?对于不允许的内容,可能会有有用的建议。

【讨论】:

  • 为什么要将权限设置为777755 怎么了?
  • 我只是打字并没有想到,也许我应该改变,我认为你的意思是OP只需要给'用户'访问'rwx'和g-rx,o-rx,许可,通过那条评论?
  • 对。向除所有者之外的任何人授予写访问权是没有意义的(并且,取决于系统,相当危险)。 (我本来可以更清楚的。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2012-02-16
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多