Configurar WordPress como un profesional

La creación de WordPress es algo que se aprende desde el principio y no se piensa realmente en ello – se convierte en una segunda naturaleza.

Una instalación y configuración profesional completa puede contener un mucho más tiempo que la famosa instalación de 5 minutos!

Desde la seguridad de .htaccess hasta el despliegue automatizado, te llevaré a través de algunos métodos increíbles que puedes usar para crear un entorno de WordPress apto para profesionales.

Instalación de WordPress

Saquemos esto a colación mirando todas las diferentes maneras en que puedes crear una instalación de WordPress.

La instalación de 5 minutos

La “Famosa Instalación de 5 minutos” ha existido desde siempre. Incluye lo siguiente:

  • Subir el archivo zip de WordPress
  • Extracción del cierre
  • Creación de las tablas de la base de datos
  • Creando el archivo de configuración
  • Ejecutando la instalación

Se pueden encontrar más detalles sobre esto en la página de instalación del códice de WordPress. No hay nada malo con este método, pero puede ser un poco torpe y no es conveniente para algunas personas.

Por ejemplo: no todos los hosts tienen herramientas GUI que permitan descomprimir archivos en el servidor. Si este es el caso, necesitarás usar acceso SSH ya que no se puede descomprimir desde tu cliente FTP. Tu otra opción es subir los archivos descomprimidos, lo que lleva un poco más de tiempo que nunca. Creo que podemos hacerlo mejor.

Instalación de la terminal

Sabías que iba a venir, la temida terminal. Si estás en Linux o Mac podrás hacer lo anterior desde la terminal, para Windows necesitarás usar PuTTY.

El primer paso es tomar todos los archivos de WordPress. El código de abajo parece largo pero aparte de las dos primeras líneas es copiable para que puedas obtener todos los archivos que necesites en unos pocos segundos.

1234567ssh username@server.comcd /path/to/installation/directorywget http://wordpress.org/latest.zipunzip latest.zipmv wordpress/* ./rmdir wordpressrm latest.zip

Una vez que SSH en nuestro servidor y cambiamos de directorio usamos el comando wget para descargar la última versión de WordPress; luego lo descomprimimos. Como esto pone todos los archivos en un subdirectorio de wordpresss necesitamos mover todos los archivos al directorio principal. Luego terminamos borrando el subdirectorio no deseado y el archivo zip original.

En este punto puedes configurar la base de datos en tu cPanel y editar el archivo de configuración usando un editor FTP, pero veamos cómo podemos hacer todo eso en la terminal también. Volvamos nuestra atención a la base de datos:

1mysql -u nombre de usuario -p

Si entra en esta línea (reemplazando “nombre de usuario” por su nombre de usuario real) se le pedirá su contraseña, después de lo cual llegará a la consola de MySQL. Desde aquí puede crear la base de datos emitiendo el siguiente comando SQL.

1crea la base de datos mywordpressdb;

El último paso es crear el archivo de configuración. Puedes hacerlo copiando o moviendo el archivo de muestra y editándolo usando vim. Me gusta mover el archivo porque así se deshace del archivo de muestra, no hay necesidad de conservarlo.

12mv wp-config-sample.php wp-config.phpvi wp-config.php

Si no está familiarizado con el VIM, le sugiero que eche un vistazo a lo básico. Yo no lo uso mucho, pero saber lo mínimo para navegar y editar un archivo es un gran ahorro de tiempo cuando se trabaja en un servidor remoto. En pocas palabras: presiona ito para entrar en modo de inserción. Navegar con las flechas, editar según sea necesario. Cuando termine, presione escape y luego escriba :wqy presione enter; esto guardará y saldrá.

Leer
Añade mampostería, diseños de cuadrícula a tu sitio de WordPress con sólo CSS

Ahí lo tenemos, todo hecho. Mientras que esto tomó un tiempo para describirlo, en realidad es mucho más rápido que la instalación de 5 minutos una vez que lo has hecho por lo menos una vez. Te ahorra el tiempo de cambiar a múltiples herramientas como mínimo.

WP-CLI

WP-CLI aparece en muchos de mis tutoriales porque puede ser usado para muchas cosas! WP-CLI es una herramienta de línea de comandos que te permite interactuar con tu entorno de WordPress. Esto incluye todo, desde la creación de 100 usuarios de prueba con una línea de código hasta la instalación y actualización de WordPress.

