문제

PHP에서 웹 앱을 작성하고 있으며 업데이트 시스템을 구축 할 시간이 왔습니다. 요구 사항 중 하나는 자동 업데이트입니다. 어떻게해야합니까?

CRON없이 수행하고 싶기 때문에 시스템에 대한 요청이 이루어질 때 업데이트를 확인해야합니다. 관리자가 상당한 개인, 로그인이있는 경우에만이 작업을 수행해야한다고 생각합니다. 최고이지만 적어도 1 명 이상의 고객은 몇 달마다 로그인하려고하기 때문에이를 원하지 않는다고 말했지만 여전히 보안 업데이트를 원합니다.

도움이 되었습니까?

해결책

아마도 사이트에 최신 버전 번호가 가장 큰 작은 XML 파일과 다운로드 할 URL을 반환하는 페이지가있을 수 있습니다.

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

그런 다음 관리자가 수행 및 업그레이드를 선택하면 응용 프로그램은 XML 파일 및 현재 버전 번호의 URL 이외의 다른 것을 알 필요가 없습니다.

물론 이것은 당신이 당신의 마음 내용으로 확장 할 수있는 매우 제한된 예입니다.

다른 팁

versioning ofcourse를 사용하십시오!

이 '플러그인'은 대부분의 제작 사이트에 포함되어 있습니다.

    <?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();

이것을 .htpasswed 사이트 뒤에 놓고 SVN에서 '생산 설정'을 업데이트하지 않도록하십시오. ET Voila, 귀하는 귀하의 사이트에 하나의 HTTP 쿼리를 사용하여 전체 코드베이스를 업데이트합니다. :) SVN은 파일을 자동으로 덮어 쓰고 숨겨진 파일이나 폴더가 남아 있으며 특정 버전으로 업데이트하거나 되돌릴 수 있도록 쉽게 조정할 수 있습니다. 이제 팀이해야 할 일은 SVN 저장소에 커밋하고 테스트 환경 에서이 코드를 실행하고 모든 것이 작동하는지 확인한 다음 생산시 실행하는 것입니다. :)

누가 업데이트를 만들 것입니까? 그것이 당신이라면, 업데이트가 서버가 만들 때 서버로 푸시하는 것이 무엇입니까? 업데이트가 작성되면 Rsync를 통해 OVER를 사용하면 서버가 즉시 최신 상태가됩니다. 그것은 Cron을 능가하며 사용자가 페이지로드되기를 기다리는 동안 확실히 확인을 능가합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top