【问题标题】:php exec python script that writes filephp exec 写入文件的python脚本
【发布时间】:2014-04-08 16:06:03
【问题描述】:

我需要执行一个在同一目录中写入文件的 python 脚本。

test.py:

print 'Hi! I was executed'

test2.py:

filename = 'sample.txt'
target = open(filename,'a')
target.write("Something Something")
target.close()

PHP 脚本:

<?
    exec('python test.py',$output1,$ret1);
    exec('python test2.py',$output2,$ret2);
?>

第一个 exec 工作正常,但第二个脚本没有,返回 var $ret2 为 1。 这两个命令在终端中都可以正常工作。我想这是一个权限问题,因为 php 脚本作为“nobody”执行。

提前致谢

【问题讨论】:

  • 尝试为 filename = 'sample.txt' 提供完整路径
  • like filename = '/home/pranjal/sample.txt'
  • 是的,现在工作正常。谢谢!
  • 好的,我会添加这个作为答案然后
  • @SajithNair 我这里还有一个问题stackoverflow.com/questions/22230525/…

标签: php permissions exec file-permissions


【解决方案1】:

我会考虑使用 COM:

<?php
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("[Your command here]", 0, false); 
?>

请注意,这不会在 Linux 服务器中运行奇迹。

另外请考虑您允许您的脚本执行代码,请确保它在需要时是安全的:)

escapeshellarg()
escapeshellcmd() 

将删除您不想运行的命令。

【讨论】:

    【解决方案2】:

    尝试为filename = 'sample.txt' 提供完整路径

    例如

    filename = '/home/pranjal/sample.txt'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2016-08-17
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      相关资源
      最近更新 更多