Como mover o conteúdo wp (ou uploads) para fora do diretório Wordpress

4

Estou tentando mover o diretório wp-content para fora do diretório wordpress e acertar todos os tipos de problemas estranhos. Mesmo que enlace diz que você pode fazer isso, parece que a estrutura do diretório está profundamente ligada ao Código WP. Por exemplo, recebo mensagens de erro como:

PHP message: PHP Warning:  file_exists(): open_basedir restriction in effect.
File(/srv/wp.content/themes) is not within the allowed path(s): (/srv/wordpress/:/tmp) 
in /srv/wordpress/wp-includes/theme.php on line 369

Tudo o que preciso fazer é mover o diretório de uploads para fora da hierarquia principal. Eu tentei criar links simbólicos também, mas estou recebendo erros de permissão.

Alguém conseguiu com sucesso ter o diretório wp-content, ou pelo menos, faz o upload do diretório fora do diretório raiz?

    
por Sasha O 16.02.2014 / 09:48

2 respostas

5

Você precisa definir WP_CONTENT_DIR e WP_CONTENT_URL :

const WP_CONTENT_DIR = '/path/to/new/directory';
const WP_CONTENT_URL = 'http://content.wp';

O novo caminho deve estar acessível para leitura e gravação no diretório principal do WordPress. Você pode precisar de uma função auxiliar para adicionar o novo caminho do diretório à lista open_basedir :

/**
 * Add a new directory to the 'open_basedir' list.
 *
 * @link   http://www.php.net/manual/en/ini.core.php#ini.open-basedir
 * @param  string $new_dir
 * @return void
 */
function extend_base_dir( $new_dir )
{
    $separator = ':'; // all systems, except Win

    // http://stackoverflow.com/a/5879078/299509
    if ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) )
        $separator = ';';

    $dirs = explode( $separator, ini_get( 'open_basedir' ) );

    $found = array_search( $new_dir, $dirs );

    // Already accessible
    if ( FALSE !== $found )
        return;

    $dirs[] = $new_dir;

    ini_set( 'open_basedir', join( $separator, $dirs ) );
}

Agora chame assim:

extend_base_dir( WP_CONTENT_DIR );
    
por fuxia 16.02.2014 / 11:06
0

Veio aqui para descobrir como mover os uploads para fora da raiz do WordPress. No final, eu mantive tudo tão simples quanto criar um link simbólico e funciona muito bem.

$ pwd
/var/www/wordpress
$ cd ..
$ mkdir uploads
$ chmod 755 uploads
$ ln -sf /var/www/uploads /var/www/wordpress/wp-content/uploads

Fonte: Carregar pasta do Wordpress fora do projeto

Para um projeto existente:

$ pwd
/var/www/wordpress
$ mv /var/www/wordpress/wp-content/uploads /var/www/uploads
$ chmod -R 755 uploads
$ ln -sf /var/www/uploads /var/www/wordpress/wp-content/uploads
    
por leymannx 20.09.2018 / 22:48