Mostrando entradas con la etiqueta wordpress. Mostrar todas las entradas
Mostrando entradas con la etiqueta wordpress. Mostrar todas las entradas

domingo, 24 de enero de 2021

Instalar certificado SSL Wildcard en sitio web con Apache2


Una de las formas más importantes de asegurar el intercambio de datos entre un servidor y el cliente que accede a él es el uso de certificados SSLPara asegurar que la comunicación se realiza realmente con el servidor correcto, el servidor puede ser certificado por una institución de confianza.


Requisitos: 

  • Asegurarse de que el servidor tiene el puerto 443 (https) abierto
  • Haber adquirido un Certificado SSL en cualquier entidad certificadora oficial
  • Fichero con la Clave Privada .key 
  • Fichero de Certificado SSL .cer o .crt
  • Fichero de Certificados Intermedios .cer o .crt   


Pasos:

1. Subir los ficheros con los certificados al servidor en una carpeta a la que se tenga acceso, como por ejemplo la home : /home/personal/certificados  


2. Crea una carpeta en la ruta /etc/ssl/certs 

$ sudo mkdir /etc/ssl/certs/LaSendaDelAdmin 


3. Copia los ficheros a la ruta recién creada: 

$ sudo cp /home/personal/certificados/* /etc/ssl/certs/LaSendaDelAdmin 


4. Cambia los permisos de los ficheros: 

$ sudo chmod 777 /etc/ssl/certs/LaSendaDelAdmin/* 


5. Edita la configuración del sitio de apache: 

$ sudo vim /etc/apache2/sites-available/lasendadeladmin.conf 


6.  En la configuración del site, modifica el VirtualHost para que escuche el puerto 443 de https e incluye las 4 lineas de código para configurar los certificados en el sitio:  


<VirtualHost *:443>

    ServerAdmin webmaster@localhost

    ServerName lasendadeladmin.com

    ServerAlias www.lasendadeladmin.com

    SSLEngine on

    SSLCertificateFile /etc/ssl/certs/LaSendaDelAdmin/LaSendaDelAdmin.com_ssl_certificate.cer

    SSLCertificateKeyFile /etc/ssl/certs/LaSendaDelAdmin/*.LaSendaDelAdmin.com_private_key.key

    SSLCertificateChainFile /etc/ssl/certs/CloudGamers/*.LaSendaDelAdmin.com_ssl_certificate_INTERMEDIATE.cer

....


7. Si no esta el módulo SSL habilitado, habilitalo con el comando a2enmod ssl  : 

$ sudo a2enmod ssl 


Considering dependency setenvif for ssl:

Module setenvif already enabled

Considering dependency mime for ssl:

Module mime already enabled

Considering dependency socache_shmcb for ssl:

Enabling module socache_shmcb.

Enabling module ssl.

See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.

To activate the new configuration, you need to run:

  systemctl restart apache2


8. Ahora comprueba que no hay ningun error en el código: 

$ sudo apachectl configtest


Syntax OK


9. Una vez verificado que la sintaxis de los ficheros de configuración es correcta, ya solo queda reiniciar el servicio de apache para habilitar el sitio web ahora con el certificado:

$ sudo systemctl restart apache2



sábado, 9 de enero de 2021

Instalar Wordpress en la instancia del Free Tier de Google Cloud Platform

Como ya comenté, tanto Google como las otras compañias ofrecen un periodo de prueba donde poder probar sus plataformas de cloud de forma gratuira. Una vez concluye este periodo de prueba, es cuando toca empezar a pasar por caja, pero Google esta ofreciendo una serie de servicios de forma gratuita en un programa que muy acertadamente han llamado Always Free . Cuando este periodo 

Yo he aprovechado este servicio para crear una instancia de Linux gratuita y probar Wordpress:


A continuación os dejo los pasos para instalarlo:

Pasos: 

1. Conecta al terminal (SSH) de la instancia de GCP donde quieres instalar Wordpress.

2. El primer caso es instalar los módulos necesarios para ejecutar: APACHE2, PHP y MySQL, para ello se puede usar el comando APT-GET :

$ sudo apt-get update

$ sudo apt-get install php libapache2-mod-php mysql-server php-mysql


3.  Una vez instalado, es necesario configurar un site en apache creando un fichero de configuración:

    $ sudo vim /etc/apache2/sites-available/lasendadelwordpress.conf 

Con el siguiente contenido:

<VirtualHost *:80> 

    ServerAdmin webmaster@localhost 

    ServerName lasendadelwordpress.local 

    ServerAlias www.lasendadelwordpress.local 

    ErrorLog ${APACHE_LOG_DIR}/error_lasendadelwordpress.log 

    CustomLog ${APACHE_LOG_DIR}/access_lasendadelwordpress.log combined 


    DocumentRoot /var/www/lasendadelwordpress 

    <Directory /> 

        Options FollowSymLinks 

        AllowOverride None 

    </Directory> 

    <Directory /var/www/lasendadelwordpress

        Options Indexes FollowSymLinks MultiViews 

        AllowOverride All 

        Order allow,dany 

        allow from all 

    </Directory> 

</VirtualHost> 


4. Con el fichero de configuración creado, es necesario activar el site:

    $ sudo a2ensite wordpress 

Enabling site lasendadelwordpress.
To activate the new configuration, you need to run:
systemctl reload apache2

Despues hay que activar la reescritura de URL

    $ sudo a2enmod rewrite 

Y recargar apache

    $ sudo service apache2 reload 


5. El siguiente paso es crear una base de datos en MySQL. Es necesario abrir la linia de comando de MySQL:

$ sudo mysql -u root 

Dentro de la linia de comando SQL es necesario crear una base de datos nueva y un nuevo usuario con permisos necesarior para operarla. En negrita he destacado los comandos necesarios para crear la base de datos. 

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6076
Server version: 10.1.47-MariaDB-0+deb9u1 Debian 9.13
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

> CREATE DATABASE lasendadelwordpress;
Query OK, 1 row affected (0.17 sec)

> GRANT ALL PRIVILEGES ON lasendadelwordpress.* TO send4dmin@'localhost' IDENTIFIED BY 'tupassword’;
Query OK, 0 rows affected (0.29 sec)

> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.10 sec)

> EXIT
Bye

6. Con la base de datos creada, hay que configurar el sitio de Wordpress para ello copiaremos el fichero de configuración de ejemplo y crearemos uno nuevo con el siguiente contenido. Primero copiamos el fichero de configuración:

$ sudo copy /var/www/lasendadelwordpress/wp-config-sample.php /var/www/lasendadelwordpress/wp-config.php  
Dentro del fichero solo es necesario modificar las línias que hacen referencia a la configuración de la base de datos:

$ sudo vi wp-config-php

define('DB_NAME', '
lasendadelwordpress'); // The name of the database
define('DB_USER', '
send4dmin'); // Your MySQL username
define('DB_PASSWORD', '
tupassword'); // ... and password

8. Para iniciar el proceso de configuración de Site de wordpress es necesario acceder al enlace:  



9. Es necesario rellenar el formulario con la información requerida y clicar en Install Worpdpress 






10. Y una vez instalado, solo hay que acceder a la URL de administración del sitio y empezar a trabajar: 





martes, 5 de enero de 2021

Permalinks de Wordpress no funcionan correctamente en Apache2

 

Wordpress usa por defecto URLs del tipo http://lasendadelwordpress.com/?p=123. Esta estructura de URL  no son recomendables para el SEO. Por eso la mayoria de los sitios de Wordpress usan Permalinks, que es un termino que se para los URLs amigables para el SEO. Estos Permalinks pueden contener información del post, categoria, etiquetas y el título, permitiendo el uso de palabras clave dentro de la URL. 

Es posible activar Permalinks directamente en un sitio Wordpress simplemente accediendo a Settings > Permalinks y ahí escogiendo el tipo de URL que queremos: 




Problemas con los Permalinks


Una vez se han configurado los Permalinks en Wordpress es posible que estos no funcionen correctamente en servidores web con Apache2 o que la web no sea accesible y muestre un error tipo: 


Not Found

The requested URL was not found on this server.


Apache/2.4.25 (Debian) Server at www.lasendadeladmin.com Port 80


Esto se deve a que Permalinks requiere de tres elementos de configuración de servidor para funcionar correctament:

- Apache2 mod_rewrite

- Configuración del Site: AllowOverwrite

- Modificación .htacess 


Apache2 mod_rewrite 

Es posible habilitar cualquier módulo de apache usando el comando a2enmod. Para habilitar mod_rewrite tan solo ejecuta el comando: 

$ sudo a2enmode rewrite 

Si el módulo ya esta activado, recibiras un mensaje de sistema indicandolo. 

Una vez activado, es necesario reiniciar Apache para se aplique cualquier cambio en la configuración. Es necesario ejecutar el comando: 

$ sudo service apache2 restart

El servidor esta preparado para recibir las reglas de rewrite.


AllowOverwrite 

Por defecto Apache no permite el uso del fichero .htacess para los sitios web, por lo que es necesario editar la configuración de virtual host para pemitirlo. Es necesario añadir el siguiente código en el ficher /etc/apache2/sites-available/tusitio.conf : 

<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

Una vez actualizado es necesario recargar el Apache: 

$ sudo service apache2 reload


.htaccess 

Al activar los Permalinks, el mismo Wordpress te indica que es necesario añadir un código en el fichero .htaccess


Este fichero tiene que estar en la raiz del sitio de Wordpress (por ejemplo /var/www/html) . Es posible que este fichero no exista, de ser así solo es necesario crearlo y copiar el código dentro. 

$ sudo vi /var/www/html/.htaccess