Difference between revisions of "WebArea/Compat/Wordpress/Fr"
m (→Déplacer les fichiers uploadés sur les espaces de téléchargement de TuxFamily: Fix missing quote.) |
(→Étape n°1 : activer les options requises: Translate Step #1.) |
||
Line 8: | Line 8: | ||
=== Étape n°1 : activer les options requises === | === Étape n°1 : activer les options requises === | ||
− | + | Depuis WordPress 3.5, les options nécessaires pour configurer votre instance WordPress sont cachées par défaut (supposément dans des buts de simplicité et de convivialité). Pour activer ces options, lancez la requête SQL suivante sur votre base de données : | |
<pre>UPDATE wp_options SET option_value = 'wp-content//uploads' WHERE option_name = 'upload_path' AND (option_value IS NULL OR option_value = '');</pre> | <pre>UPDATE wp_options SET option_value = 'wp-content//uploads' WHERE option_name = 'upload_path' AND (option_value IS NULL OR option_value = '');</pre> | ||
− | + | Vous ne devriez pas avoir besoin d'ajuster cette requête à moins que vous n'ayez choisi un préfixe personnalisé lors de l'installation de votre instance WordPress ; si c'est le cas, remplacez "wp_options" par "''votre_prefix_personnalise''_options". | |
− | + | Selon vos compétences, vous pouvez lancer cette requête soit en utilisant [https://phpmyadmin.tuxfamily.org/ phpMyAdmin] soit en utilisant l'interface en ligne de commande ''mysql'' en [[User/En#SSH_access|SSH]] ; dans les deux cas, utilisez les paramètres et identifiants de connexion de votre wp-config.php -- les identifiants que vous utilisez pour le panel, le forum et cette FAQ ne fonctionneront pas. | |
=== Étape n°2 : définir les bonnes options === | === Étape n°2 : définir les bonnes options === |
Revision as of 19:18, 28 April 2018
Déplacer les fichiers uploadés sur les espaces de téléchargement de TuxFamily
WordPress permet nativement de déplacer les fichiers uploadés vers un dossier arbitraire associé à une URL tout aussi arbitraire. Cela colle parfaitement au modèle choisi par TuxFamily pour implémenter ses espaces de téléchargement. Cette section décrit comment migrer les fichiers que vous avez uploadés depuis leur emplacement par défaut (en l'occurrence wp-content/uploads) jusque sur les espaces de téléchargement de TuxFamily, épargnant ainsi le quota un peu serré affecté à votre projet (typiquement 200M). Notez bien que cette approche n'est pas adaptée si par un moyen ou par un autre, vous vous êtes retrouvé à stocker des fichiers privés sous wp-content/uploads (par exemple des sauvegardes, des dumps de bases de données, des fichiers qui ne devraient être accessibles qu'à des utilisateurs identifiés, etc.) dans la mesure où tous les fichiers stockés sur les espaces de téléchargement de TuxFamily sont considérés 100% publics.
Étape n°1 : activer les options requises
Depuis WordPress 3.5, les options nécessaires pour configurer votre instance WordPress sont cachées par défaut (supposément dans des buts de simplicité et de convivialité). Pour activer ces options, lancez la requête SQL suivante sur votre base de données :
UPDATE wp_options SET option_value = 'wp-content//uploads' WHERE option_name = 'upload_path' AND (option_value IS NULL OR option_value = '');
Vous ne devriez pas avoir besoin d'ajuster cette requête à moins que vous n'ayez choisi un préfixe personnalisé lors de l'installation de votre instance WordPress ; si c'est le cas, remplacez "wp_options" par "votre_prefix_personnalise_options".
Selon vos compétences, vous pouvez lancer cette requête soit en utilisant phpMyAdmin soit en utilisant l'interface en ligne de commande mysql en SSH ; dans les deux cas, utilisez les paramètres et identifiants de connexion de votre wp-config.php -- les identifiants que vous utilisez pour le panel, le forum et cette FAQ ne fonctionneront pas.
Étape n°2 : définir les bonnes options
Log into your WordPress instance (wp-login.php) and go to Settings > Media (wp-admin/options-media.php). Set the following options:
- Store uploads in this folder (aka upload_path):
/data/repository/yourproject/dedicated-folder
- Full URL path to files (aka upload_url_path):
https://download.tuxfamily.org/yourproject/dedicated-folder
In both cases, replace yourproject and dedicated-folder with more appropriate values. Click "Save changes".
Étape n°3 : déplacer vos fichiers
This 3rd step simply consists in moving your uploaded files from wp-content/uploads
to /data/repository/yourproject/dedicated-folder
.
Although this can be done using a FTP/FTP/SFTP client, we recommend that your leverage TuxFamily's SSH access and the power of the command-line like this:
cd /home/yourproject/ mv your.web.area-web/htdocs/path/to/your/wordpress/wp-content/uploads yourproject-repository/dedicated-folder
If your WordPress is brand new, you are done. Otherwise, you probably want to ensure your database does not contain any obsolete URL, which is the point of step #4.
Étape n°4 : remplacer les anciennes URLs dans toute la base de données
As a relatively complex and very modular CMS, WordPress tends to store serialized data in its database; serialized data can be challenging for search and replace operations; this is why it is advised to:
- backup your MySQL database (via phpMyAdmin, the mysql CLI or just the daily dump provided by TuxFamily);
- install Search Replace DB; the pesky download form can be avoided by picking the latest release from https://github.com/interconnectit/Search-Replace-DB/releases;
- leverage this tool to replace old URLs; typically, one should replace:
http://your.web.area/your/prefix/wp-content/uploads
https://your.web.area/your/prefix/wp-content/uploads
http://www.your.web.area/your/prefix/wp-content/uploads
https://www.your.web.area/your/prefix/wp-content/uploads
- ... with
https://download.tuxfamily.org/yourproject/dedicated-folder
- uninstall it once the operation has finished as leaving it within your web area is close to giving the keys to your entire website to attackers.
Une approche plus sécurisée : via SSH
For those of you who have enabled their TuxFamily SSH access and are not afraid to use it, the following commands should help you proceed with the replacements. Note: these are bash commands; zsh/tcsh aficionados will probably have to adjust them.
- Connect to TuxFamily over SSH
- Adjust and enter the following commands:
- From that, we can automatically deduce a few things, like your project name, your web area and the credentials to connect to the database:
# Project name: project=$(pwd | cut -d/ -f3) # Web area: webarea="$(basename "$(pwd)" | cut -d- -f1)" # Database name: wp_db="$((echo '<?php'; find htdocs/ -type f -name wp-config.php -print0 | xargs -0 -r grep DB_NAME; echo 'print DB_NAME;') | php)" # Putting your database password into a bash variable is better than using it directly as it will not end up in your shell history: wp_pw="$((echo '<?php'; find htdocs/ -type f -name wp-config.php -print0 | xargs -0 -r grep DB_PASSWORD; echo 'print DB_PASSWORD;') | php)"
- We can download and install Search-Replace-DB into a safe location:
# The "php-include" directory is not exposed by the web server, making it a safer place than "htdocs": cd php-include wget https://github.com/interconnectit/Search-Replace-DB/archive/3.1.tar.gz [ "$(sha256sum < 3.1.tar.gz)" != '837389799a2884e3f77a3ab84c1a4161b6e2220041f91c9f149529111babe676 -' ] && echo "Something's phishy here..." && exit tar xzvf 3.1.tar.gz cd Search-Replace-DB-3.1
- We will call the tool several times, so it is more convenient to use a wrapper shell function:
function wp_replace { target_url="https://download.tuxfamily.org/${project}/${dest_dir}" # Yes, we have to pass the password on the command-line; # be reassured, though, the SSH access does not allow other # users to list your processes. ./srdb.cli.php --host 'sql' \ --user "${wp_db}" \ --pass "${wp_pw}" \ --name "${wp_db}" \ --replace "${target_url}" \ "$@" }
- You can now simulate the various replacements:
wp_replace --search "http://${webarea}${prefix}/wp-content/uploads" --dry-run wp_replace --search "https://${webarea}${prefix}/wp-content/uploads" --dry-run wp_replace --search "http://www.${webarea}${prefix}/wp-content/uploads" --dry-run wp_replace --search "https://www.${webarea}${prefix}/wp-content/uploads" --dry-run
- If you are satisfied with the results of the simulations, proceed with the actual replacements:
wp_replace --search "http://${webarea}${prefix}/wp-content/uploads" wp_replace --search "https://${webarea}${prefix}/wp-content/uploads" wp_replace --search "http://www.${webarea}${prefix}/wp-content/uploads" wp_replace --search "https://www.${webarea}${prefix}/wp-content/uploads"
# Go to your web area (this is important): cd yourproject/your.web.area-web # Enter the base path to your WordPress; it can be as # simple as "/" if your entire site is handled by WordPress: prefix=/wordpress # Enter the folder that now hosts your uploaded files: dest_dir='dedicated-folder' # That's it; you shouldn't need to adjust the next commands.