Phar를 사용하여 PHP에서 프로젝트를 패키징하는 방법

WBOY
풀어 주다: 2023-06-27 17:46:01
원래의
2129명이 탐색했습니다.

Phar는 PHP용 확장 라이브러리입니다. 전체 PHP 프로젝트를 실행 파일로 패키징할 수 있으므로 PHP 및 관련 종속 라이브러리를 설치할 필요 없이 다양한 환경에서 프로젝트를 쉽게 실행할 수 있습니다. 동시에, 이 실행 파일은 프로젝트의 보안을 보호하기 위해 암호화될 수도 있습니다.

이 글에서는 Phar를 사용하여 PHP 프로젝트를 패키징하는 방법을 소개합니다.

  1. Phar 확장 라이브러리 설치

Phar 확장 라이브러리를 사용하려면 먼저 PHP에 Phar 확장을 설치해야 합니다. Linux 환경에서는 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install php-phar
로그인 후 복사

Windows 환경에서는 php.ini 파일에서 Phar 확장을 활성화하고 다음 명령문 앞의 세미콜론을 제거할 수 있습니다.

;extension=php_phar.dll
로그인 후 복사
  1. 프로젝트 패키지화

Phar 전체 프로젝트를 .phar 파일로 패키징할 수 있는 패키징 도구 phar가 제공됩니다.

터미널에 다음 명령을 입력하세요:

php phar -c gz -f myapp.phar /path/to/myapp
로그인 후 복사

그 중 -c gz는 gzip 압축 알고리즘을 사용한다는 의미, -f myapp.phar는 출력 파일 이름이 myapp.phar임을 의미하고, /path/to/myapp는 프로젝트를 의미합니다. 패키징할 경로입니다.

패키징이 완료된 후 터미널에서 다음 명령을 실행하여 .phar 파일을 실행할 수 있습니다.

php myapp.phar
로그인 후 복사
  1. Phar 파일 암호화

Phar의 API를 사용하여 .phar 파일을 암호화하여 프로젝트 코드를 보호할 수 있습니다. 디컴파일되거나 변조되는 것을 방지합니다.

예를 들어 Phar::createDefaultStub() 메서드를 사용하여 기본 실행 스크립트를 생성하고 openssl을 사용하여 이 스크립트를 암호화할 수 있습니다.

<?php
$phar = new Phar('myapp.phar');
$phar->startBuffering();
$phar->buildFromDirectory('/path/to/myapp');
$phar->setStub($phar->createDefaultStub('index.php'));

$key = 'mysecretkey';
$iv = substr(md5($key), 0, 16);
$phar->setSignatureAlgorithm(Phar::SHA256);
$phar->stopBuffering();
$phar->setMetadata(['encryption_key' => $key]);
$content = file_get_contents('phar://myapp.phar/index.php');
$encrypted = openssl_encrypt($content, 'AES-256-CBC', $key, null, $iv);
$phar->setStub("<?php __HALT_COMPILER(); ?>$encrypted");
로그인 후 복사

위 코드에서 $key는 암호화 키이고 $iv는 초기 벡터 . 실행 스크립트를 암호화한 후 암호화된 결과를 .phar 파일의 헤더에 삽입합니다. 이때 .phar 파일을 실행하려면 키를 입력해야 성공적으로 실행됩니다.

  1. Phar 파일 압축 해제

Phar 파일을 수정해야 하는 경우 PharData 클래스를 사용하여 압축을 풀 수 있습니다.

예를 들어 다음 코드를 사용하여 .phar 파일을 지정된 디렉터리에 압축을 풀 수 있습니다.

<?php
$phar = new Phar('myapp.phar');
$phar->extractTo('/path/to/extract');
로그인 후 복사

압축 풀기가 완료된 후 프로젝트를 수정하고 디버깅할 수 있습니다.

요약

Phar는 전체 PHP 프로젝트를 실행 파일로 쉽게 패키징하고 암호화할 수 있는 매우 실용적인 PHP 확장 라이브러리입니다. 실제 프로젝트 개발에서 Phar를 사용하면 배포 프로세스를 단순화하고 프로젝트 운영 효율성과 보안을 향상시킬 수 있습니다.

위 내용은 Phar를 사용하여 PHP에서 프로젝트를 패키징하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