
ãããããã
ãé ãé¢ããåºã®åã§çèŽãããäŒè©±ãè¡ã
ããŸãã ã
NB: - ?
GURU : - «» . . . , ...
NB: - , ?
GURU : - google yandex , . . , .
NB: - ?
GURU : - ?⊠...
NBã¯è³ªåããããæããã«çµéšè±å¯ãªå¯Ÿè«è
ãå°ãããããšãæããã
ãŸãã§ãããã·ãããã¯ã®æ¯æžã匷調ããæ²é»ããŠãããã®ããã«ã
GURUã¯ç®ã転ãããŸãã...
ãã¡ããã
GURUã¯ãæ€çŽ¢ã¯ãšãªïŒããšãã°ãåèªïŒãããã·ã«ããïŒã«ãã£ãŠã
NBãããã«ç®çã®ã¢ãã¬ã¹ïŒããŒããªã¹ããååŸããããšãç¥ã£ãŠããŸããã ããããæåã®å®éšã®åŸã
NBã¯åããããè¿
éã«ç解ããŸãã
- 圌ã®ãªã¹ãã®ãã¹ãŠã®ã¢ãã¬ã¹ãæ©èœããŠããããã§ã¯ãããŸããã
- ãã¹ãŠã®ãããã·ãåçã«åªããŠããããã§ã¯ãããŸããã
- ãããã·ãä»ããŠæåã§ãµã€ãããã¹ãã£ããã³ã°ãããããšã¯ãããªãã®æå¿ãå¿
èŠãšããã¿ã¹ã¯ã§ãã
- ãééã£ãããããã·ã¯ç¶æ³ã害ããŸãã ãã®ãµã€ãã¯ã©ããã®å·šäººã®ã¹ã¯ãªããã«ãã£ãŠçãããå¯èœæ§ããããŸãã
ãã®èšäºã§ã¯ãå³èïŒãããŠæãéèŠãªããšã«ã¯æ®éçïŒã®æå³ã«ã€ããŠèª¬æããŸã
ïŒ
ZennoPosterãªã©ã®ç¹å®ã®å°çšãœãããŠã§ã¢ã䜿çšããã«...ïŒ
ãæ¬åœã«é©åãªããããã·ã®ãªã¹ããååŸãããããã䜿çšããŠããã¢ãŒããžã®ïŒèªååãããïŒèšªåãæŽçããããã®èªååããŒã«ãæ§ç¯ãã
Chromeãã©ãŠã¶ã䜿çšãããµã€ãã
æ瀺ã«åŸã£ãŠã次ã®ããšãå¯èœã«ããæ¢è£œã®ããŒã«ãååŸããŸãã
- ãã¯ãªãã¯ã-䟵害ãæããããšãªããã¿ãŒã²ãããµã€ããå®å
šã«èªåçã«ïŒèšªåïŒããŸãã
- ãŠãŒã¶ãŒã®è¡åãå®å
šã«ãšãã¥ã¬ãŒãããŸãã
- ã¹ã±ãžã¥ãŒã«ïŒã·ããªãªïŒã«åŸã£ãŠãã¹ãŠã®èšªåãæŽçããŸãã
- åé²ããããã«å¿
èŠãªåæ°ã§äžèšã®ãã¹ãŠãè¡ããŸãã
ãããŠãç§ã®ç 究ã¯ãã¹ãŠïŒç 究ãšäžç·ã«ïŒ1é±éããããŸãããã
ã³ãã³ãã©ã€ã³ ã
PHP ãããã³
JavaScriptã®åºæ¬çãªç¥èãããã°ããã®ãããªããŒã«ãäœæããã®ã«2æ¥éã¯å¿
èŠãããŸããã
ãã ãã
次ã®å³ã®äžã«ã¹ã¯ããŒã«ããåã«ããã®è³æããªã誰ã®ããã«æºåãããŠãããã«ã€ããŠå°ã説æããŸãã
æ§æïŒãŸãã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒïŒãã©ã®ããã«é
眮ãããŠããããç解ãããå Žåããã®è³æã¯åœ¹ç«ã¡ãŸããããã«ãããè² è·ã®å€åã«é©å¿ããã³ã¹ãããããã«æ¯èŒçè¿
éãã€ç°¡åã«ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã ãµãŒãã¹ãã¹ïŒ
ESB ïŒã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå¯èœæ§ã«é¢å¿ãããå Žåã
ãã®ããã¹ãã¯ã
Dockerã䜿çšããŠ
ã€ã³ã¹ã¿ã³ããã«ãã£ã³ã°ã·ã¹ãã ã䜿çšããæ¹æ³ãç¥ãããå Žåã«åœ¹ç«ã¡ãŸãã ãŸãã¯ã
Selenium Serverãšãã³ã³ãã³ãã®åä¿¡/ HTTPxã¢ã¯ãã£ããã£ã®å
åã«èå³ãããã ãã®å Žåã
ãããã«äœ¿çšãããããã«ãææ
®æ·±ãããããã¹ãŠèªãããšã¯äŸ¡å€ããããŸããã ã³ãŒãã¯ç¢ºãã§ãã
å®æããããŒã«ã®ã»ããã¢ããã«çŽè¡ããŸãã ã»ããã¢ããã«ãããæéã¯20åæªæºã§ãããã®ããã¥ã¢ã«ã§ã¯ãUbuntu 18.04ãã€ã³ã¹ããŒã«ããã2å°ã®ãã·ã³ãèªç±ã«äœ¿çšã§ããããšãåæãšããŠããŸãã
1ã€ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒ
docker ïŒçšã§ããã1ã€ã¯ããã»ã¹å¶åŸ¡ïŒ
process ïŒçšã§ãã
次ã®ããã±ãŒãžãæ¢ã«
dockerã«ã€ã³ã¹ããŒã«ãããŠãããšæ³å®ãããŸãã
gitãdockerãdocker-compose
次ã®ããã±ãŒãžã
ããã»ã¹ã«æ¢ã«ã€ã³ã¹ããŒã«ãããŠãããšæ³å®ãã
ãŸã ã
gitãphp-commonãphp-cliãphp-curlãphp-zipãphp-memcachedãã³ã³ããŒã¶ãŒ
ãã®æç¹ã§è³ªåãããå Žåã¯ãè³æå
šäœã15åéèªãããšããå§ãããŸãã
ããã«ãŒ
åŠç
Webããã«ïŒhttpïŒ// docker-machineã®IPã¢ãã¬ã¹ïŒ8080ïŒã§äœãèµ·ãã£ãŠããããèŠãŠãã ããã
çµæã¯ãæ€çŽ¢ããããã¥ãŒã§å©çšå¯èœã«ãªããŸãã
ç²ç ãšèšç»