Las instrucciones para instalar WP-CLI no son nada difíciles, unos pocos comandos de terminal lo harán. Una vez instalado puedes empezar a ejecutar los comandos. SSH en tu servidor e ir al directorio de instalación.

1234wp core downloadwp core config –dbname=sudb –dbuser=su usuario –dbpass=sudbpass –dbhost=tudbhost –dbprefix=tudbprefijowp db createwp core install –url=tusiteurl –title=sitetitle –admin_user=nombre de usuario –admin_password=contraseña –admin_email=turemail

Eso es todo, ahora tienes un sitio web de WordPress totalmente instalado y configurado. WP-CLI es mi método de elección, lo usaré para instalar plugins y hacer algunas otras modificaciones más en el post.

Configuración

Hay una serie de cosas que puede hacer antes y durante el proceso de instalación para que su sitio sea más seguro y tenga un mejor rendimiento. Aquí hay una lista de lo que tiendo a usar – las opciones aquí son infinitas.

Ser impredecible

La imprevisibilidad es una gran manera de evitar muchos problemas de seguridad. No dejes el prefijo de la base de datos como “wp_”, no uses el nombre de usuario “admin”, etc. He aquí por qué: como muchos sitios tienen un nombre de usuario “admin”, los hackers tienen una pieza del rompecabezas cuando se trata de entrar en su sitio. Incluso peor, ¡tienen el nombre de usuario de un usuario administrador!

Como los hackers no tienen acceso directo a tu sitio web, no saben qué nombres de usuario tienes, no conocen el prefijo de tu base de datos, etc. Todo lo que pueden hacer es esperar que estés usando los predeterminados. Aquí hay una lista de cosas que modifico para hacer mis sitios un poco más seguros.

  • El prefijo de mi base de datos suele ser como una mini contraseña. En lugar de “wp_” utilizo algo como “Hjd9_3jdpq3GQ4_”
  • Utilizo un uso administrativo separado que sólo uso cuando necesito realizar tareas administrativas, de lo contrario uso un editor o autor.
  • Mi usuario de administración también tiene un nombre no estándar. Esto no tiene por qué ser tan complejo, incluso algo como “Danieladmin” podría serlo.
  • No hace falta decir que ninguna de las contraseñas de mis sitios son “1234”. Las contraseñas fuertes son tu mejor defensa, usa al menos 8 caracteres con una letra mayúscula, una minúscula, un número y un símbolo.

.htaccess Firewall

Esta es la primera línea de defensa que añado a todos mis sitios. El código que utilizo fue/está desarrollado por Jeff Star, se llama el Firewall G6. Esta versión está actualmente en beta y es el sucesor del Firewall 5G.

