【问题标题】:exec() doesn't work as expectedexec() 没有按预期工作
【发布时间】:2013-11-13 07:48:51
【问题描述】:

我正在使用php 文件中的exec 运行脚本。在 scipt 中创建了一个文件夹和一个文件。该文件夹创建良好,但脚本完成后仍为空。 我查看了exec 调用的返回值,一切似乎都正确,所以我不确定这是否是permissions 问题(如果是这种情况,我不会得到permission denied 吗?)。 无论如何,如果是权限问题'请告诉我如何为www-data 用户授予正确的权限。

[编辑]: 我已经玩过这个脚本了,我看到它可以在那个文件夹中创建文件。问题是,脚本创建我需要的文件是这样的:sqlite3 myFile.db < mySql.sql,所以问题可能就在那里。有什么想法吗?

【问题讨论】:

  • 该脚本的文件权限和所有者(与ls -ls 相同)是什么?如果它是一个 shell 脚本,您可以使用 logger 在其中添加日志消息
  • 它可以制作文件夹,它可以制作文件。显示代码:)
  • exec 将在 php.ini 中关闭,请检查日志文件。
  • 让你的脚本输出is_writable('your dir')的结果,方便检查脚本是否真的能写。
  • 如果您发布用于编写文件的代码,这将有所帮助..

标签: php linux apache exec


【解决方案1】:

创建文件夹后,请使用以下代码授予权限

chmod("完整文件夹路径", 0777);

之后在其中创建文件。它会起作用的。

【讨论】:

  • 只有在 www-data 用户实际上有更改文件夹权限的权限时才有效,它可能没有,因为它可能也可以在其中写入..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2020-03-18
  • 2012-06-14
  • 2014-11-15
  • 1970-01-01
  • 2012-07-02
相关资源
最近更新 更多