Alterar permissões de ficheiros e proprietário de um site de staging

Algumas configurações de hosting utilizam uma definição invulgar para o proprietário e as permissões de um site WordPress.

Por exemplo, a tua configuração de hosting pode usar PHP-FPM que corre como conta de utilizador, portanto, quando o PHP acede ao sistema de ficheiros, cria os ficheiros em seu próprio nome. O WordPress, por outro lado, pode exigir permissões diferentes, fazendo com que as imagens enviadas para a galeria fiquem com o nome do servidor web. Assim, depois de criares um site de staging, podes obter erros de permissões.

O WP STAGING cria um site de staging com as permissões predefinidas do WordPress: 755 para ficheiros e 644 para diretórios. O proprietário é o utilizador do processo PHP que criou o site de staging.

Para corrigir isto, podes alterar o proprietário e as permissões de um site de staging após a sua criação utilizando esta função e este filtro:

PHP
<?php

function changePermissionsAndOwner() {

$directory = '/path/to/your/directory';
$permissions = 0755;
$owner = 'username';
$group = 'groupname';

    // Check if the path is a directory
    if (is_dir($path)) {
        // Create a RecursiveDirectoryIterator object
        $directoryIterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);
        // Create a RecursiveIteratorIterator object
        $iterator = new RecursiveIteratorIterator($directoryIterator, RecursiveIteratorIterator::SELF_FIRST);

        // Iterate through each file and directory in the tree
        foreach ($iterator as $item) {
            // Change the permissions of the current item
            chmod($item, $permissions);
            // Change the owner and group of the current item
            chown($item, $owner);
            chgrp($item, $group);
        }

        // Change the permissions of the root directory
        chmod($path, $permissions);
        // Change the owner and group of the root directory
        chown($path, $owner);
        chgrp($path, $group);
    } else {
        echo "The path is not a directory.";
    }
}

add_action('wpstg.clone_first_run', 'changePermissionsAndOwner', 10);

Isto será executado no primeiro início de sessão no site de staging e alterará todos os ficheiros para as permissões correspondentes.

Updated on May 23, 2026

Rene Hermenau

Autor: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.