Todo lo que tienes que hacer es pegar el contenido del firewall en el archivo .htaccess en el directorio raíz:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758# 6G BLACKLIST/FIREWALL (beta)# @ http://perishablepress.com/6g-beta/# 6G:[SOLICITAR CUERDAS]<ifModule mod_alias.c>RedirectMatch 403 /($|*)/?$RedirectMatch 403 (?i)(<|>|:|||'|s)RedirectMatch 403 (?i)([a-zA-Z0-9]{18})RedirectMatch 403 (?i)(https?|ftp|php):/RedirectMatch 403 (?i)(N-amp;amp;amp;amp;amp;N-quot;quot;;;amp;amp;amp;N-amp;amp;oso;amp;N-amp;amp;oso;amp;N-amp;amp;oso;amp;N-amp;amp;oso;amp;oso;amp;N-amp;oso;amp;ÿÿÿÿÿRedirectMatch 403 (?RedirectMatch 403 (?i)/(author-panel|submitN-articulos)/?RedirectMatch 403 (?i)/((([0-9]{i})}([0-9]{i})}-([0-9]{i}}(gif|jpg|png)RedirectMatch 403 (?i)(||////bajos).|+++|||\RedirectMatch 403 (?i)/uploads/([0-9]+)/([0-9]+)/(cache|cached|wp-opt|wp-supercache)N-.)phpRedirectMatch 403 (?i)N.(asp|bash|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rdf|bien)RedirectMatch 403 (?i)/(^$|1|addlink|btn_hover|contacto?|dkscsearch, ddmpdf, easyboard,ezooms, formvars, fotter, fpw, imagemanager, index1, install,iprober, legacy, comments, join, js, scraper, mapcms, mobiquo, phpinfo, phpspy, pingserver, play, postgres, product, register, scraper, shell, signup, single default, tqlpatch, test, textboxes.css pulgar, pulgar, pulgar superior, perfil de UCP, visita a Webring.phpRedirectMatch 403 (?i)/(||||amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;|amp;|amp;}.|”Cross Domain”. “Descripciones”. “ETC/PASWD”. “Arrayo-Rand-función”. “Calendario de vida”. “Archivo local”. “Archivo de Muieblackcat”. “Notas”. “Remote-SiteCore”. “TAPATALK”. “RedirectMatch”. “RedirectMatch 403”.i)(
Hay una pequeña modificación que he hecho. Eliminé una condición de reescritura ya que impedía que los guiones y estilos se cargaran. Tenga en cuenta que puede necesitar un ajuste de la
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758# 6G BLACKLIST/FIREWALL (beta)# @ http://perishablepress.com/6g-beta/# 6G:[SOLICITAR CUERDAS]<ifModule mod_alias.c>RedirectMatch 403 /($|*)/?$RedirectMatch 403 (?i)(<|>|:|;amp;amp;amp;amp;amp;amp;amp;|amp;apos;|s)RedirectMatch 403 (?i)([a-zA-Z0-9]{a6})RedirectMatch 403 (?i)(https?|ftp|php):/RedirectMatch 403 (?i)(N-amp;amp;amp;amp;amp;amp;quot;N-amp;amp;amp;amp;amp;N-amp;amp;amp;oso;amp;N-amp;amp;oso;amp;N-amp;amp;oso;amp;oso;amp;N-amp;amp;oso;amp;oso;amp;ÿÿÿÿÿÿÿÿÿRedirectMatch 403 (?RedirectMatch 403 (?i)/(autor/panel de presentación de artículos)).RedirectMatch 403 (?i)/((([0-9]{i})|([0-9]{i})}-([0-9]{i1}(gif|jpg|png){i}RedirectMatch 403 (?i)(},|////bajos),{i}(gif|jpg|png).|+++|||\RedirectMatch 403 (?i)/uploads/([0-9]+)/([0-9]+)/(cache|cached|wp-opt|wp-supercache)N-.)phpRedirectMatch 403 (?i)N.(asp|bash|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rdf|bien)RedirectMatch 403 (?i)/(^$|1|addlink|btn_hover|contacto?|dkscsearch, ddmpdf, easyboard,ezooms, formvars, fotter, fpw, imagemanager, index1, install,iprober, legacy, comments, join, js, scraper, mapcms, mobiquo, phpinfo, phpspy, pingserver, play, postgres, product, register, scraper, shell, signup, single default, tqlpatch, test, textboxes.wWw.Subs-Team.Tv P r e s e n t a . M e r c a d o s d e l a C o m p r e s e n t a .)phpRedirectMatch 403 (?i)/(|||||||||de acuerdo a la configuración de los dominios cruzados.xml|dbscripts|e107|etc/passwd|función.”Array-rand-función” “parse-url-calendar” “localhost” “archivo de la muerte” “notas de lanzamiento” “rndsitecore” “tpatalkwwwwroot” “RedirectMatch 403” “esto”…attr||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| de la película de la película.ready(fu|echo.*kae|evaluaciónNfunción.parse|función.parse|función.hilton.ch|index.php&quot|jfbswww|monstermmorpg|msnbot.htm|netdefender/hui|phpMyAdmin/config|proc/self|skin/zero_vote|/spaw2?|text/javascript|this.options)</ifModule># 6G:[QUERY STRINGS]<IfModule mod_rewrite.c>RewriteCond %{REQUEST_URI} !^/$ [NC]RewriteCond %{QUERY_STRING} (mod|path|tag)= [NC,OR]RewriteCond %{QUERY_STRING} ([a-zA-Z0-9]{32}) [NC,OR]RewriteCond %{QUERY_STRING} (localhost|loopback|127.0N-[NC,OR]RewriteCond %{N-Cuerda_de_Preguntas}(N-Cuerda_de_Preguntas).||<|>|&|amp;apos;|";||||amp;amp;amp;amp;amp;amp;amp;amp;amp;|amp;quot;$%0A|%0D|%22|%27|%3C|%3E|%00|%2e%2e) [NC,OR]RewriteCond %{QUERY_STRING} (benchmark|boot.ini|cast|declarar|drop|echo.*kae|environ|etc/passwd|ejecutar|fichero de entrada|insertar|md5|mosconfig|escáner|seleccionar|set|union|actualizar) [NC]RewriteRule .* – [F,L]</IfModule># 6G:[AGENTES USUARIOS]<ifModule mod_setenvif.c>#SetEnvIfNoCase User-Agent ^$ keep_outSetEnvIfNoCase User-Agent (&|>|&|amp;amp;apos;|<|amp;amp;amp;amp;amp;amp;lt;|…no se puede dejar de lado a los usuarios…Agente (archiver|binlar|casper|checkprivacy|clshttp|cmsworldmap|comodo|curl|diavol|dotbot|email|extractas|feedfinder|flicky|grab|cosecha|httrack|ia_archiver|jakarta|kmccrew|libwww|loader|miner|nikto|nutch|planetwork|purebot|pycurl|python|scan|skygrid|sucker|turnit|vikspider|wget|winhttp|youda|zmeu|zune) keep_out<limit GET POST PUT>Order Allow,DenyAllow from allDeny from env=keep_out</limit></ifModulo</limit;amp;amp;amp;gt;# 6G:[REFERENCIAS]</ifModule mod_rewrite.c>RewriteCond %{HTTP_REFERER} (<|>|&|amp;|amp;apos;|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]RewriteCond %{HTTP_REFERER} ([a-zA-Z0-9]{32}) [NC]Regla de Reescritura .* – [F,L]</IfMódulo># 6G:[BAD IPS]<Límite GET POST PUT>Ordenar Permitir,DenegarPermitir de todo# descomentar/editar/repetir la siguiente línea para bloquear IPs# Denegar de 123.456.789</Limit&

