部署在 AWS 上的资产的 Silverstripe 权限
Silverstripe permissions for assets deployed on AWS
在 SilverStripe 的管理后台上传文件时,我的权限总是被拒绝。
apache2 在 www-data:www-data 下 运行(用 "whoami" 和 envvars 检查过)。
资产文件夹的权限如下:
drwxrwxr-x+ 5 git www-data 4.0K Oct 2 08:18 .
drwxrwsr-x+ 17 git users 4.0K Oct 2 09:53 ..
-rwxrwxr-x+ 1 git www-data 1.5K Oct 2 08:18 .htaccess
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 07:28 Uploads
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 08:18 _combinedfiles
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 07:57 books
-rwxrwxr-x+ 1 git www-data 4.5K Oct 1 14:48 error-404.html
-rwxrwxr-x+ 1 git www-data 4.3K Oct 1 14:48 error-500.html
-rwxrwxr-x+ 1 git www-data 4.4K Oct 2 08:18 web.config
即使我将它们设置为 777,我仍然无法获得权限。它在本地工作,但我不明白为什么它不起作用。
Apache 错误日志:
[Fri Oct 02 10:24:18.364138 2015] [:error] [pid 16008] [client 62.218.34.90:44300] PHP Warning: copy(/var/www/X/assets/books/Mike.png): failed to open stream: Permission denied in /var/www/X/framework/filesystem/Upload.php on line 195, referer: http://x.amazonaws.com/index.php/admin/assets/add/?ID=7
[Fri Oct 02 10:24:18.364615 2015] [:error] [pid 16008] [client 62.218.34.90:44300] PHP Warning: Requirements_Backend::process_combined_files(): Couldn't create '/var/www/X/assets/_combinedfiles//lib.js' in /var/www/X/framework/view/Requirements.php on line 1214, referer: http://x.amazonaws.com/index.php/admin/assets/add/?ID=7
这是 AWS 特有的问题吗?有什么线索吗?
我建议您使用模块并将资产存储在 S3 中
https://github.com/markguinn/silverstripe-cloudassets
问题是 ACL。
使用 getfacl ./assets/
我可以确定,ACL 被设置为破坏正常的权限模型。
使用 setfacl
我能够推进 ACL 以将网络用户 (www-data) 包含到 assets
目录中 rwx
。
希望这对某人有所帮助,
最好的祝福。 G
在 SilverStripe 的管理后台上传文件时,我的权限总是被拒绝。
apache2 在 www-data:www-data 下 运行(用 "whoami" 和 envvars 检查过)。
资产文件夹的权限如下:
drwxrwxr-x+ 5 git www-data 4.0K Oct 2 08:18 .
drwxrwsr-x+ 17 git users 4.0K Oct 2 09:53 ..
-rwxrwxr-x+ 1 git www-data 1.5K Oct 2 08:18 .htaccess
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 07:28 Uploads
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 08:18 _combinedfiles
drwxrwsr-x+ 2 git www-data 4.0K Oct 2 07:57 books
-rwxrwxr-x+ 1 git www-data 4.5K Oct 1 14:48 error-404.html
-rwxrwxr-x+ 1 git www-data 4.3K Oct 1 14:48 error-500.html
-rwxrwxr-x+ 1 git www-data 4.4K Oct 2 08:18 web.config
即使我将它们设置为 777,我仍然无法获得权限。它在本地工作,但我不明白为什么它不起作用。
Apache 错误日志:
[Fri Oct 02 10:24:18.364138 2015] [:error] [pid 16008] [client 62.218.34.90:44300] PHP Warning: copy(/var/www/X/assets/books/Mike.png): failed to open stream: Permission denied in /var/www/X/framework/filesystem/Upload.php on line 195, referer: http://x.amazonaws.com/index.php/admin/assets/add/?ID=7
[Fri Oct 02 10:24:18.364615 2015] [:error] [pid 16008] [client 62.218.34.90:44300] PHP Warning: Requirements_Backend::process_combined_files(): Couldn't create '/var/www/X/assets/_combinedfiles//lib.js' in /var/www/X/framework/view/Requirements.php on line 1214, referer: http://x.amazonaws.com/index.php/admin/assets/add/?ID=7
这是 AWS 特有的问题吗?有什么线索吗?
我建议您使用模块并将资产存储在 S3 中 https://github.com/markguinn/silverstripe-cloudassets
问题是 ACL。
使用 getfacl ./assets/
我可以确定,ACL 被设置为破坏正常的权限模型。
使用 setfacl
我能够推进 ACL 以将网络用户 (www-data) 包含到 assets
目录中 rwx
。
希望这对某人有所帮助, 最好的祝福。 G