--- categories: Wordpress saas web title: Howto Wordpress ... **Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** # Howto Wordpress # W3 Total Cache W3 Total Cache améliore les performances d'un « site/blog » propulsé par Wordpress ainsi que la rapidité du chargement des pages pour une meilleure expérience utilisateur et un meilleur référencement ! Pour cela W3 Total Cache met en cache différents éléments : renforcement du cache navigateur, cache des pages, des objets et des requêtes SQL. Il propose aussi différentes fonctions tel que le html/css/js minify et la gestion de CDN. ## Installation ### Prérequis * PHP 5.6 >= * MySQL 5.6 >= * Apache avec module rewrite ### Procédure * Télécharger l'archive du plugin sur le site de [Wordpress](http://wordpress.org/extend/plugins/w3-total-cache/) et la décompresser dans wp-content/plugins. (Ou bien installer le plugin depuis Wordpress) ; * Activer le plugins dans la liste des extensions Wordpress ; * Passer à la configuration. ## Configuration La configuration se passe dans le tableau de bord de Worpdress, dans l'onglet « Performance ». Cliquer sur le bouton « Compatiblity Check », pour vérifier que votre serveur dispose de tous les modules nécessaire. # Mise à jour Wordpress par l'interface web via ssh Voir * Installer php5-ssh2 sous Squeeze ou libssh2-php en Wheezy * Activer **allow_url_fopen** dans la configuration du vhost * Lors de la mise à jour, choisir SSH2, spécifier 127.0.0.1 en serveur, le login et mot de passe adéquat Attention en wordpress 4.3, la mise à jour via ssh est cassée, il faut appliquer ce fix : # Mise à jour Wordpress [plugins] depuis l'interface web (éviter) Revoir les droits du groupe pour permettre l'écriture ($HOME/www = où le wp est installé) : ~~~ $ chmod g+w $HOME/www/ $HOME/www/wp-includes/version.php $ chmod g+w -R $HOME/www/wp-admin/includes/ $HOME/www/wp-content/ [$HOME/www/wp-content/upgrade/ $HOME/www/wp-content/languages/] ~~~ Si vous avez des retours de type : 'Operation not permitted', il y a de bonne chance que le propriétaire du fichier soit déjà l'utilisateur utilisé par l'instance du serveur web (et donc les droits sont déjà suffisant). ## Définir les droits des fichiers écrit par Wordpress Wordpress surcharge l'umask définie par Apache/PHP et écrit par défaut les fichiers et dossiers en 750. Il faut rajouter ces 2 lignes dans wp-config.php pour avoir des droits corrects : ~~~ define( 'FS_CHMOD_DIR', ( 0770 & ~ umask() ) ); define( 'FS_CHMOD_FILE', ( 0660 & ~ umask() ) ); ~~~ ## Attaque sur xmlrpc.php Sur les Wordpress pas à jour, l'API xmlrpc.php est sensible à une attaque par rebond, un attaquant réalise plein de requêtes sur xmlrpc.php et votre serveur fait des requêtes vers la/les cibles de l'attaquant. S'il ne vous est pas possible de mettre à jour Wordpress, une solution est de bloquer les requêtes vers xmlrpc.php dans Apache : ~~~ Deny from all ~~~ # Maintenance ## Vérifier la liste des plugins installés sur Wordpress ~~~{ .sql } > SELECT * FROM wp_options WHERE option_name = 'active_plugins'; ~~~ # wp-cli Permet d'administrer une instance Wordpress à partir de la ligne de commande. [] ## core Vérifier que le répertoire en question correspond bien à un wordpress : ~~~ php wp-cli.phar core is-installed --path=$HOME/www ~~~ ### Installation Configuration des différentes directives à compléter (pour la base de donnée) : ~~~ php wp-cli.phar core config --dbname=nombase --dbuser=nomutilisateur --dbpass=motdepasse \ --dbhost=hostnamedb --path=$HOME/www ~~~ Procéder à l'installation : ~~~ php wp-cli.phar core install --url="ServerName" --title="TITRE_WP" --admin_user="admin" --admin_password="motdepasseadmin" \ --admin_email="emailadmin" --skip-email --path="$HOME/www" ~~~ ### Mise à jour Se placer dans le répertoire où est installé wp : ~~~ $ cd $HOME/www ~~~ Forcer le téléchargement de la dernière version (US) - non recommandé: ~~~ $ php $HOME/wp-cli/wp-cli.phar core download --force ~~~ Vérifier si maj disponible : ~~~ $ php $HOME/wp-cli/wp-cli.phar core check-update +---------+-------------+-------------------------------------------------------------+ | version | update_type | package_url | +---------+-------------+-------------------------------------------------------------+ | 4.6.1 | major | | +---------+-------------+-------------------------------------------------------------+ ~~~ Mettre à jour wordpress et la bd ~~~ $ php $HOME/wp-cli/wp-cli.phar core update Updating to version 4.6.1 (en_US)... Downloading update from Unpacking the update... Cleaning up files... No files found that need cleaned up. Success: WordPress updated successfully. $ php $HOME/wp-cli/wp-cli.phar core update-db Success: WordPress database upgraded successfully from db version 36686 to 37965. ~~~ ### Utilisateurs Créer un utilisateur admin : ~~~ $ php $HOME/wp-cli/wp-cli.phar user create admintest john@example.com --role=administrator Success: Created user 3. Password: XXXXXXX ~~~ Si temporaire, ne pas oublier de le supprimer : ~~~ $ php $HOME/wp-cli/wp-cli.phar user list +----+------------+---------------+----------------------+----------------------+---------------+ | ID | user_login | display_name | user_email | user_registered | roles | +----+------------+---------------+----------------------+----------------------+---------------+ | X | admintest | admintest | johndoe@example.com | 2016-10-17 17:40:26 | administrator | $ php $HOME/wp-cli/wp-cli.phar user delete X ~~~