2012-06-26 2 views
0

SFTP를 사용하여 정기적으로 여러 서버에 업데이트되고 복사되는 PHP/MySQL 웹 응용 프로그램이 있습니다.PHP 웹 응용 프로그램에서 설치된 버전을 감지하는 가장 좋은 방법

일부 업데이트의 경우 데이터베이스 또는 파일 시스템을 변경해야합니다. 일반적으로 모든 것을 검사하고 업데이트하는 update.php 스크립트를 수동으로 실행해야합니다.

수동 작업을 줄이기위한 새로운 업데이트가 있는지 여부를 응용 프로그램에서 확인하도록하고 싶습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

생각하고 계신 것 같습니까?

파일에 최신 버전을 기록하고 업로드중인 스크립트에 현재 버전을 기록하십시오.

버전 구문 분석에서 원하는만큼 복잡하게 추가 할 수 있습니다.

가장 간단한 예 :

define('CURRENT_VERSION', 2); 

$lastVersion = (int)file_get_contents('VERSION'); 

if (CURRENT_VERSION > $lastVersion) { 
    if (update()) { 
     file_put_contents('VERSION', CURRENT_VERSION); 
    } 
} 

또한 update.php이 존재한다는 사실에 의해 업데이 트의 존재를 감지 할 수있다. 거기에 있다면 실행하고 삭제하십시오. 업데이트가 실패 할 경우 자체 오류 검사 및 대체 기능을 추가하십시오.

if (file_exists('update.php')) { 
    require('update.php'); 
    unlink('update.php'); 
} 
+0

나는 두 번째 아이디어를 좋아한다. 간단하고 성능 오버 헤드가 거의 없습니다. Thnx. – Martijn

+0

@Martijn : update.php에서 현재/최신 버전을 추적했는지 확인하십시오. 어떤 이유로 든 삭제되지 않으면 업데이트를 두 번 적용하려고하지 않을 것입니다 (예 : 권한 콕업) – Leigh

0

현재 응용 프로그램 (예제 XML 파일) 의 버전과 XML 파일에 원격 서버의 응용 프로그램의 최신 버전을 저장하려고 시도 할 수있는 유일한 방법은 cron 작업을 실행하는 것입니다 최신 버전 값을 가진 원격 서버에서 가져온 XML 파일과 현재 버전 간의 비교를 실행하는 PHP 스크립트를 실행하는 데 4 일에 한 번 또는 일주일에 한 번씩, 전자 메일 또는 응용 프로그램의 메시지를 통해 알려야합니다. XML 파일에 저장할 수있는 추가 정보,이 업데이트의 중요도 또는 업데이트에 대한 정보입니다.

도움이 되었기를 바랍니다.

관련 문제