Alojar imagenes de Wordpress en subdominio

in #spanish7 years ago

De forma predeterminada, las imágenes de un sitio están alojadas en el mismo dominio; esto reduce la velocidad de carga de la pagina debido a que casi todos los navegadores crean un máximo de dos a cuatro conexiones al descargar una página desde el servidor web. Así que si la página contiene muchas imagenes, entonces es aconsejable alojar las imágenes en un subdominio para que el navegador pueda descargar las imágenes en paralelo al dominio principal.

En este artículo explicaré cómo alojar las imágenes de un sitio web wordpress en un subdominio.

Para los ejemplos en este articulo se utilizó un servidor con las siguientes caracteristicas:

  • Ubunt 16.04
  • Servidor Web: Apache 2.4
  • Versión de PHP: 7.0
  • Panel de Control ISPConfig 3.1
  • Editor de texto Nano

Crear el subdominio

Debemos crear un subdominio que apunte a nuestro servidor especificamente a la carpeta wp-content/uploads de Wordpress, la forma de realizar este paso puede variar dependiendo del panel de control utilizado, en este caso ISPConfig no permite crear subdominios apuntando a subcarpetas de otro dominio, por tanto la configuración se hara manual;

Primero crearemos un registro DNS A con el nombre del subdominio y apuntando a nuestro servidor, el mecanismo de creación de este registro dependera del panel del proveedor del dominio:

img.midominio.com. IN A XX.XX.XX.XX

Siendo img.midominio.com el subdominio para imagenes y XX.XX.XX.XX la dirección IP del servidor.

Luego, en nuestro servidor crearemos un archivo de configuracion de apache en /etc/apache2/sites-available/ con el nombre del subdominio que usaremos para las imagenes:

nano /etc/apache2/sites-available/img.midominio.com.conf

y en el colocaremos lo siguiente:

<Virtualhost *:80>
        DocumentRoot /ruta/a/instalacion/wordpress/wp-content/uploads
        ServerName img.midominio.com
        <Directory /ruta/a/instalacion/wordpress/wp-content/uploads>
                Options -FollowSymLinks
                AllowOverride None
                Require all granted
        </Directory>
</Virtualhost>

Guardamos el archivo presionando Ctrl + O y presionando enter y salimos del editor presionando CTRL + X

Ahora habilitaremos el sitio escribiendo en la consola

a2ensite img.midominio.conf

Posteriormente recargaremos la configuracion de apache con el comando:

service apache2 reload

Cambiar la carpeta de subida de imagenes predeterminada a subdominio en WordPress

Ingrese a su panel de hosting y ejecute phpMyAdmin; seleccione la tabla wp-options y actualice el siguiente registro:

upload_url_path.png

Por el siguiente:
upload_url_path_2.png

Si no tiene phpMyAdmin puede ejecutar la siguiente consulta SQL en su base de datos, reemplazando 'img.domain.com' por el subdominio que ha creado.

UPDATE `wp_options` 
       SET `option_value` = 'http://img.midominio.com' 
   WHERE `option_name` = 'upload_url_path';

Una vez que se le ha asignado valor a este parametro de Wordpress, podra actualizarse en el portal de administración de wordpress en el menú Ajustes -> Medios

wp-admin.png
Este grupo de opciones solo es visible en el administrador de wordpress cuando el valor de upload_url_path no esta vacio.

Al establecer esta opción, la url de las nuevas images en el administrador de medios sera la del subdominio que hemos establecido:

prev-img.png

Aun cuando hemos actualizado esta configuración y en gran parte del sitio las imagenes se actualizaran correctamente, es recomendable actualizar las URL de imagenes en base de datos con las siguientes sentencias SQL

UPDATE `wp_posts` 
    SET `post_content` = REPLACE(`post_content`,'http://www.midominio.com/wp-content/uploads/','http://img.midominio.com/')
UPDATE `wp_posts` 
    SET `guid` = REPLACE(`guid`,'http://www.midominio.com/wp-content/uploads/','http://img.midominio.com/')

Redireccionar las imagenes del antiguo enlace al subdominio

Se ha actualizado la url en la base de datos, pero Google ha rastreado e indexado las imágenes antiguas. Así que redirigiremos las URL de la imagen antigua a la nueva URL para que Google sepa que esas imágenes son las mismas. Para ello, agregue la siguiente línea en su archivo .htaccess.

RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://images.midominio.com/$1

Ahora tiene su sitio web ajustado para un mejor rendimiento. :)

Sort:  

Bienvenido/a a Steemit! El mayordomo de la comunidad Hispanohablante te saluda!!

No te olvides de poner el tag spanish en tus posts.

Si tienes dudas acerca del funcionamiento te invito a que leas las Steemit FAQ:
Steemit FAQ #1
Steemit FAQ #2

Hemos creado tambien un chat en discord donde interactuamos los unos con los otros y nos promocionamos.

Chat @cervantes en Discord !!!
Y no te pierdas los audioconferencias entre los miembros cervantiles y los canales de promocion por categorias

https://discord.gg/CBKjRHn

Tambien estamos en Steemitchat https://steemit.chat/channel/HispanoHablantes

CONCURSO CERVANTES: Regalamos un viaje al SteemFest2 al finalista
valorado en 2000 SBD!!!

https://steemit.com/spanish/@cervantes/concurso-cervantes-4a-semana-paco-de-lucia



No te olvides de votar @cervantes como witness en esta pagina:

https://steemit.com/~witnesses


Este bot de bienvenida fue creado por @moisesmcardona para el equipo @cervantes basado en el script original de @felixxx

Congratulations @javierslzrh! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - France vs Croatia


Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes


Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @javierslzrh! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 61956.82
ETH 2417.96
USDT 1.00
SBD 2.62