J'essaie de déplacer le répertoire wp-content en dehors du répertoire wordpress et de faire face à toutes sortes de problèmes étranges. Même si http://codex.wordpress.org/Editing_wp-config.php#Moving_wp-content_folder indique que vous pouvez le faire, il semble que la structure de répertoires est profondément liée au code WP. . Par exemple, je reçois des messages d'erreur tels que:
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
Tout ce que j'ai à faire est de déplacer le répertoire de téléchargement en dehors de la hiérarchie principale. J'ai essayé de faire un lien symbolique aussi, mais alors je reçois des erreurs d'autorisation.
Quelqu'un at-il réussi à avoir avec succès le répertoire wp-content, ou au moins, le répertoire de téléchargement en dehors du répertoire racine?
Vous devez définir WP_CONTENT_DIR
et WP_CONTENT_URL
:
const WP_CONTENT_DIR = '/path/to/new/directory';
const WP_CONTENT_URL = 'http://content.wp';
Le nouveau chemin doit être accessible en lecture et en écriture à partir du répertoire principal WordPress. Vous aurez peut-être besoin d'une fonction d'assistance pour ajouter le nouveau chemin de répertoire à la liste 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 ) );
}
Maintenant, appelez ça comme ça:
extend_base_dir( WP_CONTENT_DIR );
Nous sommes venus ici pour savoir comment déplacer les envois en dehors de la racine WordPress. En fin de compte, je l'ai gardé aussi simple que de créer un lien symbolique et cela fonctionne très bien.
$ pwd
/var/www/wordpress
$ cd ..
$ mkdir uploads
$ chmod 755 uploads
$ ln -sf /var/www/uploads /var/www/wordpress/wp-content/uploads
Source: Télécharger le dossier de Wordpress en dehors du projet
Pour un projet existant:
$ 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