Blog

Diseño grafico · Adobe Indesign

Dockeriza WordPress con SSL en localhost en macOS

En este tutorial, aprenderás cómo dockerizar un sitio web de WordPress con SSL en tu Mac utilizando el dominio localhost. Asegúrate de seguir cada paso detalladamente para configurar correctamente tu entorno local.

Estructura de Archivos

Antes de comenzar, asegúrate de tener la siguiente estructura de archivos en tu proyecto:

Proyecto
├── docker-compose.yml
├── db
│   └── ... (datos de MariaDB)
├── wordpress
│   └── ... (datos de WordPress)
└── nginx
    ├── conf.d
    │   └── default.conf
    ├── ssl
    │   ├── fullchain.pem
    │   └── privkey.pem

Paso 1: Configurar Docker Compose

Comienza configurando tu archivo docker-compose.yml para definir los servicios de WordPress y la base de datos MySQL (MariaDB):

version: '3.9'
services:
  db:
    image: mariadb:latest
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: contraseña
      MYSQL_DATABASE: midb
      MYSQL_USER: miusuario
      MYSQL_PASSWORD: mipassword
    volumes:
      - ./db:/var/lib/mysql
    ports:
      - "3306:3306"

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./wordpress:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: miusuario
      WORDPRESS_DB_PASSWORD: mipassword
      WORDPRESS_DB_NAME: midb

  nginx:
    image: nginx:latest
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/ssl:/etc/nginx/ssl
    depends_on:
      - wordpress

Paso 2: Generar Certificados SSL para localhost

Para asegurar tu sitio web con SSL, necesitas generar certificados SSL autofirmados para localhost. Sigue pasos para generar los archivos fullchain.pem y privkey.pem:

1. Genera una clave privada (privkey.pem)

Abre una terminal y ejecuta el siguiente comando para generar una clave privada:

openssl genpkey -algorithm RSA -out privkey.pem -pkeyopt rsa_keygen_bits:2048

2. Genera una solicitud de firma de certificado (CSR)

A continuación, crea una solicitud de firma de certificado (CSR) utilizando la clave privada generada:

openssl req -new -key privkey.pem -out server.csr

Sigue las instrucciones para completar la solicitud. Asegúrate de introducir localhost como el Common Name (CN).

3. Genera un certificado autofirmado

Usa el siguiente comando para generar un certificado autofirmado válido por 365 días:

openssl x509 -req -days 365 -in server.csr -signkey privkey.pem -out fullchain.pem

Paso 3: Configurar Nginx

Configura Nginx para que utilice los certificados SSL generados. Crea un archivo de configuración en nginx/conf.d/default.conf con el siguiente contenido:

