Skip to main content

Wordpress con wp-cli

Prodecimiento de instalación

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Meter un enlace en el /usr/bin: ln -s /www/php/bin/wp-cli /usr/bin/wp-cli or wp

Después de haber descargado el core, procedemos al cambio de permisos que es necesario.

sudo -u www-data wp core donwload

Descarga del core

wp core download --locale=es_ES

Creación base de datos

CREATE DATABASE nombredominio_db;
CREATE USER 'nombredominio_user'@'localhost' IDENTIFIED BY 'password_complicado';
GRANT ALL ON nombredominio_db.* TO 'nombredominio_user'@'localhost';

==Creación del fichero wp-config.php

sudo -u www-data wp core config --dbname=nombredominio_db --dbuser=nombredominio _user --dbpass=password_complicado

Instalar wordpress

sudo -u www-data  wp core install --url=nombredominio --title=flozep --admin_user=admin --admin_password=password_complicado  --admin_email=info@nombredominio

Script actualización WP

#!/bin/bash
WPPATH="/var/www/public"
WP="/usr/local/bin/wp"
BACKUPDIR="/var/backup"
cd $WPPATH/$i
$WP db export --url=wp1.com
mv *.sql $BACKUPDIR
tar -czf $i.tgz .
mv $i.tgz $BACKUPDIR
$WP core update --url=wp1.com
$WP core update-db --network
$WP plugin update --all --url=wp1.com
$WP theme update --all --url=wp1.com

Restricciones WP

  • Change wp-login.php to something unique; e.g. my_new_login
  • Change /wp-admin/ to something unique; e.g. my_new_admin
  • Change /wp-login.php?action=register to something unique; e.g. my_new_registeration
  • Add the following to the wp-config.php file (at the very end):
  • define('DISALLOW_FILE_EDIT', true);
  • Quitar el listado en el Directorio principal:
  • Options All -Indexes


Con Apache (Restricción del php / bloqueo del xmlrpc.php / Bloque de acceso al wp-admin)

<Directory "/web/nombre_dominio/wp-content/uploads">
  php_admin_flag engine off
  AllowOverride None
  DirectoryIndex Off
  RewriteEngine On
  RewriteRule \.php$ - [F,L]
</Directory>

Bloqueo del xmlrpc.php

<Files xmlrpc.php>
  order deny,allow
  deny from all
</Files>

Bloqueo por IP al admin

<Directory /web/nombre_dominio/wp-admin >
  AllowOverride All
  Order Deny,Allow
  Deny from all
  Allow from 2.139.214.8
  Allow from 217.13.118.104
  php_flag display_errors on
  php_flag log_errors on
</directory>

Misma conf con nginx:

location ~* /wp-upload/.*.php$ {
   deny all;
   access_log off;
   log_not_found off;
}
location /xmlrpc.php  {
               allow   62.43.212.102;
allow   213.97.150.34;
deny    all;
}
location /wp-admin {
 allow   62.43.212.102;
 allow   213.97.150.34;
deny    all;
}