Site icon Mi blog personal

Despliegue automatizado de aplicaciones PHP usando Github Push

Hoy en día la mayoría de mis proyectos secundarios se gestionan con Github. Tiene más ventajas y flexibilidad para gestionar las versiones de los archivos. Estoy siguiendo un sistema de webhooks diferente para desplegar automáticamente mis antiguos proyectos PHP. No estoy seguro de los estándares, pero la siguiente solución es un enfoque alternativo que puede resolver tu problema de despliegue para cada push de Github.

Crear un repositorio privado en Github
Ve a Github y crea un repositorio privado.

Genera un token de usuario
Ve a la Configuración de Github -> Configuración del Desarrollador -> Tokens de Acceso Personal. Aquí puedes elegir la fecha de caducidad del token.

Clona tu proyecto
Puedes comprobar el proyecto usando el token secreto de desarrollador. Asegúrate de no compartir el token de desarrollador con nadie y de no confirmarlo en Github.

Has push a los cambios
Puedes crear o añadir archivos aquí y hacer push al repositorio

Cambios en el repositorio
Aquí he agregado un index.php

Hacer deploy al archivo Webhook
Cree un archivo your-php-application-deploy.php en el nivel raíz /var/www/html para Apache. Si estás usando XAMPP, créalo en el directorio opt/lampp/htdocs. Aquí el código utiliza su propia secret key para la ejecución del código directamente.
Ejecución del shell


Nota: Aquí va el código secreto no el token personal de desarrollador de Github

Permisos de ejecución
Para ejecutar el shell hay que aplicar el permiso de usuario www-data .

Apache

XAMPP

Añadir Webhook
Ve a la configuración del proyecto Github y selecciona webhook. Encontrarás el botón Añadir Webhook

Crear un Webhook
Añade la url de deploy.php con tu código secreto.

Haz push de los nuevos cambios
Puedes modificar o añadir archivos aquí y hacer push al repositorio

Entregas recientes
Ahora cada push de Github activará el archivo de despliegue de webhook.

Request
Solicitud de Github con código secreto.

Respuesta del archivo webhook
Respuesta del webhook.

Exit mobile version