网站在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?答案解释了如果硬盘驱动器出现故障,将我的文件移动到另一个机架并重建实例会发生什么。在这种情况下,我应该如何处理权限?我真的不知道实际上是否有任何失败:)
答案 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停止处理路径中的双斜线?!