我正在尝试让SilverStripe在Google-App-Engine上运行,但它会出现此错误:
PHP Fatal error: Uncaught exception 'Exception' with message 'Permission problem gaining access to a temp folder. Please create a folder named silverstripe-cache in the base folder of the installation and ensure it has the correct permissions' in /base/data/home/apps/s~my_app_id/1.371770119107113254/framework/core/TempPath.php:84
Stack trace:
#0 /base/data/home/apps/s~my_app_id/1.371770119107113254/framework/core/TempPath.php(9): getTempParentFolder('/base/data/home...')
#1 /base/data/home/apps/s~my_app_id/1.371770119107113254/framework/core/Constants.php(238): getTempFolder('/base/data/home...')
#2 /base/data/home/apps/s~my_app_id/1.371770119107113254/framework/main.php(58): require_once('/base/data/home...')
#3 /base/data/home/apps/s~my_app_id/1.371770119107113254/index.php(66): require_once('/base/data/home...')
#4 {main}
thrown in /base/data/home/apps/s~my_app_id/1.371770119107113254/framework/core/TempPath.php on line 84
答案 0 :(得分:1)
听起来您需要使用gs:// stream wrapper将temp文件夹配置为指向Google Cloud Storage。 GAE上无法写入本地文件系统,这就是默认设置不起作用的原因。
根据LevB的评论,您似乎将TEMP_FOLDER常量设置为适当的位置。在这种情况下,它应该是gs://mybucket/temp
。
务必创建一个存储桶并设置权限以允许您的应用访问它。有关详细信息,请参阅:https://developers.google.com/appengine/docs/php/googlestorage/。
答案 1 :(得分:0)
创建可写目录并将其设置为具有TEMP_FOLDER常量的缓存目录。
阅读Environment management了解详情。