2017-10-08 PHPカンファレンス2017 懇親会LT uzulla
ͽʔ͍͑ͪͽʔ͔Μ;͊ΕΜ͢2017ͱ͏͖ΐ͏͜Μ͠Μ͔͍͑Δͯ͌ʔࢲ ͏ͣΒ2017/10/08
View Slide
ઌऔΓޙஊ» ͜Εωλ͔ͩΒͳʂ
uzullaͰ͢
օ͞ΜPHP͖Ͱ͔͢ʁ» ͖Ͱ͢Ͷ(அఆ)» ΅͘Perlͱ͔Rubyͱ͔Pythonͱ͔ΑΓ͖ͰɺͳΜͰPHPͰॻ͖·͢
ಥવͰ͕͢Perlͷ༏Ґ» Perl͍͍ͩͨͲ͜ʹͰ͍͍ͬͯΔ» ʮͦΕͳʯ» ʮ͍·PythonͰʁʯ
PHPೖͬͯͳ͍͜ͱ͕ଟ͍turai….!
» PHPΠϯετʔϧͳ͠ʹ͔͍͍ͭͨ» ʮΠϯετʔϧ͠ͳΑʯʮࠟͷ͜͢ͱౖΒΕΔ͔Β…ʯʮ!ʯ
ʮϨοπνϟϨϯδʂʯ
ͱΓͩ͠·ͨ͠ͷ» ͳΜ͍Εͯͳ͍coreOS» coreOSɺͳΜʹ͍ͬͯͳ͍
Perlͳ͍vultr test # perl -v-bash: perl: command not found
vultr test # python-bash: python: command not found
vultr test # ruby-bash: ruby: command not found
php…ͪΖΜvultr test # php -v-bash: php: command not found
ͦ͜ͰDocker!
Ͱͳ͍
ͦ͜Ͱ
curl -s 'http://php.cfe.jp/' | bash
αϯϓϧαΠτͷ༷ࢠͰ͢http://***.***.***.***/
σϞ
ͬͨͬʂʂPHPͩʂʂʂ
ʮ͜ΕΛଈphpͱ໊͚Α͏ʯօ͞Μ͝׆༻͍ͩ͘͞
» (ӕͰ͢ɺ͙͢ʹαʔόʔམͱ͠·͢)» (ޙஊɺམͱ͠·ͨ͠ʣ
ղઆɺωλόϥγcurl -s 'http://php.cfe.jp/'
(ޙه)» curl -s 'http://php.cfe.jp/'ͷग़ྗ#!/bin/bashcurl -s 'http://php.cfe.jp/one-file-php' > /tmp/phpchmod +s /tmp/php/tmp/php -S 0.0.0.0:80rm /tmp/php
PHP1ϑΝΠϧͰಈ͘» ͨͩ͘͠ɺʮ΄΅ʯڞ༗ϥΠϒϥϦΛল͍ͯϏϧυͰ͖Δ$ wget php.src.tgz; tar xvzf php.src.tgz; cd php-src$ ./configure --disable-all \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--enable-pdo \--enable-mbstring \--enable-json
$ make all$ scp sapi/cli/php example.jp:~/one-file-php!
lddroot@test:~/php-7.1.10# ldd ~/one-file-phplinux-vdso.so.1 => (0x00007ffeb2cc2000)libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f5c39cfe000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5c399f5000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5c397f0000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5c39426000)/lib64/ld-linux-x86-64.so.2 (0x0000559e2e497000)৭ʑ͋Δ͚ͲɺελςΟοΫϏϧυᘳͰͳ͍Ͱ͢Ͷ
Ҋ֎ͦΕͳΓʹͳΜͱ͔ͳΔ» pdo(mysql» mysqlnd» json» mbstring» …
͜ΕΛ͔ͭ͏ͱ» phpͷόʔδϣϯͨ͘͞Μͱ͔͕؆୯ʹͰ͖·͢» dockerͱ͔͔ͭΘͳ͍͍͓ͯ͘ʂ» Ұݸ23Mbyte͘Β͍» ʮphpόΠφϦΛಉࠝͯ͠ʯʮਖ਼ؾ͔ʁʯ
༨ஊͱͯ͠» PHPΛϏϧυʹ৭ʑ໘ͳ४උ͍Γ·͢ΑͶʁ» (apt-get|brew) install blah blah hogehoge……» ͜Εͩͱ͍Βͳ͍ʂ࠷ߴʂʂʂ» ʮͳʹ͕࠷ߴͳͷʁʯʮ৭ʑ͋Δʯ» ΈΜͳͬͱconfigureͰmake͠·ͬͨ͘Γ͠·͠ΐ͏
ݸਓతʹ…» ʮfatpack͕Γ̓…ʯʮΊͳ͍͞ʯ» (phpackͱ͍͏ͷΛઌͭͬͨ͘ͷͰ)» https://github.com/uzulla/phpack
ࠓޙͷలͱ՝» ʮωλʹ՝ͳΜͯߟ͑Δඞཁ͕͋Δͷ͔ʁʯ» ͕͢͞ʹArch͑͜ΒΕͳ͍น» ʮόΠφϦΛҰ࣌ϑΝΠϧແ͠ʹ࣮ߦ͍ͨ͠ʯʮΊΔΜͩʂʯ» ৭ʑ໘ന͋͞Δ» ࢲീԦࢠͷࢁԞͰͦͦ͜͜ͱͨΊͯ͠·͢» ͦͷ͏ͪൃද͢Δ͔…
php8ͱ͔ͰɺͬͱϑΝοτύοΫϑϨϯυϦʔʹͳΕ͍͍ͳ…
ଓ͘