【问题标题】:Running shell script from terminal works but doesn't work when running from PHP shell_exec从终端运行 shell 脚本有效,但从 PHP shell_exec 运行时无效
【发布时间】:2018-07-14 08:56:22
【问题描述】:

我一周前刚开始使用 shell 脚本,所以请放轻松。当我从终端运行create.sh 时,一切正常。但是,当我从 create.php 执行相同的脚本 create.sh 时,它不起作用。

我正在通过访问以下 URL 从 Web 浏览器执行我的 PHP 脚本:http://192.168.8.108:8083/create.php

create.php – 该文件负责运行create.sh 文件

echo shell_exec('/usr/local/panel/bin/create.sh');

create.sh – 此文件在/var/www 下创建一个目录。 权限

#!/bin/bash
sudo mkdir -p /var/www/example.com
  • 所有者:root 访问权限:读写
  • :root 访问权限:只读
  • 公共访问权限:只读

【问题讨论】:

  • 可能是因为从shell_exec()执行shell脚本时环境会不同
  • @ZamronyP.Juhara 您可以提供的任何教程。我对此很陌生,不知道你刚才所说的环境。
  • 如何执行create.phpsudo php create.php ?
  • @ZamronyP.Juhara 我正在通过访问 `192.168.8.108:8083/create.php 从 Web 浏览器执行它
  • 哪个用户曾经执行create.php

标签: php shell centos7


【解决方案1】:

您需要确保运行 php 脚本的用户具有正确的权限。如果脚本create.phpapache 运行,那么您需要确保apache 用户对/var/www 目录具有写入权限。

【讨论】:

  • 非常感谢您的帮助。我学到了一些新东西。
猜你喜欢
  • 2014-03-05
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
相关资源
最近更新 更多