äžèšã®å³ã¯ãããã»ã¹ã¹ãããã®ã·ãŒã±ã³ã¹ãåã¹ãããã®äºæ³çµæãããã³åããŒãã®äœæã«å¿
èŠãªãªãœãŒã¹ã説æããŠããŸãïŒè©³çŽ°ïŒ
ã¿ã¹ã¯2 ã
ã¿ã¹ã¯3 ã
ã¿ã¹ã¯4,5,6 ïŒã
ç§ã®å Žåããã¹ãŠã2å°ã®
Ubuntu 18.04ãã·ã³ã§çºçããŸãã ãããã®1ã€ãããã»ã¹ãå¶åŸ¡ããŸãã äžæ¹ãããã€ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£Dockerã³ã³ãããå®è¡ãããŠããŸãã
èšãèš³ãšå€±æ
ãã¹ãŠã®ããã±ãŒãžã³ãŒãã¯3ã€ã®éšåã§æ§æãããŠããŸãã
ãããã®1ã€ã¯ç§ã®ãã®ã§ã¯ãããŸããïŒããã¯ãã¡ããšããçŸããã³ãŒãã§ãïŒã ãã®ã³ãŒãã®ãœãŒã¹ã¯packagist.orgã§ãã
ç§èªèº«ãå¥ã®èšäºãæžããŠããããç解ã§ããããã«ããã³ãŒãã®ãã®éšåã«çŽ1é±éãè²»ãããŸããã
æ®ãã¯ãå°é£ãªæŽå²çéºç£ãã§ãã ã³ãŒãã®ãã®éšåã¯ãããªãé·ãæéããããŠäœæãããŸããã ããã°ã©ãã³ã°ã®ã¹ãã«ãããŸããªãã£ãé ãå«ããŠã
ããããŸãã«ç§ã®GitLabäžã®ãªããžããªãšç§ã®Satisäžã®ããã±ãŒãžã®å Žæã®çç±ã§ãã GitHub.comããã³packagist.orgã§å
¬éããã«ã¯ããã®ã³ãŒããåŠçãããã詳现ãªããã¥ã¡ã³ããäœæããå¿
èŠããããŸãã
ã³ãŒãã®ãã¹ãŠã®éšåã¯ç¡å¶éã«äœ¿çšã§ããŸãã ãªããžããªãšããã±ãŒãžã¯æ°žä¹
ã«å©çšå¯èœã«ãªããŸãã
ãã ããã³ãŒããåå
¬éãããšãã¯ãç§ãŸãã¯ãã®èšäºãžã®ãªã³ã¯ãæçš¿ããŠãããããšã«æè¬ããŸãã
ã¢ãŒããã¯ãã£ã«ã€ããŠå°ã
ããŒã«ã®äœæã«äœ¿çšãããã¢ãããŒãã¯ãç¹å®ã®åã¿ã¹ã¯ã解決ããããã®ãŠãŒãã£ãªãã£ãäœæïŒãŸãã¯æ¢è£œã®ãŠãŒãã£ãªãã£ã䜿çšïŒããããšã§ãã ããã«ã解決ããã¿ã¹ã¯ã«é¢ä¿ãªããåãŠãŒãã£ãªãã£ã«ã¯ãã¹ãŠã«å
±éã®2ã€ã®ããããã£ããããŸãã
- ãŠãŒãã£ãªãã£ã¯ãã¿ã¹ã¯ãå«ããã©ã¡ãŒã¿ã䜿çšããŠã³ãã³ãã©ã€ã³ããä»ã®ãŠãŒãã£ãªãã£ãšã¯ç¬ç«ããŠèµ·åã§ããŸãã
- ãŠãŒãã£ãªãã£ã¯ãïŒç¹å®ã®æ¹æ³ã§æ§æãããåŸïŒå®è¡çµæãstdoutã«è¿ãããšãã§ããŸãã
ãã®ååã«ãã£ãŠäœæããããœãªã¥ãŒã·ã§ã³ã§ã¯ãããã»ã¹ã¹ãããããšã«å®è¡äžã®ã¿ã¹ã¯ãã³ãã©ãŒïŒã¯ãŒã«ãŒïŒã®æ°ãå€æŽã§ããŸãã åã¹ãããã®ã¯ãŒã«ãŒæ°ãç°ãªããšãåã®ã¹ãããã®åŠçã¿ã¹ã¯ã®é·ãã«ãããåŸç¶ã®ã¹ãããã®ã0ãããŠã³ã¿ã€ã ãçºçããŸãã
ããã»ã¹ã®çµæã®åäœïŒãã®å Žåã¯æ€èšŒæžã¿ã®ãããã·ïŒã®ååŸã«è²»ããããæéã¯ãå€éšèŠå ïŒäžé©åãªãããã·ã®æ°ãå€éšãªãœãŒã¹ã®å¿çæéãªã©ïŒã«äŸåããŸãã
åããã»ã¹ã¹ãããã®ã¯ãŒã«ãŒæ°ãå€æŽããããšã«ããããã®äŸåé¢ä¿ãå®è¡äžã®ã¯ãŒã«ãŒæ°ãžã®äŸåé¢ä¿ã«å€æããŸãïŒã€ãŸããé¢é£ããã³ã³ãã¥ãŒãã£ã³ã°ãšãã£ãã«ã®å®¹éã«å¿ããŠïŒã
åã
ã®ç¬ç«ããéšåã®åäœãåæããã«ã¯ãã¡ãã»ãŒãžã³ã°ãã¥ãŒãµãŒããŒãåäžã®ããŒã¿ãã¹ãšããŠäœ¿çšãããšäŸ¿å©ã§ãã ããã«ãããå®äºããã¹ãããã®çµæããã¥ãŒã«èç©ããå
¥åãšããŠé©åãªã¿ã€ãã³ã°ã§ã次ã®ã¹ãããããŠãŒãã£ãªãã£ã«æž¡ãããšãã§ããŸãã
ã¡ãã»ãŒãžã³ã°ãã¥ãŒã MQããã³ESB
äžäœã¬ãã«ïŒ
MQ ïŒãšããŠ
beanstalkdã䜿çšããŸãã å°åã軜éãæ§æäžèŠãdebããã±ãŒãžããã³Dockerã³ã³ãããŒã§äœ¿çšå¯èœãç®ç«ããªãããŒãã¯ãŒã«ãŒã§ãã è«çã¬ãã«ïŒ
ESB ïŒã¯
PHPã§ã³ãŒããå®è£
ã
ãŸã ã
å®è£
ã«ã¯2ã€ã®ã¯ã©ã¹ã䜿çšãããŸãã
esbTaskããã³
nextStepWorker ã
esbTask class esbTask // , {
ãã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã¯ãããã»ã¹ã®ã¹ããããéããŠ
Paylodããã¢ãã¬ã¹æå®ãããã®ã«
圹ç«ã¡ãŸãã
ESBã®æŠå¿µã¯ãããã€ãã®åå/ãã¿ãŒã³ãé©çšããŸãã ãã®ãã¡ã®2ã€ã¯åå¥ã«æ³šæãã䟡å€ããããŸãã
- ããã»ã¹ã®åæç¹ã§ã®ããã»ã¹ã®ãã¹ïŒã¹ãããã®ã·ãŒã±ã³ã¹ïŒã«ã€ããŠã
éä¿¡ããããšã³ãããŒã以å€ã¯èª°ãç¥ããŸããã
- åãšã³ãããŒãã«ã¯ã次ã®3ã€ã®çµæã®æ¹åããããŸãã
- ããã»ã¹ã®æ¬¡ã®ã¹ãããïŒéåžžã®ç¶ç¶ïŒ;
- åæ¢ã¹ãããïŒåæ¢ã¿ãŒã²ãã-ããã»ã¹/åæ¢ç¶æ³ã®ç¶ç¶ã«æå³ããªãå Žåã次ã®ã¹ãããã§éžæãããŸãïŒ;
- ãšã©ãŒã¹ãããïŒç·æ¥çµäºã¿ãŒã²ãã-ã¯ãŒã«ãŒãšã©ãŒã®å Žåã次ã®ã¹ãããã§éžæãããŸãïŒã
ãã¥ãŒã«å
¥ãããããªããžã§ã¯ãã¯jsonã§è¡šãããããã«é ãããŠããŸã... nextStepWorkerãã¥ãŒã«è¡šç€ºãããåã¡ãã»ãŒãžã¯ããããæ
åœããã¯ãŒã«ãŒã«ãã£ãŠåŠçãããŸãã ãããè¡ãã«ã¯ã次ã®äžé£ã®é¢æ°ãå®è£
ãããŸãã
class nextStepWorker extends workerConstructor {
ããã»ã¹ã®å段éã®ã¯ãŒã«ãŒã¯ããã®ã¯ã©ã¹ã«åºã¥ããŠå®è£
ãããŸãã åŠçãã¢ãã¬ã¹æå®ãããã³ã«ãŒãã®æ¬¡ã®ã¹ãããã®éä¿¡ã®ã«ãŒãã³å
šäœã§ãã¯ã©ã¹ãåŠçããŸãã
ååé¡ã®è§£æ±ºçã¯æ¬¡ã®ãšããã§ãã
- esbTaskãååŸããŠã¯ãŒã«ãŒãå®è¡ããŸãã
- çµæããã€ããŒãã«ä¿åããŠããžãã¯ãå®è£
ããŸãã
- ã¯ãŒã«ãŒã®å®è¡ãå®äºããŸãïŒç·æ¥ãŸãã¯éåžž-åé¡ã§ã¯ãããŸããïŒã
ã¹ããããå®äºãããšãçµæã¯é©åãªååã§ãã¥ãŒã«å
¥ãããã次ã®ã¯ãŒã«ãŒãåŠçãéå§ããŸãã
äžåºŠãã£ãŠãã ããã 空宀ç¶æ³ã確èªãã
å®éãåé¡ã解決ããã¯ãŒã«ãŒãäœæããããšã¯ã1ã€ã®ã¡ãœããã®å®è£
ã§ãã
åé¡2ã解決ããã¯ãŒã«ãŒã®å®è£
äŸïŒç°¡ç¥åïŒ
ã¯æ¬¡ã®ãšããã§ãã
æ°è¡ã®ã³ãŒããšãã¹ãŠãè¡ããã次ã®æ®µéã«ãåºåããããŸãã
TimeZoneãå®çŸ©ããŸãã TimeZoneDBãšãã®ç®ç...
çä¿¡ãªã¯ãšã¹ãã®è©³çŽ°ãªãã¹ãã§ã¯ããã©ãŠã¶ãŠã£ã³ããŠã®æéãšãªã¯ãšã¹ãã®éä¿¡å
IPã¢ãã¬ã¹ãååšããæéãæ¯èŒããŸãã
ã«ãŠã³ã¿ãŒããã®çããé¿ããããã«ãããŒã«ã«ãããã·æéãç¥ãå¿
èŠããããŸãã
æéãèŠã€ããããã«ãããã»ã¹ã®åã®ã¹ãããã®çµæãã緯床ãšçµåºŠãååŸãããã©ãŠã¶ãŠã£ã³ããŠã®å°æ¥ã®ã€ã³ã¹ã¿ã³ã¹ãåäœããã¿ã€ã ãŸãŒã³ã«é¢ããããŒã¿ãååŸããŸãã ãããã®ããŒã¿ã¯
ãæéã®åéã®å°é家ããæäŸãããŸãã
ãã®åé¡ã解決ããããã®åçŽåãããã¯ãŒã«ãŒïŒ
ã¿ã¹ã¯3 ïŒã¯ã
åã®ãã®ãšå®å
šã«é¡äŒŒããŠ
ããŸãã å¯äžã®éãã¯ãªã¯ãšã¹ãURLã§ãã ãã¡ã€ã«ã§ãã«ããŒãžã§ã³ãèŠã€ããããšãã§ããŸãïŒ
// app / src / Process / worker / timeZone.php
ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã€ããŠå°ã
説æãã
beanstalkdã«å ããŠãããŒã«ã«ã¯ä»¥äžãå¿
èŠã§ãã
- Memcached-ã¿ã¹ã¯ã®ãã£ãã·ã¥çšã
- Selenium Server - Selenium Web Driverãå¥ã®ã³ã³ããã§å®è¡ãããšäŸ¿å©ã§ããVNCãä»ããŠããã»ã¹ãç£èŠã§ããŸãã
- beanstald ã memcachedãããã³VNCãç£èŠããããã®ããã·ã¥ããŒãã
ããããã¹ãŠãè¿
éã«ãããã€ããã«ã¯ãDockerïŒ
Ubuntuã«ã€ã³ã¹ããŒã«ããæ¹æ³ ïŒãéåžžã«äŸ¿å©ã§ãã
ãããŠã圌ã«ãšã£ãŠã®ããªãŒã±ã¹ãã©ãã¯docker-composeïŒã€ã³ã¹ããŒã«çšã®ã³ãã³ãïŒ... sudo apt-get -y update sudo apt-get -y install docker-compose
ãããã®ããŒã«ã䜿çšãããšã芪OSã®åå¥ã®ãã³ã³ãããã§æ¢ã«æ§æããã³æ§æãããïŒä»¥åã®èª°ãã«ãã£ãŠïŒãµãŒããŒ/ããã»ã¹ãå®è¡ã§ããŸãã 詳现ã«ã€ããŠã¯ã
ãããŸãã¯
ãã®èšäºãåç
§ããããšããå§ãããŸãã
ã ãã...
ã€ã³ãã©ã¹ãã©ã¯ãã£ãéå§ããã«ã¯ãã³ã³ãœãŒã«ã§ããã€ãã®ã³ãã³ããå¿
èŠã§ãã
ã¢ãã¬ã¹XXX.XXX.XXX.XXXã®ãã·ã³ã§ã³ãã³ããæ£åžžã«å®è¡ãããçµæã
次ã®äžé£ã®ãµãŒãã¹ãæäŸãããŸãã
-XXX.XXX.XXX.XXX:11300-beanstalkd
-XXX.XXX.XXX.XXX:11211-Memcached
-XXX.XXX.XXX.XXX:4444-Selenium ãµãŒããŒ
-XXX.XXX.XXX.XXX:5930-Chromeã§ã®åäœãå¶åŸ¡ããVNCãµãŒããŒ
-XXX.XXX.XXX.XXX:8081-Memcachedãšéä¿¡ããããã®Webããã«ïŒç®¡çè
ïŒãã¹ïŒ
-XXX.XXX.XXX.XXX:8082-beanstalkdãšéä¿¡ããããã®Webããã«
-XXX.XXX.XXX.XXX:8083-VNCãšéä¿¡ããããã®Webããã«ïŒãã¹ã¯ãŒãïŒã·ãŒã¯ã¬ããïŒ
-XXX.XXX.XXX.XXX:8080-äžè¬çãªWebããã«
ããã¹ãŠãé©åã«é
眮ãããŠãããã©ããã確èªãããããã³ã³ãããžã®ã³ã³ãœãŒã«ã«å
¥ããããã€ã³ãã©ã¹ãã©ã¯ãã£ãåæ¢ãããã¯ãã¹ãã€ã©ãŒã®ã³ãã³ãã§ãã ã¿ã¹ã¯4,5ã6-1ã€ã®ãŠãŒãã£ãªãã£ã«çµå
ã¿ã¹ã¯ã®çŽ°ååã詳现ã«èŠãŠïŒ
äžèšã®å³ ïŒãæ®ãã®ã¿ã¹ã¯ã®1ã€ïŒ
ã¿ã¹ã¯6 ïŒã®ã¿ãå€éšãªãœãŒã¹ã«äŸåããŠããããšã確èªããã®ã¯ç°¡åã§ãã ãç¡æ¡ä»¶ã«ä¿èšŒããããã©ã³ã¿ã€ã ã§ã¿ã¹ã¯ãå®è¡ãããšïŒå¶åŸ¡ãããŠããªãèŠå ãšã¯ç¡é¢ä¿ïŒãããã»ã¹å
šäœã®é床ã«è¿œå ã®ãã©ã¹ã¯è¿œå ãããŸããã ãã®ç¹ã§ããããã®ã¿ã¹ã¯ïŒ
4,5,6 ïŒã¯1人ã®ã¯ãŒã«ãŒã«çµåãããŸããã ã¯ãŒã«ãŒãã¡ã€ã«ã®ååã¯æ¬¡ã®ãšããã§ãã
// app / src / Process / worker / whoerChecker.php
Chromeã®èšå®ãè¡ããŸãã ãã©ã°ã€ã³
Chromeã¯ãã©ã°ã€ã³ã§æè»ã«æ§æãããŸãã
Chromeã®ãã©ã°ã€ã³ã¯ã
manifest.jsonãã¡ã€ã«ãå«ãã¢ãŒã«ã€ãã§ãã 圌ã¯ãã©ã°ã€ã³ã«ã€ããŠèª¬æããŸãã ã¢ãŒã«ã€ãã«ã¯ããã©ã°ã€ã³ã«å¿
èŠãª
JavaScriptãhtmlãcssããã³ãã®ä»ã®ãã¡ã€ã«ã®ã»ãããå«ãŸããŠããŸãïŒ
詳现 ïŒã
ãã®å Žåã
JavaScriptãã¡ã€ã«ã®1ã€ã
Chromeäœæ¥ãŠã£ã³ããŠã®ã³ã³ããã¹ãã§å®è¡ãããå¿
èŠãªãã¹ãŠã®èšå®ãæå¹ã«ãªããŸãã
ãã©ã°ã€ã³ãã³ãã¬ãŒããååŸããé©åãªå Žæã§ãã¹ã察象ã®ãããã·ãµãŒããŒã®å¿
èŠãªããŒã¿ïŒçžäºäœçšãããã³ã«ãã¢ãã¬ã¹ãããŒãããŸãã¯ã¿ã€ã ãŸãŒã³ïŒã眮ãæããã ãã§ãã
ã¢ãŒã«ã€ããäœæããã³ãŒãã®ã¹ããããïŒ
ãããã·ãã¥ãŒãã³ã°ãã©ã°ã€ã³ã®ãã³ãã¬ãŒãã¯ã
è·æ¥ãæãã人ã
ã®ä»äºã®çµæã®è²¯éç®±ã§èŠã€ããããããã³ã«éšåãå€æŽããããªããžããªã«è¿œå ãããŸããã
ãŠã£ã³ããŠæéã®å€æŽ
å®è¡äžã®Chromeã€ã³ã¹ã¿ã³ã¹ã®ã°ããŒãã«æéãå€æŽããã«ã¯ã
window.Dateãåæ§ã®æ©èœãåããã¯ã©ã¹ã§çœ®ãæããå¿
èŠããããŸãããæ£ããã¿ã€ã ãŸãŒã³ã§æå¹ã§ãã
ãµã³ããžã¥ã¹ãã£ã©ã®äœåã«æ¬åœã«æè¬ã
ãŠããŸãã ãã®ã¹ã¯ãªããã¯
UIã®èªåãã¹ãçšã«äœæãããŸããããå°ãæ¹è¯ãå ããããŸããã
ããã«ããªãã®æ³šæãåŒããããšæããã¥ã¢ã³ã¹ããããŸãã
manifest.jsonã§èª¬æãããŠããã¹ã¯ãªããã®ã³ã³ããã¹ãã«é¢é£ä»ããããŠããŸãã
å®å
šãªç§å¯ã¯ãã°ããŒãã«ã³ã³ããã¹ãïŒãã©ã°ã€ã³ã®ã¡ã€ã³ã¹ã¯ãªãããèµ·åãããèšå®ãèšå®ãããŠãããã®ãããšãã°ãããã¯ãŒã¯ã«æ¥ç¶ãããŠãããã®ïŒããããŒãžãããŒããããã¿ãã®ã³ã³ããã¹ãããåé¢ãããããšã§ãã
çµéšçã«ãã°ããŒãã«ã³ã³ããã¹ãã§ã®ã¯ã©ã¹ã®ãããã¿ã€ããžã®åœ±é¿ãã¿ãã®å€æŽã«ã€ãªãã£ãŠããªãããšãããããŸããã ãã ãããã§ã«ããŒããããŠããããŒãžã«ã¹ã¯ãªãããç»é²ããä»ã®ããŒãžãããå
ã«å®è¡ããããšã§ãåé¡ã¯è§£æ±ºããŸããã
ãœãªã¥ãŒã·ã§ã³ã¯ã次ã®ã³ãŒããã©ã°ã¡ã³ãã§è¡šãããŸãã
ãããã·èšå®
Chromeã§ãããã·ãèšå®ããã®ã¯ç°¡åãªã®ã§ãã¹ãã€ã©ãŒã§jsã³ãŒããé衚瀺ã«ããŸã Chromeãã©ã°ã€ã³ã®ãã¹
ãã¹ãŠã®ãã©ã°ã€ã³ã¯ã¹ããŒã ã«åŸã£ãŠååãä»ããããããã»ã¹ãå¶åŸ¡ãããã·ã³ã®äžæãã©ã«ããŒã«è¿œå ãããŸãã//ãããã·ãã©ã°ã€ã³ã®åœåã¹ããŒã ïŒ
proxy- [ã¢ãã¬ã¹]-[ããŒã]-[ãããã³ã«]>ãzip
ã¿ã€ã ã·ãã-["-" | ""]-[shift_in_minutes_from_GMT] .zip
次ã«ããããã®ãã©ã°ã€ã³ããã€ã³ãã©ã¹ãã©ã¯ãã£ãæ
åœãããã·ã³ã§å®è¡ãããŠããããã«ãŒã³ã³ããã«ã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã
ããã¯sshã§è¡ããŸãã ãããè¡ãããã«ãç§ã¯
phpseclibã«åºäŒã
ãŸãã ïŒåŸã§åŸæããŸããïŒã
å³æžé€šã®ç°åžžãªæ¯ãèãã«é
äºãããŠãç§ã¯ãããç 究ããããã«äžæ¥ãéãããŸãããããã§ã®sshã³ã³ãœãŒã«ã¯ã©ã€ã¢ã³ãã¯ããè¯ãæ©èœããããéãåäœããŸãããä»äºã¯ãã§ã«å®äºããŠããŸããäœã¬ãã«ïŒSFTPããã³SSHã䜿çšïŒã®å Žåãåºæ¬ã¯ã©ã¹ã責任ãè² ããŸãïŒä»¥äžïŒããã®ã¯ã©ã¹ã眮ãæãããšãphpseclibãã³ã³ãœãŒã«ã¯ã©ã€ã¢ã³ãã«çœ®ãæããããŸãã
ããŒã¹ã®sshDockerããã³æ¢ç¥ã®proxyHelperã¯ã©ã¹ãã掟çãããã©ã°ã€ã³ãçæããã ãã§ãªããã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã³ããã®äžæãã©ã«ããŒã«é
眮ããŸãã
èšå®ã§Chomeãèµ·å
Selenium Serverã¯ãã«ã¹ã¿ãã€ãºãããChromeã®èµ·åãæ¯æŽããŸããSelenium Serverã¯ãç¹ã«WEBã€ã³ã¿ãŒãã§ã€ã¹ã®ãã¹ãçšã«FaceBookããŒã ã«ãã£ãŠäœæããããã¬ãŒã ã¯ãŒã¯ã§ãããã¬ãŒã ã¯ãŒã¯ã«ãããéçºè
ã¯ãã©ãŠã¶ãŒãŠã£ã³ããŠã§ïŒChromeãŸãã¯Firefoxã䜿çšããŠïŒãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãããã°ã©ã ã§ãšãã¥ã¬ãŒãã§ããŸããSelenium Serverã¯å€ãã®èšèªã§ã®äœ¿çšã«é©åããŠããããã¹ãã¹ã¯ãªãããèšè¿°ããããã®äºå®äžã®æšæºããŒã«ã§ãããããžã§ã¯ãã§äœ¿çšããæ°ãããªãªãŒã¹ãååŸããæè¯ã®æ¹æ³ïŒ composer require facebook/webdriver
Selenium Serverãªããžã§ã¯ãïŒRemoteWebDriverïŒã®ã¡ã€ã³ã€ã³ã¹ã¿ã³ã¹ã®åŸæ¥ã®æ§æã¯ãç§ã«ã¯åé·ã«èŠããŸããã ãã®ãããããããã¹ãŠãå°ãæžãããŠãããŒãºã«åãããŠæ§æãæé©åããŸããã
ç®ã¯ããã«$ãã©ã°ã€ã³ã«ããã¿ã€ããŸãã$ pluginsã¯ããã©ã°ã€ã³ã®æ§æãæ
åœããããŒã¿æ§é ã§ããåãã£ã¬ã¯ããªããã³ãã©ã°ã€ã³JavaScriptãã¡ã€ã«ã®ãã¬ãŒã¹ãã«ããŒã眮æããŸããæ§é ã¯app / plugs.phpãã¡ã€ã«ã«èšè¿°ãããŠãããã°ããŒãã«ãªãã·ã§ã³app / settings.phpã®äžéšã§ãã Selenium WebDriverã䜿çšããããŒãžã®è§£æã¯éåžžã«ç°¡åã§ãã .... $url = 'https://__/_-_'; $page = $chrome->get($url); ....
ãã§ã«æžããããã«ããããã®ã¢ã¯ã·ã§ã³ã¯ãã¹ãŠã3çªç®ã®ã¹ãããïŒã¿ã¹ã¯4,5,6ïŒã®ãŠãŒãã£ãªãã£ã«ãã£ãŠå®è£
ãããŸãã// app / src / Process / worker / whoerChecker.php
Selenium Serverã§ã®äœæ¥ã®èª¬æãç· ããããããã®æè¡ãç£æ¥èŠæš¡ïŒ1000ã3000ããŒãžã®ãªãŒããã³ã°ïŒã§äœ¿çšããå ŽåãSelenium Serverãšã®ã»ãã·ã§ã³ã誀ã£ãŠçµäºããããšã¯çãããããŸããããŠã£ã³ããŠã«ã¯ææè
ãããŸããããããŠããã®ãããªãŠã£ã³ããŠã¯ããããèç©ããå¯èœæ§ããããŸããããããŒãããšæŠãããã€ãã®æ¹æ³ãæ€èšãããŸããã ãé£ã¹ãŠã2æ¥éåããŸããæãå¹æçãªã®ã¯cronã§ãããæ£ããã€ã³ã¹ããŒã«ãããããã«ãŒã»ã³ã³ããå
ã®èšå®ã¯åå¥ã®ã¿ã¹ã¯ã«ãªã£ãŠãæ
éãã€è©³çŽ°ã«èª¬ærenskiyããONLYãã®ãããã¯æ§ããèšäºã§ïŒç§ã¯é©ããŸããïŒãå
ã®Dockerã€ã¡ãŒãžã®èªååæ§ç¯ãšããããŒããéããŠæªäœ¿çšã®ãã©ã°ã€ã³ãã¯ãªãŒã³ã¢ããããããã®ããã€ãã®ã¹ã¯ãªããã®ã€ã³ã¹ããŒã«ã«ã€ããŠã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãªããžããªãŒã§ããdocker-compose.ymlã§èª¬æããŠããŸããã¯ãªãŒãã³ã°é »åºŠã¯ãåããªããžããªã®killcronãã¡ã€ã«ã§èšå®ãããŸããWebRTC
ãã§ã«æ£ããæéãèšå®ããŠããããã©ãŠã¶ã®ãã©ãã£ãã¯ããããã·ãééãããšããäºå®ã«ãããããããç§ãã¡ã¯ãŸã æ€åºããããšãã§ããŸããæéå·®ïŒãã©ãŠã¶ãšIPã¢ãã¬ã¹ïŒã«å ããŠãããããã·ã®èåŸã«åº§ã£ãŠãããããšã®å¿ååã®ãœãŒã¹ãããã«2ã€ãããŸãããããã¯ããã©ãŠã¶ã«åã蟌ãŸãããã©ãã·ã¥ããã³WebRTCãã¯ãããžãŒã§ãããã©ãŠã¶ã§ã¯Flashãç¡å¹ã«ãªã£ãŠããŸãããWebRTC ã¯ç¡å¹ã§ã¯ãããŸãããäž¡æ¹ã®å€±æã®å¯èœæ§ã®çç±ã¯åãã§ã-ãŠããã¿ã¹ã§æ©æãªUDPãã±ããã§ãã以äžã®ããã®WebRTCïŒäºã€ã®ããŒãã§ãã3478ãš19302ãã¯ãã ã³ã³ãããŒããã®ã¹ã«ãŠãã®æµåºãåæ¢ããã«ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã³ãããŒãåãããã¹ããã·ã³ã«iptablesã«ãŒã«ãé©çšããŸãã iptables -t raw -I PREROUTING -p udp -m multiport --dports 3478,19302 -j DROP
åãproxyHelperããã®ã¿ã¹ã¯ãå®è£
ããŸããæ®ãã®åŽåè
ç®æš-å¿åãããã·ãä»ããã¿ãŒã²ãããµã€ãã®ãã¯ãªãã¯ãã®å®è£
ãæåãããã«ã¯ããã1人ã®ã¯ãŒã«ãŒãå¿
èŠã§ããwhoerCheckerã®ççž®ããŒãžã§ã³ã«ãªããŸããæžããããã¹ãŠã䜿çšããŠãèªåã§ãããè¡ãããšã¯é£ãããªããšæããŸãããã¥ãŒã«å
¥ãã®ããã»ã¹å
šäœã®çµæäœçœ®ã¯ãåå¿åèªèšŒããããããã·ãµãŒããŒã®ã¢ãã¬ã¹ã®ã床ãã«é¢ããããŒã¿ãå«ãŸããŠããŸããã«ãŠã³ã¿ãŒãšã察æŠããããšããèŠããŠããã¹ãäž»ãªããšã¯å¿åæ§ã§ãããããããã®èšªåã«å€¢äžã«ãªããªãããšã§ããäžã«çµã¿èŸŒãŸããŠããã¹ã±ãžã¥ãŒã«ã§ã®æŽ»åã®çµç¹ã«æ©äŒãæäŸãããã¯ãªãã¯ã倢äžã«ããŠããªããã®ååã®éµå®esbTaskïŒãã£ãŒã«ã以æ¥ãåœç€Ÿã®ESBã®ãšã³ãããŒãïŒããã¹ãŠã泚ææ·±ãè©ŠããŠã¿ããšãã¿ãŒã²ãããµã€ãã®yandexã¡ããªãã¯ã¯æ¬¡ã®å³ã®ããã«ãªããŸãã
ãã¹ãŠããŸãšããæ¹æ³
ã ãããäžããããïŒ- ãŠãŒãã£ãªãã£ã¯ãïŒã³ãã³ãã©ã€ã³åŒæ°ïŒã¯ãå
¥åããåä¿¡ããããšãå¯èœã§ããesbTask JSONæåå圢åŒãšãããã€ãã®ããžãã¯ãå®è¡ããçµæãéä¿¡ãããbeanstalkdã
- beanstalkdã«åºã¥ãã¡ãã»ãŒãžãã¥ãŒïŒMQïŒã
- Linuxãã·ã³ïŒããã»ã¹ãã·ã³ïŒ;
ãã®ãæå®ãã§ã¯ãéåžžlibeventãšReact PHPã䜿çšããŸããããããã¹ãŠã«ããã€ãã®ããŒã«ãè¿œå ãããŠãããããã»ã¹ã®åã¹ããŒãžã®ãã³ãã©ãŒã€ã³ã¹ã¿ã³ã¹ã®æ°ïŒæå®ãããå¶éå
ïŒãèªåçã«å¶åŸ¡ã§ããŸãããã ããèšäºã®ãµã€ãºãšãããã¯ã®è©³çŽ°ãèãããšãããããã¹ãŠãå¥ã®èšäºã§èª¬æãããŠããã ããŸãããã®èšäºã¯noserverãã¯ãããžãŒã§ããå°æ¥ã®ãã®ã¯ããµãŒããŒãã§ããDear Readerãåºçæ¥ã¯ããªãã®èå³ã«é¢é£ããŠããŸãã. , ,⊠. , , , , , .
habr , . , , .
. , " server ", README.md .
ãnoserverãã§ã¯ã1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã1ã€ã®ãã¥ãŒãåŠçããŸãïŒ1ã€ã®åŠçã¹ãããïŒããã®ã¢ãããŒãã¯ãã¯ãŒã«ãŒããããã°ãããšãã«äœ¿çšãã粟ç¥ãæãããã ãã§ããå¿
èŠãªåŠçé床ã«å¿ããŠããæåãã§å¥œããªã ãã³ããŒãéå§ã§ããŸãã次ã®ããã«ãªããŸãã
ã¯ãŒã«ãŒã®å¥åŠãªå§ãŸãã¯å°è±¡çã§ã...ã¯ãŒã«ãŒã®ãããããPHPãªããžã§ã¯ãã§ãããšããäºå®ã«ãããããããç§ã¯execïŒ...ïŒã䜿çšããŸãããããã¯ããnoserverãçšã«åå¥ã®ã¯ãŒã«ãŒãäœæãããããserverãã¢ãŒãã§èµ·åããç®çã§ã¯ãŒã«ãŒãå€æŽãããããªãããã«ãæéãç¯çŽããããã«è¡ãããŸãããæ§æãšå±éã«é¢ããããã€ãã®èšè
æ§æå®æ°
ã€ã³ã¹ã¿ã³ã¹ã®èšå®ãã¡ã€ã«ã¯app / settings.phpã§ãããªããžããªãè€è£œããçŽåŸã«äœæããå¿
èŠããããŸãããããè¡ãã«ã¯ããã¡ã€ã«åãapp / settings.php.distã«å€æŽããŸãããã¹ãŠã®å®æ°ã¯å
éšçã«èšè¿°ãããŠããŸããç¹ã«app / settings.phpã«ã¯ãä»ã®å®æ°ãæã€ãã¡ã€ã«ãå«ãŸããŸãã- ã¢ããª/ queues.phpã¯ãã¥ãŒãšãžã§ãã®ååãå«ãŸããŠãã
- ã¢ããªã/ plugs.php説æã¯ããŒã -plaginov
- ã¢ããª/ techs.phpã¯ãèšç®ãããå®æ°ãå«ãŸããŠããŸã
å
¬çäºæ¥
ããã»ã¹ã®çµæã®åŠçãšã¿ã¹ã¯ã®é
眮ã®å©äŸ¿æ§ã®ããã«ãããã€ãã®ãŠãŒãã£ãªãã£ããããŸãããŠãŒãã£ãªãã£ã¯ã³ãã³ãã©ã€ã³ããèµ·åããŸããåŒæ°ã®èª¬æãæäŸãããŸããäœçœ®ïŒapp / src / Utilsã backup.php-ãã¥ãŒããã¡ã€ã«ã«ä¿åããŸã
clear.php-ãã¥ãŒãæ¶å»ããŸã
exporter.php-ä¿åããããã¥ãŒãæã€ãã¡ã€ã«ãããšã¯ã¹ããŒãããŸã
ãã¢ã®ã¢ãã¬ã¹ïŒããŒã
givethejob.php-ããã»ã¹ã«ã¿ã¹ã¯ãæçš¿ããŸã
ïŒãœãŒã¹-ã¢ãã¬ã¹ïŒããŒãã³ã³ãããã¯ã¹ïŒã
ãªã¹ãããäžéšã®ã¢ãã¬ã¹ãé€å€ã§ããŸã
restore.php-ä¿åããããã¥ãŒã埩å
ããŸã
åŽåè
ã®åŸ®èª¿æŽ
ææžãã®ã¯ãŒã«ãŒã䜿çšããå Žåã次ã®æ§æãªãã·ã§ã³ã䜿çšãããšäŸ¿å©ãªå ŽåããããŸãã
å±é
ãã®ããã¥ã¢ã«ã§ã¯ãUbuntu 18.04ãã€ã³ã¹ããŒã«ããã2å°ã®ãã·ã³ãèªç±ã«äœ¿çšã§ããããšãåæãšããŠããŸãã1ã€ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒdockerïŒçšã§ããã1ã€ã¯ããã»ã¹å¶åŸ¡ïŒprocessïŒçšã§ããããã«ãŒ
åŠç
Webããã«ïŒhttpïŒ// docker-machineã®IPã¢ãã¬ã¹ïŒ8080ïŒã§äœãèµ·ãã£ãŠããããèŠãŠãã ãããçµæã¯ããã¥ãŒå
ã§å©çšã§ããããã«ãªããŸããããŸãããããŠçµè«ãšããŠ
é©ããããšã«ããã®èšäºã®äœæãšç·šéã¯ãã³ãŒãèªäœã®äœæãããæéãããããŸãããç§ã®æèŠã§ã¯ãMessage QueueãšEnterprise Service Busã® 2ã€ã®ã€ããªãã®ãŒã§ã¯ãªãå Žåããã¹ãŠãéã«ãªãå¯èœæ§ããããŸãïŒæéå·®ã¯æ°å倧ãããªãå¯èœæ§ããããŸãïŒãèšèšæ®µéã§ããŸããŸãªéšåã®è² è·ãæ確ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ãäœæããããã®æ瀺ãããã¢ãããŒããã圹ã«ç«ãŠãã°å¹žãã§ããããããšã