çè ã®å¨å²ã ãããããã¾ããããããããGoogle App Engine Standard Environmentï¼ä»¥ä¸GAE/SEï¼ãå注ç®ããã¤ã¤ããããã«æãã¾ããä»åçè ãgVisorãã¼ã¹ã®GAE/SE PHP 7.2ç°å¢ã«è§¦ã£ã¦ã¿ãã®ã§ããã®å 容ãç´¹ä»ãã¾ãã
GAE/SEã¨ã¯
GAE/SEã¯å ç¥PaaSã¨ãè¨ãããããªãGoogleãæä¾ãããã«ããã¼ã¸ãç°å¢ã§ãã以åããJavaãPythonãGoãPHPã®4è¨èªã®ç°å¢ãæä¾ããã¦ãã¾ããããGo以å¤ã®è¨èªã®ãã¼ã¸ã§ã³ã¢ããã¯é·ããã¨æä¾ããã¦ããããGoogleã®æ¬æ°åº¦ã«çåãæã£ã¦ãã人ãå¤ãã£ãããã«æãã¾ãï¼ç§ããã®ä¸äººã§ããï¼ã
ã¨ãããæè¿ã«ãªã£ã¦Node.js 8ãJava 8ãPython 3.7ãPHP 7.2ã¨ç«ã¦ç¶ãã«æ°ãã¼ã¸ã§ã³ãæä¾ãã¦ãã¦ãããGoogleãæ°´é¢ä¸ã§GAE/SEã«éçºãªã½ã¼ã¹ãæå ¥ãã¦ãããã¨ãæããã«ãªã£ã¦ãã¾ããã
ãã®æ¥ãããã®è¨èªæä¾ã«ä¸å½¹è²·ã£ã¦ããã®ãæ°ãµã³ãããã¯ã¹å®è£ ã§ããgVisorã§ããç§ã®ãã£ããã®ç解ã§ã¯Linuxã®ã·ã¹ãã ã³ã¼ã«é¡ãã¦ã¼ã¶ã¼ã©ã³ãã§æä¾ãããããªãã®ã§ãæ¢ã«å¤ãã®OSSãä¿®æ£ãªãã§åããããªå¯¾å¿ç¶æ³ã«ãªã£ã¦ããããã§ãããã®gVIsorã¯Goã§ãã«ã¹ã¯ã©ããå®è£ ããã¦ãããã½ã¼ã¹ã³ã¼ããå ¬éããã¦ãã¾ãã
æ§ãµã³ãããã¯ã¹ã®GAE/SE PHP 5.5ç°å¢ã¨PHP 7.2ç°å¢ã®éã
以åã®GAE/SE PHP 5.5ç°å¢ã使ã£ããã¨ããã人ã¯ãGAEã¯å¶ç´ãå¼·ãç°å¢ã ã¨ããå°è±¡ãæã£ã¦ããããããã¾ãããå®éãæ§ãµã³ãããã¯ã¹ä¸ã§åä½ãã¦ããPHP 5.5ç°å¢ã«ã¯æ¬¡ã®ãããªå¶ç´ãããã¾ããã
- PHPæ¬ä½ã«ããªã大ããªããããå½ãã£ã¦ãã
- PHPããèªãããã£ã¬ã¯ããªãé常ã«å°ãªã
- èªåã®ãããã¤ãããã¡ã¤ã«ãããããè¦ããªã
- PHPããæ¸ãè¾¼ãããã£ã¬ã¯ããªã¯ããããç¡ã
- ãã¡ã¤ã«ãä½ãããå ´åGCSã«æ¸ãå¿ è¦ããã
- ã³ãã³ãå®è¡ã許å¯ããã¦ããªã
- ããããããã»ã¹ã®æ¦å¿µãåå¨ããç°å¢ãªã®ãçå
ç¹ã«ãã¡ã¤ã«æä½ã¨ã³ãã³ãå®è¡ã®å¶ç´ã大ãããæ¢åã®PHPã¢ããªã±ã¼ã·ã§ã³ããã®ã¾ã¾åãã¨ã¯è¨ããããç¶æ³ã§ããã
ä¸æ¹ãPHP 7.2ç°å¢ã¯æ¬¡ã®ãããªç¶æ³ã§ãã
- æ®éã®PHPãåãã¦ãã
- SAPIã¯php-fpm
- PHPããå ¨ãã¡ã¤ã«ãè¦ãã
/tmp
ãtmpfsã«ãªã£ã¦ãããPHPããæ¸ãè¾¼ãã- ã³ãã³ãå®è¡ãã§ãã
- ããã¨æ®éã®Linuxç°å¢ã£ã½ã
/proc
ã/dev
ãããï¼ã¾ã å°ã足ãã¦ããªãé°å²æ°ï¼
æ§ãµã³ãããã¯ã¹ç°å¢ã«æ¯ã¹ãã°å§åçã«æ®éã®ç°å¢ã¨è¨ãããã§ããPHP 5.5æ代ã«GAEã¯å³ãããªã¼ã¨æã£ã人ãããã¨ãã¦ããä»åã¯å½æã¨ã¯å ¨ç¶éãå°è±¡ã«ãªãã®ã§ã¯ãªãã§ããããã
PHP 7.2ç°å¢ã®å種ã³ãã³ãã®å®è¡çµæ
ããã¤ãã®ã³ãã³ãã試ããä¸ããé¢ç½ãã£ããã®ãç´¹ä»ãã¾ãã
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.3 0.2 13488 5620 ? Ssl 17:11 0:00 serve index.php root 14 1.0 4.2 265716 88352 ? Ss 17:11 0:00 php-fpm: master process (/tmp/serve-361831195/php-fpm.conf) root 15 0.8 3.0 266060 63724 ? S 17:11 0:00 php-fpm: pool app root 16 2.4 1.1 30132 23492 ? Sl 17:11 0:00 caddy -quiet -conf /tmp/serve-361831195/Caddyfile root 38 0.4 0.1 12680 3240 ? S 17:11 0:00 sh -c ps aux 2>&1 root 39 0.4 0.2 42440 5928 ? R 17:11 0:00 ps aux
æ§ãµã³ãããã¯ã¹ç°å¢ãç¥ã£ã¦ããã¨ãpsã³ãã³ããããã¢ã«åãï¼ãã¨ããå½ããåã®ãã¨ã«æåãã¦ãã¾ãã¾ããã
PID 16çªã®Caddyã¯Goè¨èªã§æ¸ãããWebãµã¼ãå®è£ ã§ãphp-fpmã®å段ã§åãã¦ããããã§ãã
lsof -p 16
lsofã³ãã³ãã§Caddyããªã¼ãã³ãã¦ãããã¡ã¤ã«ã確èªãã¦ã¿ã¾ããã
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME caddy 16 root cwd unknown /proc/16/cwd (readlink: No such file or directory) caddy 16 root rtd unknown /proc/16/root (readlink: No such file or directory) caddy 16 root txt REG 0,14 20099720 200 /usr/local/sbin/caddy caddy 16 root 0u CHR 0,0 5 /dev/null caddy 16 root 1u FIFO 0,12 2 host caddy 16 root 2u FIFO 0,12 3 host caddy 16 root 3u sock 0,5 5 can't identify protocol caddy 16 root 4u 0000 0,2 0 14 anon_inode caddy 16 root 5u sock 0,5 24 can't identify protocol caddy 16 root 6u sock 0,6 23 can't identify protocol
ãã¡ã¤ã«ãã£ã¹ã¯ãªãã¿3çª5çª6çªãTCPã ã¨æããã§ããããcan't identify protocolãã¨ãªã£ã¦ãã¾ãã/proc
以ä¸ã®æªå®è£
é¨åã®å½±é¿ã§ãããã
ã¡ãªã¿ã«lsofã³ãã³ãã¯æ¨æºã¤ã¡ã¼ã¸å ã«ç¡ãã£ãã®ã§Ubuntuç°å¢ããæã£ã¦ãããã¤ããªãã¡ã¤ã«ããããã¤ãã¾ããããæ®éã«åãã¾ããã
ifconfig
eth0 Link encap:AMPR NET/ROM HWaddr inet addr:192.168.1.1 Mask:255.255.255.255 UP RUNNING MTU:0 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth2 Link encap:AMPR NET/ROM HWaddr inet addr:169.254.8.1 Mask:255.255.255.255 inet6 addr: fe80::c001/128 Scope:Global UP RUNNING MTU:0 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:AMPR NET/ROM HWaddr inet addr:127.0.0.1 Mask:255.255.255.255 inet6 addr: ::1/128 Scope:Global UP RUNNING MTU:0 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ifconfigã³ãã³ããUbuntuããæã£ã¦ãããã®ã§ããéåä¿¡ãã±ããæ°ãã¼ããªã®ã¯ãç¾æç¹ã§ã¯æªå®è£ ã¨ãããã¨ã ã¨æãã¾ãã
ä¸é¨ã³ãã³ãã¯åããªã
ä½æå¤ã¨ãã¦ã¯9å²ä»¥ä¸ã®ã³ãã³ããããã£ã½ãçµæãè¿ãã¦ãããã®ã§ãããã³ãã³ãã«ãã£ã¦ã¯ç°å¸¸çµäºãããã®ãããã¾ãã
ãã¨ãã°dfã³ãã³ãã¯æªå®è£ ã·ã¹ãã ã³ã¼ã«ãå¼ãã§ããã®ããFunction not implementedãã¨ããã¨ã©ã¼ãåºã¦çµäºãã¦ãã¾ãã¾ããã¾ããnetstatã試ãã¨ãµã¼ãã¹å ¨ä½ãåºãã£ã¦ãã¾ããã¤ã³ã¹ã¿ã³ã¹ãåèµ·åããç¾½ç®ã«ãªãã¾ãããgVisorèªä½ãã¾ã ä¸å®å®ãªã®ããããã¾ããã
ã¾ã¨ã
ãããªããã§GAE/SE PHP 7.2ç°å¢ã§è²ã 試ãã¦ã¿ã¦ãPHP 5.5ç°å¢ããã¯æç¶å¶ç´ãå°ãªãç°å¢ã®ããã«æãã¾ããã
ããã ãæ®éã®Linuxã£ã½ããã°è¨èªæ¬ä½ã®ç§»æ¤ãæ©ãã®ãä¸æè°ã¯ç¡ããã¢ããªã±ã¼ã·ã§ã³ã®åä½ãã»ã¼åé¡ãªãã ãããã¨ããæ°æã¡ã«ãªãã¾ã*1ãéã«ã以åã®ãµã³ãããã¯ã¹ããã¾ãããã¨ãè¨ãããã§ããâ¦ã
gVisorã®éçºã¯ç¶ãã¦ããã¯ãã§ãã®ã§ããã®æå³ã§ãä»å¾ã¾ãã¾ãæå¾ ã§ããç°å¢ã ã¨è¨ãããã§ãã