【问题标题】:executing a script via php exec which creates a file on the server通过 php exec 执行脚本,在服务器上创建一个文件
【发布时间】:2015-04-02 16:18:23
【问题描述】:

我有一个 php 脚本,它调用如下的 shell 脚本 -

#!/bin/bash
timestamp=$(date +"%d-%m-%Y  %H:%M:%S")
echo $timestamp >> results

php 脚本 -

<?php

$mycmd = exec('/bin/bash exectest.sh',$op,$er);
var_dump($mycmd);
var_dump($op);
echo $er."\n";

?>

php 脚本为 $er 返回错误代码 1,但是当我尝试将 shell 脚本修改为仅打印而不是写入文件时。然后 PHP 脚本返回 0 并成功。

关于我需要在哪里解决此问题的任何想法? 我尝试提供脚本的完整路径,当我尝试使用 python 脚本代替 shell 脚本时也是如此。

【问题讨论】:

    标签: php bash shell exec


    【解决方案1】:

    您的观察表明这很可能是权限问题,例如运行 PHP 的用户对其当前工作目录中的 results 文件或目录本身(如果该文件尚不存在)没有写权限。

    【讨论】:

      【解决方案2】:

      它恰好在 AFS 机器上运行,因此需要 httpd 的 afs 权限。

      fs sa . http write
      

      对问题进行了分类。

      【讨论】:

        最近更新 更多