웹 응용 프로그램의 개발 및 유지 관리에서 데이터베이스의 정기적 인 백업은 데이터 보안을 보장하는 데 중요한 작업입니다. 압축 패키지에 데이터베이스 백업 파일을 포장하면 저장 공간을 효과적으로 저장할 수있을뿐만 아니라 관리를 용이하게 할 수 있습니다. PHP의 ziparchive 클래스는 .zip 형식 압축 패키지를 처리하는 간단하고 강력한 방법을 제공합니다. 이 기사에서는 PHP Ziparchive 클래스를 통해 데이터베이스 백업을 .zip 파일로 압축하는 방법을 자세히 소개합니다.
ziparchive 클래스를 사용하기 전에 먼저 PHP가 ZIP 확장을 활성화해야합니다. php.ini 파일에서 다음 구성 항목을 찾고 활성화하십시오.
<span class="fun">확장자 = zip</span>
ziparchive 인스턴스를 생성하고 새로운 Zippack 파일을 여는 데 사용해야합니다. 관련 코드 예는 다음과 같습니다.
<span class="fun">$ Zip = New ZipACHIVE ();</span>
<span class="fun">$ ZipName = 'backup_'. 날짜 ( 'ym-d_h-is'). '.지퍼';</span>
<span class="fun">if ($ Zip-> Open ($ ZipName, ZipAncive :: Create | ZipArchive :: Overwrite) === true) {</span>
<span class="fun">// 데이터베이스 백업 파일을 추가하려는 코드가 여기에 배치됩니다.</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">} 또 다른 {</span>
<span class="fun">종료 ( '지핑 패키지 파일을 열 수 없음);</span>
이 코드에서는 PHP의`date ()`함수를 사용하여 현재 날짜와 시간에 따라 동적 파일 이름을 생성하고 Ziparchive 오프닝 모드를`ziparchive :: create |로 설정합니다. ziparchive :: ourwrite`는 파일이 이미 존재하면 덮어 쓰기입니다.
다음으로 데이터베이스 백업 파일을 ZIPPER 패키지에 추가합니다. MySQL을 예로 들어, 'MySQLDump` 명령을 사용하여 데이터베이스 백업을 수행하고 .zip 파일에 백업 파일을 추가합니다.
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'username';</span>
<span class="fun">$ dbpassword = '비밀번호';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupfile = 'database_backup.sql';</span>
<span class="fun">$ command = "mysqldump ---single-transaction-host = $ dbhost --user = $ dbusername-password = $ dbpassword $ dbname> $ backupfile";</span>
<span class="fun">시스템 ($ command);</span>
<span class="fun">$ zip-> addfile ($ backupfile);</span>
위의 코드를 통해 MySQL 데이터베이스를`mysqldump` 명령을 통해 SQL 파일로 백업 한 다음 백업 파일을 생성 된 압축 패키지에 추가합니다. `addfile ()`메소드를 호출하기 전에 백업 파일이 존재해야합니다.
파일이 추가되면 zip 패키지 파일을 닫고 임시 백업 파일을 삭제해야합니다. 다음은 관련 코드입니다.
<span class="fun">$ zip-> close ();</span>
<span class="fun">Unlink ($ backupfile);</span>
<span class="fun">Echo '데이터베이스 백업이 성공적이었습니다! ';;</span>
이 코드에서는 먼저 Zip 패키지를 닫은 다음`Unlink ()`함수를 사용하여 로컬 백업 파일을 Zip 패키지에 성공적으로 추가했기 때문에 로컬 백업 파일을 삭제했습니다.
다음은 데이터베이스 백업을 구현하고 .zip 파일로 압축하는 방법을 보여주는 완전한 코드 예제입니다.
<span class="fun">$ Zip = New ZipACHIVE ();</span>
<span class="fun">$ ZipName = 'backup_'. 날짜 ( 'ym-d_h-is'). '.지퍼';</span>
<span class="fun">if ($ Zip-> Open ($ ZipName, ZipAncive :: Create | ZipArchive :: Overwrite) === true) {</span>
<span class="fun">$ dbhost = 'localhost';</span>
<span class="fun">$ dbusername = 'username';</span>
<span class="fun">$ dbpassword = '비밀번호';</span>
<span class="fun">$ dbname = 'database_name';</span>
<span class="fun">$ backupfile = 'database_backup.sql';</span>
<span class="fun">$ command = "mysqldump ---single-transaction-host = $ dbhost --user = $ dbusername-password = $ dbpassword $ dbname> $ backupfile";</span>
<span class="fun">시스템 ($ command);</span>
<span class="fun">$ zip-> addfile ($ backupfile);</span>
<span class="fun">$ zip-> close ();</span>
<span class="fun">Unlink ($ backupfile);</span>
<span class="fun">Echo '데이터베이스 백업이 성공적이었습니다! ';;</span>
위의 코드를 사용하면 PHP Ziparchive 클래스를 사용하여 데이터베이스 백업 파일을 .zip 파일로 쉽게 압축 할 수 있습니다. 이 접근 방식은 백업 프로세스를 단순화 할뿐만 아니라 백업 파일의 관리 및 저장을보다 효율적으로 만듭니다. 다른 데이터베이스 및 백업 요구 사항에 적응 해야하는 요구에 따라 코드를 수정하고 조정할 수 있습니다.