2010-08-17 13 views
3

Nous sommes en train de créer un projet de script php; que nous vendrons aux clients.
Les clients peuvent héberger le script sur leur serveur Web.Tutoriels de gestion de processus de mise à jour de scripts PHP

Nous voudrions développer une mise à jour ou la mise à niveau processus pour ce script.
moyens si un client utilise la version 1.2 du script et nous avons publié la nouvelle version 1.3 du script, les utilisateurs seront en mesure de voir un texte disant « nouvelle version est disponible » dans le panneau de contrôle de back-end.

L'utilisateur peut mettre à jour que d'aller ou mettre à niveau la page et cliquez sur un bouton pour la mise à jour automatique du script.
Je peux comprendre que ce processus implique les choses suivantes: 1. Procédé pour vérifier la version actuelle du script disponible à partir de notre site Web à domicile.
2. Processus de mise à jour du fichier: téléchargez et mettez à jour les fichiers requis depuis mon serveur sur le serveur client.
3. Effectuez les modifications de base de données requises: Téléchargez le fichier sql de mise à niveau depuis mon serveur domestique et exécutez-le sur la base de données.

J'ai essayé google pour trouver un bon démarrage tutoriel pour me donner un coup de fouet et de vérifier si je manque quelque chose, mais je ne suis pas en mesure de trouver quoi que ce soit.
Pouvez-vous me montrer quelques tutoriels de démarrage ou un guide sur le développement ou la gestion du processus de mise à jour d'un script?
Je sais que tous les principaux scripts Open Source comme Wordpress, Joomla, osCommerce, Magento ont cette fonctionnalité. Donc, il doit y avoir des ressources disponibles pour cela sur Internet.

Merci pour votre temps .. amusez-vous! :)

+2

Une étape importante: Vérifiez la signature de tous les fichiers pour vous assurer qu'aucune modification n'a été apportée (où la mise à niveau pourrait briser le système) ... – ircmaxell

+0

ircmaxell, merci pour votre commentaire! Note: Par les utilisateurs, je voulais dire les clients de notre script. – happyhardik

Répondre

1

Est-ce besoin d'un tutoriel vraiment? il suffit de mettre votre éditeur et commencer à coder, si je vous étais, voici la façon dont je vais le faire:

  • Pour les manipuler, tous vos fichiers doivent être chmodé 777 (si unix).
  • Créez un fichier, par exemple un programme de mise à jour.php
  • ce fichier se connecte à votre site Web (par exemple boucle pour) et vérifier si une mise à jour est disponible. côté serveur
  • , pensez à faire un fichier manifeste avec des chemins vers des fichiers à remplacer + un fichier SQL avec des changements de base de données + les fichiers remplaçant et emballer tout cela dans un goudron (ou zip).
  • faire votre script updater.php télécharger cette archive et la stocker dans un répertoire local dit « temp ».
  • updater.php devra décompressez (en utilisant l'extension zip de php par exemple) pour ./temp/files
  • updater.php devra utiliser ./temp/files/manifest pour trouver et remplacer les fichiers
  • avant de procéder à des vérifications d'intégrité de fichier et assurez-vous que les fichiers n'ont pas été modifiés (comparer les sommes de contrôle).
  • base de données de contrôle aussi, avant toute modification.
  • si tout est OK, valider les modifications.
  • Supprimer les données temporaires.
  • c'est tout.

Vous pouvez ajouter un support de sauvegarde pour restaurer la copie de travail en cas d'échec.

+2

Les fichiers n'ont pas besoin d'être chmod '777'. Ils ont juste besoin d'être inscriptibles par l'utilisateur du serveur web. Laissant (ou même leur permettant d'être) eux '777' est juste un mauvais coup ... – ircmaxell

+0

@ircmaxell, droit. 777 rendra les fichiers accessibles à tous. considérer chmod restreint. – Youssef

1

Pour ce faire, nécessite une séparation solide personnalisée vs code de base. Vous devez vous assurer que les utilisateurs disposent d'un ensemble de pages distinct à intégrer dans votre code. Peut-être que vous devriez exécuter un contrôle MD5 à distance sur les pages avant d'effectuer la mise à jour. La solution la plus simple consiste à demander à votre script (côté client) d'exécuter une commande SOAp/REST en envoyant sa version et sa série sur votre serveur domestique. À son tour, votre serveur peut renvoyer un message avec la nouvelle version. Si l'utilisateur clique sur le lien, le script côté client doit envoyer une autre commande SOAP/REST avec des informations (informations FTP par exemple) pour permettre à votre serveur de se connecter et d'écraser les fichiers core. Gardez à l'esprit que les utilisateurs doivent définir les permissions chmod et chgrp/chown correctes sur les fichiers afin de pouvoir réellement connecter et écraser les fichiers.

De nombreux scripts ont cette fonctionnalité mais il existe un risque de sécurité important. Pensez-y bien si l'effort pour implémenter ce correctement en vaut la peine ... Parfois, il suffit simplement d'envoyer un fichier tar/zip.

En mettant à jour à distance, vous exécutez en grande responsabilité et les questions de sécurité ...