PHP သည်ကျယ်ပြန့်စွာအသုံးပြုသော scripting language ဖြစ်ပြီး Web Development တွင်မကြာခဏအသုံးပြုလေ့ရှိသည်။ ဆာဗာပတ် 0 န်းကျင်တွင်ရုပ်ပိုင်းဆိုင်ရာမျက်နှာပြင်မရှိဘဲ XVFB ကို virtual display ကိုတုပရန်ကိုသုံးနိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင် XVFB ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်နိဒါန်းပေးပါမည်။
PHP ကို install လုပ်ရန်လိုအပ်သောမှီခိုရာစာကြည့်တိုက်အချို့ကိုသင်ထည့်သွင်းရန်လိုအပ်သည်။
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 ကို install လုပ်ပါ။
sudo apt-get install -y php7.4
GD extension ကိုဥပမာအဖြစ်ယူမှတ်သည့် PHP တိုးချဲ့ထားသောအစိတ်အပိုင်းများကိုထည့်သွင်းရန်လည်းလိုအပ်သည်။
sudo apt-get install -y php7.4-gd
XVFB ကိုတပ်ဆင်ခြင်းသည်အလွန်ရိုးရှင်းပါသည်, အောက်ပါ command ကို Execute:
sudo apt-get install -y xvfb
တပ်ဆင်ပြီးပါက XVFB ၏ version အချက်အလက်များကိုအောက်ပါ command မှတဆင့်ကြည့်ရှုနိုင်သည်။
Xvfb -version
ထို့နောက်ကျွန်ုပ်တို့သည်ရိုးရှင်းသော PHP အစီအစဉ်ကို virtual screen တွင် Screenshots များယူရန်အတွက်ရေးပါလိမ့်မည်။
<?php
// ဖြစ်ပေါ်လာခြင်းXvfb
$xvfbProcess = new Process(['Xvfb', ':99', '-screen', '0', '1024x768x24']);
$xvfbProcess->start();
<p>// စောင့်Xvfbstartup ပြည့်စုံသည်<br>
sleep(2);</p>
<p>// စတင်တည်ထောင်သည်Firefoxဘရောင်ဇာ<br>
$firefoxProcess = new Process(['firefox', '--display=:99']);<br>
$firefoxProcess->start();</p>
<p>// စောင့်Firefoxstartup ပြည့်စုံသည်<br>
sleep(10);</p>
<p>// မျက်နှာပြင် screenshot command ကို execute<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 အစီအစဉ်ကို command line တွင် run ရန်သင်၏ဝဘ်ဆာဗာတွင် XVFB နှင့် PHP ကိုမှန်ကန်စွာတပ်ဆင်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ command ကို run
php /var/www/html/screenshot.php
Execution ပြီးနောက်သင်ထုတ်လုပ်ထားသောဖန်သားပြင်ဖိုင် `test.png `png /` `` `` `` directory တွင်တွေ့ရလိမ့်မည်။
XVFB နှင့် PHP ကိုအသုံးပြုခြင်းအားဖြင့်သင်သည် Graphical Tasks များအတွက်ရုပ်ပိုင်းဆိုင်ရာမော်နီတာမပါဘဲပတ် 0 န်းကျင်ရှိ virtual monitor ကိုဖန်တီးနိုင်သည်။ သို့သော် XVFB သည် Hardware Acceleration ကိုမထောက်ပံ့ပါ။ သင်၏လျှောက်လွှာတွင်စွမ်းဆောင်ရည်မြင့်မားသောလိုအပ်ချက်များရှိပါကအခြားပိုမိုသင့်လျော်သောဖြေရှင်းနည်းများကိုသုံးသပ်ကြည့်ပါ။