由于共享文件夹的权限被拒绝,Symfony 3.4部署程序失败

时间:2018-11-08 08:33:17

标签: symfony deployment permissions

我已经基于Symfony3.4开发了一个webapp。在生产中,它通过部署器(deployer.org)部署在Ubuntu 18.04服务器上。 到目前为止一切正常。该Webapp由/ www / data组的用户在/ opt / app / prod中部署。

我的webapp允许上传文件。为此,我添加了存储已上传文件的文件夹数据。

为了在另一个发行版之后继续访问文件,我将数据文件夹添加到共享文件夹列表中。

我的deploy.php如下所示:

set('bin_dir', 'bin');
// Symfony console bin
set('bin/console', function () {
    return sprintf('{{release_path}}/%s/console', trim(get('bin_dir'), '/'));
});

// Project name
set('application', 'appname');
set('http_user', 'www-data');
set('writable_mode', 'acl');

// Project repository
set('repository', '<MY_GITREPO>');

// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true);

// Shared files/dirs between deploys
add('shared_files', []);
add('shared_dirs', ['data']);


// Writable dirs by web server
add('writable_dirs', ['{{release_path}}','data']);


// Hosts
host('prod')
    ->hostname('<MY_HOST>')
    ->user('<MY_USER>')
    ->stage('prod')
    ->set('deploy_path', '/opt/app/prod/<MY_APPNAME>');

这将导致以下文件夹结构:

.
├── current -> releases/5
├── releases
│   ├── 2
│   ├── 3
│   ├── 4
│   └── 5
└── shared
    ├── app
    └── data

到目前为止,一切都很好-除了一个例外: 部署者希望设置不允许的数据文件夹,因为数据中的文件属于www-data:www-data,部署者尝试将其更改为。

The command "export SYMFONY_ENV='prod'; cd /opt/app/prod/<MY_APPNAME>/releases/5 && (setfacl -RL -m u:"www-data":rwX -m u:`whoami`:rwX /opt/app/prod/<MY_APPNAME>/releases/5)" failed.
setfacl: /opt/app/prod/<MY_APPNAME>/releases/5/data/child/679/ba7f9641061879554e5cafbd6a3a557b.jpeg: Operation not permitted 

我的印象是我在deployer.php中犯了一个错误,或者错过了一些东西。 有人知道我需要做什么才能使我的部署正常运行吗?

感谢和问候

0 个答案:

没有答案