无法写入文件

时间:2014-02-20 18:48:40

标签: php azure

网站在PHP下运行。使用Smarty 3.1.x

网站工作正常,大约半年没有任何变化!大约2-3周前,它开始收到错误日志:

2014-02-21 0:22:19 - CRIT --> unable to write file D:\home\site\wwwroot\/include/smarty/templates_c\bc3a2c744a52ffed3fac136ce7e5bacb0648e1ba.file.ik_home.tpl.php. Line: 74. File: D:\home\site\wwwroot\include\smarty\libs\sysplugins\smarty_internal_write_file.php 

而不是文件名,应该创建,azure hosting创建具有奇怪名称的文件,即

wrt530644e3a6c503.24424555

而不是

bc3a2c744a52ffed3fac136ce7e5bacb0648e1ba.file.ik_home.tpl.php

我可以使用ftp客户端将 wrt530644e3a6c503.24424555 重命名为所需的 bc3a2c744a52ffed3fac136ce7e5bacb0648e1ba.file.ik_home.tpl.php

的var_dump(is_writable( '〜/包含/ smarty的/ templates_c')); // bool(true)

我在SO Smarty - 'unable to write file... templates_c'. (smarty_internal_write_file.php:44)中找到了一个类似的问题,但它没有答案而已关闭。作者只是说他的托管公司修复了权限。

还有一个问题WindowsAzure: Is it possible to set directory permissions within the web.config?答案解释了如果硬盘驱动器出现故障,将我的文件移动到另一个机架并重建实例会发生什么。在这种情况下,我应该如何处理权限?我真的不知道实际上是否有任何失败:)

1 个答案:

答案 0 :(得分:0)

问题已解决。问题在于路径中的双后退/正斜杠。改变:

D:\home\site\wwwroot\/include/smarty/templates_c\bc3a2c744a52ffed3fac136ce7e5bacb0648e1ba.file.ik_home.tpl.php

D:\home\site\wwwroot/include/smarty/templates_c\bc3a2c744a52ffed3fac136ce7e5bacb0648e1ba.file.ik_home.tpl.php

为什么Azure停止处理路径中的双斜线?!