Leer
Cómo configurar fácilmente el monitoreo de su sitio de WordPress y minimizar el tiempo de inactividad

Con toda honestidad, el Jetpack no es algo que siempre instalo. La base de código es considerablemente más grande que la de WordPress y tiene mucha hinchazón innecesaria.

Dicho esto, Jetpack fue hecho por WordPress, así que puedes estar seguro de que no atascará tu sitio innecesariamente, especialmente porque lo que no necesitas puede ser desactivado.

¿Interesado en Jetpack?

Descargar

  • VaultPress

    VaultPress es realmente un plugin imprescindible para mí. Aunque es un servicio de pago, no hay que preocuparse por su utilidad. Pago 5 dólares al mes por copias de seguridad diarias completas con un archivo de 30 días.

    Lo que hace que VaultPress sea tan valioso es su naturaleza de “poner y olvidar”, junto con un proceso de instalación indoloro. Ya que siempre uso Amazon S3 para almacenar medios, hacer copias de seguridad de las partes restantes de mi sitio web no sería tan difícil.

    VaultPress hace las cosas tan fáciles que es mejor dejar todo a su aire. Si algo sale mal, retroceder está a sólo un clic de distancia.

    ¿Interesado en VaultPress?

    Descargar

  • Google XML Sitemaps

    Los mapas de sitio son para los ojos de los motores de búsqueda, contienen la estructura del sitio web. Los mapas de sitio XML de Google se crearon para crear un mapa de sitio totalmente compatible con Google, lo que facilitará a los motores de búsqueda el mapeo e indexación de su sitio.

    ¿Está interesado en Google XML Sitemaps?

    Descargar

  • Intentos de acceso limitado

    Este gran plugin te da una capa adicional de seguridad limitando el número de veces que los usuarios pueden intentar iniciar sesión. No es una lista enorme de características, pero hace su tarea muy bien.

    ¿Interesado en los intentos de acceso al límite?

    Descargar

  • All In One SEO Pacl

    El SEO es una gran parte de la construcción de una presencia en la web. Los plugins como All In One SEO Pack le ayudan a controlar la optimización de su sitio web mostrándole análisis de palabras clave, permitiéndole establecer atributos meta y mucho más.

    El SEO de WordPress de Yoast es también una alternativa enormemente popular, ambas grandes opciones.

    ¿Interesado en All In One SEO Pacl?

    Descargar

  • iThemes Security

    La seguridad de iThemes (antes conocida como Better WP Security) es genial como una capa adicional de seguridad para tu instalación de WordPress. Puede hacer cosas como cambiar la URL de tu área de administración, monitorear los archivos en busca de cambios, escanear en busca de vulnerabilidades y más.

    ¿Interesado en iThemes Security?

    Descargar

  • Instalación del plugin

    Podrías instalar estos plugins a través del administrador de WordPress pero es un gran desperdicio. No sólo tienes que esperar a que termine cada instalación, sino que tienes que buscar cada plugin y navegar por varias páginas para cada proceso de instalación. WP-CLI hace esto mucho más fácil, aquí hay un comando que instalará todos los plugins de arriba:

    Leer
    Cómo añadir flexibilidad a las opciones de comentarios de WordPress

    1wp plugin install amazon-s3-and-cloudfront akismet w3-total-cache jetpack vaultpress google-sitemap-generator limit-login-attempts

    Poniendo todo junto

    Volviendo al punto de partida, veamos cómo se puede automatizar todo esto usando un guión bash. El bash script usará WP-CLI para encargarse de nuestra instalación de WordPress (plugins y todo), incluso creará nuestro archivo .htaccess para nosotros. Vamos a saltar directamente creando un archivo “install.sh” en el directorio de instalación previsto y añadiendo los siguientes contenidos.

    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697#!/bin/bash# Variables de configuraciónDBNAME=mydatabaseDBUSER=databaseuserDBPASS=dnpassDBHOST=localhostDBPREFIX=C8v8D2_eomGf_URL=http://urlofsite.comTITLE=SiteTitleADMINUSER=danielpatakiADMINPASS=mypasswordADMINEMAIL=myeamil@myemail.comREPOPLUGINS="amazon-s3-and-cloudfront w3-total-cache jetpack vaultpress google-sitemap-generator limit-login-attempts"# Crear Archivo Htaccess con Firewallcat > .htaccess << "EOF"<ifModule mod_alias.c<gt;RedirectMatch 403 /($|||*)/?$RedirectMatch 403 (?i)(<|>|:|;|'|s)RedirectMatch 403 (?i)([a-zA-Z0-9]{18})RedirectMatch 403 (?RedirectMatch 403. (i) (https?ftp|php)N:/RedirectMatch 403. (i) (N-amp;amp;quot;N-amp;amp;amp;N-amp;amp;N-amp;amp;oso).RedirectMatch 403 (?i)/(author-panel|submitenN-articulos)/?$RedirectMatch 403 (?i)/((([0-9]{5})|([0-9]{6}))N-([0-9]{10})}.(gif|jpg|png)RedirectMatch 403 (?i)(|,|///barrido).RedirectMatch 403 (?i)/uploads/([0-9]+)/([0-9]+)/(cache|cached|wp-opt|wp-supercache)N-phpRedirectMatch 403 (?RedirectMatch 403. (asp|bash|cfg|cgi|dll|exe|hg|ini|jsp|log|mdbout|sql|svn|swp|tar|rar|rdf|bien) ¿RedirectMatch 403 (?i)/(^$|1|addlink|btn_hover|contacto?|dkscsearch, ddmpdf, easyboard,ezooms, formvars, fotter, fpw, imagemanager, index1, install,iprober, legacy, comments, join, js, scraper, mapcms, mobiquo, phpinfo, phpspy, pingserver, play, postgres, product, register, scraper, shell, signup, single default, tqlpatch, test, textboxes.wWw.Subs-Team.Tv P r e s e n t a . M e r c a d o s d e l a C o m p r e s e n t a ….por el mejor de los casos.Notas de la edición de notas de la página web de Sicore. RedirectMatch 403 (esto).attr|||título7BshopURL|%7Dimages|||vti__(null)|$itemURL|pregunta/datos/aspecto/documento de cosecha.|funciona.netdefender/hui phpMyAdmin/configproc/self/skin/zero_vote/spaw2?opciones)</ifModule># 6G:[QUERY STRINGS]<IfModule mod_rewrite.c>RewriteCond %{REQUEST_URI} !^/$ [NC]RewriteCond %{QUERY_STRING} (mod|path|tag)= [NC,OR]RewriteCond %{QUERY_STRING} ([a-zA-Z0-9]{32}) [NC,OR]RewriteCond %{QUERY_STRING} (localhost|loopback|127.0N-[NC,OR]RewriteCond %{N-Cuerda_de_Preguntas}(N-Cuerda_de_Preguntas).ini|cast|declarar|drop|echo.*kae|environ|etc/passwd|ejecutar|fichero de entrada|insertar|md5|mosconfig|escáner|seleccionar|set|union|actualizar) [NC]RewriteRule .* – [F,L]</IfModule># 6G:[AGENTES USUARIOS]<ifModule mod_setenvif.c>#SetEnvIfNoCase User-Agent ^$ keep_outSetEnvIfNoCase User-Agent (<|>|'|<|…keep_outSetEnvIfNoCase User…Agente (archiver|binlar|casper|checkprivacy|clshttp|cmsworldmap|comodo|curl|diavol|dotbot|email|extractas|feedfinder|flicky|grab|cosecha|httrack|ia_archiver|jakarta|kmccrew|libwww|loader|miner|nikto|nutch|planetwork|purebot|pycurl|python|scan|skygrid|sucker|turnit|vikspider|wget|winhttp|youda|zmeu|zune) keep_out<limit GET POST PUT>Order Allow,DenyAllow from allDeny from env=keep_out</limit></ifModule># 6G:[REFERENCIAS]</ifModule mod_rewrite.c>RewriteCond %{HTTP_REFERER} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]RewriteCond %{HTTP_REFERER} ([a-zA-Z0-9]{32}) [NC]RewriteRule.* – [F,L]</IfModule># 6G:[BAD IPS]<Limit GET POST PUT>Order Allow,DenyAllow from all# uncomment/edit/repeat next line to block IPs# Deny from 123.456.789</Limit># Instalar el núcleo de WordPresswp descargar;wp core config –dbname=${DBNAME} –dbuser=${DBUSER} –dbpass=${DBPASS} –dbhost=${DBHOST} –dbprefix=${DBPREFIX} –extra-php <<PHPdefine( 'AUTOSAVE_IN

    Eso es un poco exagerado, pero puedes arreglártelas sin modificar el código, sólo las variables de la parte superior de cada instalación. ¡Vamos a desglosarlo!

    Primero, definimos las variables que usaremos a lo largo del guión. El propósito de esto es hacerlo tan reutilizable como sea posible. Luego, creamos el archivo .htaccess y le agregamos el código del firewall.

    El siguiente paso es instalar el propio WordPress. Descargamos los archivos y creamos el archivo de configuración, basado en nuestras variables definidas. Tengan en cuenta que he añadido código adicional al archivo de configuración. Definí las constantes de las que hablamos y añadí mi clave y secreto de Amazon, que es usado por el plugin Amazon S3. Se crea la base de datos y se ejecuta el procedimiento de instalación.

    El siguiente paso es instalar todos los plugins que mencioné. Mantengo una lista de estos en una variable ya que a veces quiero añadir o quitar algunos de ellos. Tengan en cuenta que Akismet no está en esta lista porque viene incluido en WordPress.

    Finalmente borramos el post de Hello World, el plugin de Hello Dolly, cambiamos la estructura de reescritura al formato año/mes/día y borramos las reglas de reescritura.

    Una vez que nuestro guión esté listo, se puede ejecutar introduciendo el siguiente comando:

    1bash install.sh

    Conclusión

    Como han visto aquí es posible descargar, configurar, instalar, asegurar y optimizar WordPress con un simple comando de la terminal.

    Puede que necesites ajustar algunos de tus sitios, pero comparado con los 30 minutos o así que esto llevaría de otra manera, ¡este método de 30 segundos no es tan malo!

    Como siempre, recuerda hacer tuyo este ejemplo! ¿Tienes algún otro plugin que recomiendes? ¿Haces las cosas de manera diferente o tienes una manera aún mejor o más rápida de instalar WordPress? Háznoslo saber en los comentarios.

    Crédito de la imagen: Keoni Cabrai

    1,6 millones de superhéroes de WordPress leen y confían en nuestro blog. Únete a ellos y recibe entradas diarias en tu bandeja de entrada – ¡gratis!

    Deja una respuesta