Pregunta

Estoy escribiendo una aplicación web en PHP, y ha llegado el momento de crear un sistema de actualización, uno de los requisitos son las actualizaciones automáticas, ¿cómo debo hacer esto?

Quiero hacerlo sin un cron, por lo que tendré que buscar actualizaciones cuando se realicen solicitudes al sistema, debería hacerlo solo cuando un administrador, con importantes privilegios, inicie sesión, creo este será el mejor, pero al menos 1 cliente ha dicho que no quiere esto porque solo tienen la intención de iniciar sesión cada pocos meses y todavía quieren obtener las actualizaciones de seguridad.

¿Fue útil?

Solución

Quizás pueda tener una página en su sitio que devuelva un pequeño archivo XML con el número de versión más reciente y una URL para descargar:

<xml> <version>1.x.y</version> <url>http://example.com/current.tgz </url> </xml>

Luego, si el administrador elige realizar y actualizar, su aplicación no necesitará saber nada más que la URL del archivo XML y el número de versión actual.

Por supuesto, este es un ejemplo muy limitado sobre el cual puede expandirse al contenido de su corazón.

Otros consejos

¡Utilice el control de versiones de curso!

Incluyo este 'complemento' en la mayoría de mis sitios de producción: Por supuesto, primero debe crear una cuenta svn de robot con derechos limitados para esto y svn debe estar instalado en el servidor.

    <?php

    echo(' updating from svn<br>' );
    $username = Settings::Load()->Get('svn','username');
    $password = Settings::Load()->Get('svn','password');
    echo(" <pre>" );
    $repos = Settings::Load()->Get('svn' , 'repository');
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force");
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force");

    die();

Asegúrese de poner esto detrás de un sitio de curso .htpasswded, y asegúrese de no actualizar la 'configuración de producción' desde SVN. Et voila, actualiza su base de código completa con una consulta HTTP a su sitio :) SVN sobrescribe los archivos automáticamente, no quedan archivos o carpetas ocultos y se adapta fácilmente para actualizar o volver a una versión específica. Ahora todo lo que su equipo necesita hacer es comprometerse con su repositorio SVN, ejecutar este código en el entorno de prueba, asegurarse de que todo funcione y luego ejecutarlo en producción :)

¿Quién va a crear las actualizaciones? Si es usted, ¿por qué no simplemente enviar las actualizaciones al servidor cuando se realizan? Una vez que se escribe una actualización, simplemente sincronícela y el servidor estará inmediatamente actualizado. Es mejor que cron, y definitivamente es mejor que verificar mientras los usuarios esperan que se cargue su página.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top