Drupal 7 - file.inc - file_put_contents(临时:// fileXXXXXX):无法打开流

时间:2015-03-20 19:33:46

标签: php drupal drupal-7 backend

使用Mac OS X Yosemite,Apache,PHP 5.5.14,MySQL 5.6.19,Drupal 7.32

由于文件路径错误,Drupal无法写入。错误的文件路径是temporary://fileXXXXXX。我无法理解为什么Drupal无法将temporary://转换为/tmp

我已经通过Drupal管理界面配置了临时文件目录,并在数据库中确认了它的修改...

SELECT * FROM variable WHERE name LIKE '%temporary_path';
+---------------------+------------+
| name                | value      |
+---------------------+------------+
| file_temporary_path | s:4:"/tmp" |
+---------------------+------------+

...并清除缓存以防万一;然而,无济于事。我还确认了/tmp的权限,以防万一:drwxrwxrwt

同样,当使用我的数据库的新副本(生产中的SQL转储)通过git 切换回我的主分支时 - 问题仍然存在。

错误格式如下......

/.../includes/file.inc:1941 file_put_contents(temporary://fileXXXXXX): failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed

该问题与我的本地环境隔离,并且不会影响任何共享环境;然而,正在阻碍我的工作进展。任何建议都非常感谢。谢谢。

2 个答案:

答案 0 :(得分:2)

我去了admin / config / media / file-system并保存了配置。然后到admin / config / development / performance并清除所有缓存。 Voila错误消息消失了。

答案 1 :(得分:0)

在通过多个日志进行单调乏味之后,我发现了这条消息......

File temporary://filewFxsrd could not be copied, because the destination directory public://css is not configured correctly.

...知道我的公共文件路径是sites/my-site/files,我发现该目录不存在,这导致我找到了这个解决方案......

cd sites/my-site; mkdir files; chmod a+rwx files

...这是我的本地环境,files目录列在我们的.gitignore中,所以我不关心它的安全性;虽然,我不清楚如何删除目录。

谢谢大家的建议。