运行 dev/build 时出现权限错误

问题描述 投票:0回答:1

在浏览器或 cli 中运行 dev/build 时出现权限错误,具体取决于我上次“修复”它的方式。

网络服务器是 www-data 部署通过 ssh 作为“beanstalk”进行,并且该用户是唯一使用 cli 进行开发/构建的用户,如下所示:

php vendor/silverstripe/framework/cli-script.php dev/build  flush=1

我无法更改网络服务器或部署服务的用户。

为了在它混淆时解开它,以便我可以通过 cli 运行它,我必须将这些文件的所有权更改为 beanstalk:www-data :

/var/www/stage/public_html/.graphql-generated/
/var/www/stage/public_html/public/assets/.protected/.htaccess
/var/www/stage/public_html/public/assets/.htaccess
/var/www/stage/public_html/public/asset/404-error.html
/var/www/stage/public_html/public/asset/500-error.html

然后,为了避免进一步的灾难,永远不要通过网络浏览器运行 dev/build?flush,这是使用 silverstripe 时的一个特殊限制,因为它是修复所有问题的首选操作!

多年来还有很多其他人面临同样的问题:

例如 https://forum.silverstripe.org/t/chmod-operation-not-permission-vendor-league-flysystem/2020

存储库中有一些活动可以解决此问题,但我找不到文档在哪里使用它,例如设置 $default_server 以及它有何帮助。

https://github.com/silverstripe/silverstripe-assets/issues/81

如何设置权限/配置 silverstripe 以允许 www-data 或 beanstalk 运行开发/构建?

silverstripe silverstripe-4
1个回答
0
投票

如果我们有

sudo
权限,我们可以在
php
命令之前加上
sudo -u www-data
。这将以
php
用户身份运行
www-data
命令。

sudo -u www-data php vendor/silverstripe/framework/cli-script.php dev/build  flush=1
© www.soinside.com 2019 - 2024. All rights reserved.