PHP는 널리 사용되는 스크립팅 언어이며 종종 웹 개발에 사용되는 반면 XVFB (X Virtual FrameBuffer)는 가상 디스플레이 도구입니다. 실제 디스플레이가없는 서버 환경에서 XVFB를 사용하여 가상 디스플레이를 시뮬레이션하여 그래픽 인터페이스가 필요한 작업을 완료 할 수 있습니다. 이 기사에서는 PHP에서 XVFB를 사용하는 방법에 대한 자세한 소개를 제공합니다.
PHP를 설치하려면 먼저 필요한 종속성 라이브러리를 설치해야합니다.
sudo apt-get install -y build-essential
sudo apt-get install -y libxml2-dev
sudo apt-get install -y libcurl4-openssl-dev
sudo apt-get install -y libjpeg-dev libpng-dev libfreetype6-dev libssl-dev
다음으로 PHP 설치 :
sudo apt-get install -y php7.4
또한 GD 확장자를 예로 들어 PHP 확장 구성 요소를 설치해야합니다.
sudo apt-get install -y php7.4-gd
XVFB 설치는 매우 간단합니다. 다음 명령을 실행하십시오.
sudo apt-get install -y xvfb
설치가 완료되면 다음 명령을 통해 XVFB의 버전 정보를 볼 수 있습니다.
Xvfb -version
다음으로 가상 화면에서 스크린 샷을 찍기위한 간단한 PHP 프로그램을 작성합니다.
<?php
// 초기화Xvfb
$xvfbProcess = new Process(['Xvfb', ':99', '-screen', '0', '1024x768x24']);
$xvfbProcess->start();
<p>// 기다리다Xvfb스타트 업이 완료되었습니다<br>
sleep(2);</p>
<p>// 시작Firefox브라우저<br>
$firefoxProcess = new Process(['firefox', '--display=:99']);<br>
$firefoxProcess->start();</p>
<p>// 기다리다Firefox스타트 업이 완료되었습니다<br>
sleep(10);</p>
<p>// 스크린 샷 명령을 실행하십시오<br>
$screenshotProcess = new Process(['firefox-esr', '--display=:99', '--screenshot', '/var/www/html/test.png']);<br>
$screenshotProcess->run();</p>
<p>// 폐쇄Firefox<br>
$firefoxProcess->stop();</p>
<p>// 폐쇄Xvfb<br>
$xvfbProcess->stop();<br>
명령 줄 에서이 PHP 프로그램을 실행하려면 웹 서버에 XVFB 및 PHP가 올바르게 설치되어 있는지 확인해야합니다. 명령 실행 :
php /var/www/html/screenshot.php
실행 후 생성 된 스크린 샷 파일`test.png`가`/var/www/html/`디렉토리에 표시됩니다.
XVFB 및 PHP를 사용하면 그래픽 작업을위한 물리적 모니터없이 환경에서 가상 모니터를 시뮬레이션 할 수 있습니다. 그러나 XVFB는 하드웨어 가속을 지원하지 않으며 실제 그래픽 인터페이스에 비해 성능이 감소합니다. 응용 프로그램에 고성능 요구 사항이있는 경우 다른보다 적합한 솔루션을 고려하십시오.