server {
    listen 80;
    server_name localhost;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name wpppppp.test;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://wordpress:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Paso 4: Actualizar el Archivo Hosts

Edita el archivo hosts en tu Mac para que localhost se resuelva correctamente:

sudo nano /etc/hosts

Añade la siguiente línea al archivo:

127.0.0.1 localhost

Guarda y cierra el archivo.

Paso 5: Reiniciar Docker y Navegador

Reinicia tus contenedores de Docker:

docker-compose down
docker-compose up

Reinicia tu navegador para asegurarte de que los cambios en los certificados y en el archivo hosts se apliquen correctamente.

Solución de Problemas en Chrome

Si Chrome muestra advertencias de seguridad, necesitarás añadir el certificado manualmente al almacén de certificados de Chrome.

Añadir Certificado en macOS

  1. Abre Acceso a Llaveros (Keychain Access).
  2. Arrastra y suelta localhost.crt en el panel de Sistema o Inicio de sesión.
  3. Haz clic derecho en el certificado importado, selecciona Obtener información, y en Confianza, selecciona Confiar siempre.

Reiniciar Chrome

Cierra todas las ventanas de Chrome y vuelve a abrir el navegador para que reconozca el certificado como confiable.

Si todavía no te reconoce el certificado continua igualmente. Con Safari no hay ningun problema. A mi ya me va bien así porque solo necesito que sea https para que me dé permisos de copiar / pegar.

Resultado

¡Felicidades! Ahora tienes un entorno de WordPress dockerizado con SSL utilizando localhost en tu Mac. Este entorno te permitirá desarrollar y probar tu sitio web de manera segura con HTTPS en tu entorno local.

Divide tu archivo PDF en archivos individuales de 2 páginas cada uno con Python

¿Necesitas dividir un archivo PDF en archivos más pequeños de solo 2 páginas cada uno?

Te muestro cómo usar Python y la biblioteca PyPDF2 para dividir fácilmente tu archivo PDF en archivos individuales, cada uno con 2 páginas. En este caso cada pagina del PDF se divide en un documento y le añade la última página del mismo que seria la parte de atras igual para todos.

Aprende cómo instalar PyPDF2, y te proporcionamos un código de ejemplo que podrás utilizar. Simplifica tu trabajo con archivos PDF voluminosos y aprovecha la flexibilidad de trabajar con secciones más pequeñas.

1. Asegúrate de tener Python instalado en tu sistema. PyPDF2 es compatible con Python 2.7 y versiones posteriores, así como con Python 3.x. Puedes verificar si tienes Python instalado abriendo una ventana de terminal o línea de comandos y ejecutando uno de los siguientes comandos:

python --version
python3 --version

Si el comando muestra la versión de Python instalada, continúa con el paso 2. Si no tienes Python instalado, puedes descargarlo e instalarlo desde el sitio web oficial de Python https://www.python.org.

2. Abre una ventana de terminal o línea de comandos e instala PyPDF2 utilizando el administrador de paquetes pip. Esto descargará e instalará automáticamente PyPDF2 y sus dependencias. Ejecuta el siguiente comando:

pip install PyPDF2

Importante: Si tienes Python 3 instalados en tu Mac, asegúrate de utilizar el comando pip3 en lugar de pip para instalarlo específicamente para Python 3. Ejecuta el siguiente comando:

pip3 install PyPDF2

Una vez que se complete la instalación, PyPDF2 estará listo para ser utilizado en tus programas de Python en tu entorno de macOS.

3. En Python, puedes utilizar la biblioteca PyPDF2 para dividir tu archivo PDF en archivos individuales. A continuación, el código en phyton para dividir el archivo PDF en documentos individuales de 2 páginas.

import os
from PyPDF2 import PdfReader, PdfWriter

def dividir_pdf(archivo_pdf, directorio_guardar_pdf, paginas_por_archivo):
    # Cargar el archivo PDF de entrada
    with open(archivo_pdf, 'rb') as file:
        pdf = PdfReader(file)
        total_paginas = len(pdf.pages)

        # Dividir el PDF en archivos más pequeños
        for i in range(0, total_paginas, paginas_por_archivo):

            # Se crea el nombre del archivo pdf
            salida_pdf = os.path.join(directorio_guardar_pdf, f'archivo-{i+1}.pdf')

            #Se crea el archivo pdf
            escritor = PdfWriter()

            # Se agrega la página al archivo pdf
            escritor.add_page(pdf.pages[i])

            # Se agrega la última pagina al archivo pdf
            escritor.add_page(pdf.pages[total_paginas-1])

            # Guardar el archivo PDF generado
            with open(salida_pdf, 'wb') as archivo_salida:
                escritor.write(archivo_salida)

# Llamar a la funcion
dividir_pdf('archivo.pdf', '/Users/impaco/Desktop/phyton/pdf', 2)


# comprimir carpeta en zip
import shutil
shutil.make_archive('pdf', 'zip', '/Users/impaco/Desktop/phyton/pdf')
  • Esta función toma tres parámetros: archivo_pdf (ruta del archivo PDF de entrada), directorio_guardar_pdf (ruta del directorio donde se guardarán los archivos PDF divididos) y paginas_por_archivo (número de páginas que se deben incluir en cada archivo PDF dividido).
  • Primero, utiliza la biblioteca PdfReader de PyPDF2 para cargar el archivo PDF de entrada y obtener el número total de páginas en el PDF.
  • Luego, usa un bucle for para dividir el PDF en archivos más pequeños. Itera desde la página 0 hasta la última página del PDF, avanzando en incrementos de paginas_por_archivo.
  • Dentro del bucle, se crea el nombre del archivo PDF de salida utilizando la variable i (número de página actual). La función os.path.join se utiliza para unir el directorio de guardar PDF con el nombre del archivo.
  • A continuación, se crea un nuevo objeto PdfWriter para el archivo PDF de salida.
  • Se agrega la página actual del PDF de entrada al nuevo archivo PDF utilizando el método add_page del objeto nuevo_pdf.
  • También se agrega la última página del PDF de entrada al nuevo archivo PDF. Esto se hace utilizando el índice total_paginas-1 para acceder a la última página.
  • Finalmente, el archivo PDF generado se guarda en el disco utilizando el archivo de salida proporcionado y el método write del objeto nuevo_pdf.

Agenda semana vista y dia vista en Indesign. Actualizada al 2023 y 2024

Ya tenemos listas y actualizadas a los años (2023 y 2024) las “Agenda semana vista  en Indesign” y “Agenda día vista en Indesign”, los archivos mas populares y descargados en Macgrafic.

Tanto la agenda en semana vista, como día vista, están totalmente actualizadas al años 2023 y 2024 con el archivo de datos perfectamente editable y permitiendo la modificación para años posteriores.

El archivo de datos de la agenda dia vista en Indesign se ha actualizado para añadir todos los dias del año mucho mas rápido.

Los diseños de las agendas están creados en un formato de página A5. Modificar el formato y el diseño es muy sencillo, solo tienes que modificar la pagina maestra, el formato de documento y después generarla!!

Comprar y descargar

Agenda dia vista en Adobe InDesign - 2024
Agenda dia vista en Adobe InDesign – 2024
Agenda semana vista en Adobe InDesign - 2024
Agenda semana vista en Adobe InDesign – 2024

Agenda semana vista y dia vista en Indesign. Actualizada al 2022 y 2023

Ya tenemos listas y actualizadas a los años (2022 y 2023) las “Agenda semana vista  en Indesign” y “Agenda día vista en Indesign”, los archivos mas populares y descargados en Macgrafic.
Tanto la agenda en semana vista, como día vista, están totalmente actualizadas al años 2022 y 2023 con el archivo de datos perfectamente editable y permitiendo la modificación para años posteriores.

Los diseños de las agendas están creados en un formato de página A5. Modificar el formato y el diseño es muy sencillo, solo tienes que modificar la pagina maestra, el formato de documento y después generarla!!

Comprar y descargar

Agenda semana vista y dia vista en Indesign. Actualizada al 2021 y 2022

Ya tenemos listas y actualizadas a los años (2021 y 2022) las “Agenda semana vista  en Indesign” y “Agenda día vista en Indesign”, los archivos mas populares y descargados en Macgrafic.
Tanto la agenda en semana vista, como día vista, están totalmente actualizadas al años 2021 y 2022 con el archivo de datos perfectamente editable y permitiendo la modificación para años posteriores.

Los diseños de las agendas están creados en un formato de página A5. Modificar el formato y el diseño es muy sencillo, solo tienes que modificar la pagina maestra, el formato de documento y después generarla!!

Comprar y descargar

Agenda semana vista y dia vista en Indesign. Actualizada al 2020 y 2021

Ya tenemos listas y actualizadas a los años (2020 y 2021) las “Agenda semana vista  en Indesign” y “Agenda día vista en Indesign”, los archivos mas populares y descargados en Macgrafic.
Tanto la agenda en semana vista, como día vista, están totalmente actualizadas al años 2020 y 2021 con el archivo de datos perfectamente editable y permitiendo la modificación para años posteriores.

Los diseños de las agendas están creados en un formato de página A5. Modificar el formato y el diseño es muy sencillo, solo tienes que modificar la pagina maestra, el formato de documento y después generarla!!

Comprar y descargar