$30 off During Our Annual Pro Sale. View Details »

ホントに速い? nginx + php-fpm

ホントに速い? nginx + php-fpm

第61回PHP勉強会で発表した資料です。

Yusuke Ando

July 31, 2012
Tweet

More Decks by Yusuke Ando

Other Decks in Programming

Transcript

  1. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOYQIQGQN
    ϗϯτʹ଎͍ʁ
    OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    View Slide

  2. OHJOYQIQGQNYusuke Ando (@yando)
    ςΩετ

    View Slide

  3. OHJOYQIQGQNYusuke Ando (@yando)

    View Slide

  4. OHJOYQIQGQNYusuke Ando (@yando)

    View Slide

  5. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    http://bit.ly/candybts

    View Slide

  6. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    IJOFUUFS
    ιʔγϟϧ୹Վ
    ΢ΥʔϧͰڞ༗

    View Slide

  7. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ࿩୊ͷ
    OHJOY

    View Slide

  8. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOY͕଎͍
    Β͍͠

    View Slide

  9. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    Կނʁ

    View Slide

  10. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ͳΒ͹ൺ΂ͯΈΑ͏

    View Slide

  11. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ຊ೔ͷϝχϡʔ
    1)1ͷಈ͘࢓૊Έ
    NPE@QIQ
    "1$
    OHJOYQIQGQN

    View Slide

  12. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    1)1ͷಈ͘࢓૊Έ
    w8FCαʔό "QBDIF౳

    ɹ63-ΛݩʹϦιʔεΛಛఆ
    w1)1
    ɹࢦఆ͞Εͨ1)1εΫϦϓτΛղੳ
    w1)1֦ுϞδϡʔϧ $ݴޠ

    ɹ1)1͔ΒඞཁʹԠͯ͡ݺͼग़͞ΕΔ
    ݴޠͱͯ͠͸̎൪໨ͷΈ͕1)1

    View Slide

  13. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    )5.-Λදࣔ͢ΔྲྀΕ
    8FCαʔό
    ެ։σΟϨΫτϦ
    ϑΝΠϧΛ୳ͯ͠ฦ͢ͷΈ
    IUUQEDPOG
    ެ։σΟϨΫτϦ
    ͲͷσΟϨΫτϦΛެ։͢
    Δ͔౳͕ઃఆ͞Ε͍ͯΔ

    View Slide

  14. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    1)1͕ಈ࡞͢ΔྲྀΕ
    8FCαʔό
    1)1
    εΫϦϓτ
    ෳ਺ͷϓϩάϥϜ͕࿈ܞ
    1)1
    ֦ுϞδϡʔϧ
    ࣗ෼Ͱॻ͘ͷ͸େ఍͜Ε

    View Slide

  15. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    NPE@QIQ
    w"QBDIF͔Β1)1Λಈ࡞ͤ͞Δ
    w1)1ͷιʔεͱ"QBDIF͕ඞཁ
    ग़དྷ্͕ͬͨNPE@QIQ͸BQBDIF͔Β
    ༗ޮʹ͢Δ
    # yum install httpd httpd-devel
    $ configure --with-apxs2
    $ make
    # make install

    View Slide

  16. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    IUUQEDPOG
    w"QBDIFͷઃఆϑΝΠϧʹԼهΛ௥ه
    QIQ͸BQBDIFͷϓϩηεʹ૊ΈࠐΉ
    LoadModule php5_module /usr/lib64/httpd/
    modules/libphp5.so

    SetHandler application/x-httpd-php

    View Slide

  17. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ࠓճͷϕϯνϚʔΫ
    w)FMMP8PSME BCDO

    wKQFHը૾ BCDO

    w8PSE1SFTTͷ)5.-෦෼ DO

    w8PSE1SFTTͷϖʔδશମ
    w%#ઃఆͳͲ͸σϑΥϧτ஋
    ͋·Γνϡʔχϯά͠ͳ͍ঢ়ଶͷޮՌ

    View Slide

  18. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    NPE@QIQ
    w)FMMP8PSMEST
    wKQHը૾ST
    w8PSE1SFTTͷ)5.-෦෼ST
    w8PSE1SFTTͷϖʔδશମNT

    View Slide

  19. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    "1$
    w1)1εΫϦϓτͷղੳ݁ՌΛอଘ
    wղੳൈ͖Ͱ;FOE&OHJOF͕Քಇ
    w8PSE1SFTTͳΒഒ͘Β͍଎͘
    wεΫϦϓτ͕ଟ͍ෳࡶͳίʔυʹޮ͘
    w,FZ7BMVF4UPSFͱͯ͠΋࢖͑Δ
    # pecl install apc

    View Slide

  20. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    http://vipinkrsahu.blogspot.jp/2010/06/apc-vs-memcache-
    in-joomla-and-magento.html

    View Slide

  21. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    NPE@QIQ"1$
    w)FMMP8PSMEST
    wKQHը૾ST
    w8PSE1SFTTͷ)5.-෦෼ST
    w8PSE1SFTTͷϖʔδશମNT

    View Slide

  22. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    "1$͕ΧφϦޮ͍ͯΔ

    View Slide

  23. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    QIQGQN
    wQIQΛσʔϞϯͱͯ͠'BTU$(*Խ
    wPQDPEFͳͲͷΩϟογϡͷ੍ޚͳͲ
    w4"1*ͷҰछGSPNQIQ
    QIQGQNΛ࢖͏ͱखܰʹOHJOY࿈ܞ
    $ configure --enable-fpm
    $ make
    # make install

    View Slide

  24. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    BQBDIFNPE@QIQ
    BQBDIF ެ։σΟϨΫτϦ
    1)1͕ෆཁͳ࣌΋QIQͷό
    ΠφϦࠐΈͷBQBDIF͕ಈ࡞
    NPE@QIQ

    View Slide

  25. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOYQIQGQN
    OHJOY
    ެ։σΟϨΫτϦ
    ϑΝΠϧΛ୳ͯ͠ฦ͢ͷΈ
    QIQGQN
    QIQ
    ಠཱͨ͠σʔϞϯͰ
    1)1ʹઐ೦

    View Slide

  26. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ը૾ͳͲ͕ଟ͍৔߹
    OHJOY͸লϝϞϦ
    BQBDIF
    NPE@QIQ
    BQBDIF
    NPE@QIQ
    BQBDIF
    NPE@QIQ
    BQBDIF
    NPE@QIQ
    BQBDIF
    NPE@QIQ
    OHJOY
    QIQGQN
    OHJOY
    OHJOY
    OHJOY
    OHJOY

    View Slide

  27. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOYͷಋೖ
    FUDZVNSFQPTEOHJOYSFQPʹ௥Ճ
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/6/x86_64/
    gpgcheck=0
    enabled=1
    # yum install nginx

    View Slide

  28. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    FUDOHJOYDPOGEEFGBVMUDPOG
    location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
    }
    # cp -f /usr/local/etc/php-fpm.conf.default /usr/local/
    etc/php-fpm.conf
    # cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    # chmod 755 /etc/init.d/php-fpm
    # mkdir /var/log/php-fpm
    # chown -R nginx:nginx /var/log/php-fpm

    View Slide

  29. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ৭ʑઃఆ
    wFUDOHJOYDPOGEEFGBVMUDPOG
    wGBTUDHJQBSBN
    wVTSMPDBMFUDQIQGQNDPOG
    wQJEVTFSHSPVQ
    # service nginx start
    # service php-fpm start

    View Slide

  30. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOYQIQGQN
    w)FMMP8PSMEST
    wKQHը૾ST
    w8PSE1SFTTͷ)5.-෦෼ST
    w8PSE1SFTTͷϖʔδશମNT

    View Slide

  31. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    OHJOYQIQGQN"1$
    w)FMMP8PSMEST
    wKQHը૾ST
    w8PSE1SFTTͷ)5.-෦෼ST
    w8PSE1SFTTͷϖʔδશମNT

    View Slide

  32. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    View Slide

  33. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    αΫαΫ
    ଍ฒΈཚΕͯΔ

    View Slide

  34. OHJOYQIQGQN:VTVLF"OEP !ZBOEP

    ·ͱΊ
    w"1$͸΋ͷ͘͢͝ޮ͘
    w1)1ͷಈ࡞଎౓ࣗମʹେࠩ͸ແ͍
    wΑΓࡉ͔͍ϓϩηεઃఆͷ༨஍
    wը૾ͳͲͷॲཧͰ͸OHJOYʹ༨༟
    ˠίϯςϯπͷද͕ࣔ଎͍ʹମײ
    ಈ࡞ݪཧʹݟ߹ͬͨޮՌ

    View Slide