我正在开发一个针对自定义wordpress网站使用刀片模板的项目。该网站托管在wpengine上 - 它有很多限制,可以防止创建文件/写入文件,这是刀片模板引擎所需要的,无需命令行访问等。
我部署新功能的临时措施只是将缓存文件从我的本地环境ftp到服务器,但这样做会导致以下错误,忽略服务器上的缓存文件并尝试不再存在的引用缓存文件:
警告: file_put_contents(/ NAS /内容/现场/ mypath中/可湿性粉剂内容/插件/ pluginname /班/控制器/../../的意见/缓存/ e44b26a14bd95cd0cdf764d863a0b4bd1848c8ba.php): 无法打开流:权限被拒绝 第33行/opt/nas/www/common/production/php_prevent_flock.php
警告: 包括(/ NAS /内容/现场/ mypath中/可湿性粉剂内容/插件/ pluginname /班/控制器/../../的意见/缓存/ e44b26a14bd95cd0cdf764d863a0b4bd1848c8ba.php): 无法打开流:没有这样的文件或目录 /nas/content/live/mypath/wp-content/plugins/pluginname/vendor/illuminate/view/Engines/PhpEngine.php 在第43行
警告:include():打开失败 '/nas/content/live/mypath/wp-content/plugins/pluginname/Classes/Controllers/../../views/cache/e44b26a14bd95cd0cdf764d863a0b4bd1848c8ba.php' 包含(include_path ='。:/ usr / share / php')in /nas/content/live/mypath/wp-content/plugins/pluginname/vendor/illuminate/view/Engines/PhpEngine.php 在第43行
注意,我无权访问:/opt/nas/www/common/production/php_prevent_flock.php
想知道为什么刀片服务器要引用旧的缓存文件?我怎么能阻止这个?尽管存在wpengine限制,是否有更简单的方法来部署新的刀片模板?
答案 0 :(得分:3)
我也遇到这个问题,解决方法非常简单,只需更改缓存文件夹的路径,并保持其路径为
/ tmp / cache
这是因为Wpengine允许将缓存存储在应放置在根目录下的tmp文件夹中
答案 1 :(得分:0)
您的问题很可能与您的FTP客户端在上传文件时更改文件的修改日期/时间有关。 可以选择在您的设置中保留上传时的原始修改日期/时间值。
视图编译器将Blade模板的修改日期/时间与相应的缓存/编译版本进行比较。如果Blade模板较新,它将重新编译并重新缓存该文件。
请参阅此处了解正在运行的具体代码:here
为了更持久地解决您的问题,我可以考虑一些选择。
1)。将视图缓存路径更改为/tmp
目录。如果您的服务器允许上传文件,那么它们就会被写入某处。最有可能/tmp
。如果覆盖缓存路径,则可以在那里存储已编译的视图。
2)。暂时或永久禁用视图缓存。这将影响性能,因为您的视图将根据每个请求进行编译。但这是一种解决方法。有关详情,请参阅此帖子:https://github.com/laravel/framework/blob/5.5/src/Illuminate/View/Compilers/Compiler.php#L60
3)。搬到更好的主人。