Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
<!̶ 美乳 ̶>
美乳と

PHP7 on Docker
てきとうなさいと。べぇたばん
ぼく、てきめん!
• 「てきとう」「めんどい」の略デス><
• Don t think, feel! and Laziness
• さいと: http://tekitoh-memdhoi.info
• twitter: @youkidearit...
先頭に「美乳」
• 昔EUC-JPのページで文字化けを防ぐために
Shift_JISにない「0xFD」や「0xFE」が偶然「美
乳」内にあったために生まれた「おまじない」
• Yahoo! Japanでは流石に使いづらかったのか「京」
(0xF...
ではみてみましょう
$ hexdump -C binyu.txt
00000000 c8 fe c6 fd 0a
00000005
$ iconv -f euc-jp -t utf-8 binyu.txt
美乳
美乳のなかにあるしんぴ!
それはそうと
PHP7.0がリリース!
12がつ3にち
さっそくつかいたい!

運用したい!
PHP7.0をうごかす
• ぼくのてきとうなさいと。べぇたばんは

Debian GNU/Linux Jessieで動いてます
• 公式のPHPは5.6.9ベース
• ということは、deb(リポジトリ)を
• つくる
• さがす
• ソースコー...
PHP7.0をうごかす
• ぼくのてきとうなさいと。べぇたばんは

Debian GNU/Linux Jessieで動いてます
• 公式のPHPは5.6.9ベース
• ということは、deb(リポジトリ)を
• つくる
• さがす
• ソースコー...
よっしゃコンパイルじゃ
• 昔のぺちぱー(に限らないか)はコンパイルしてた
• しかし、サーバー上でコンパイルは自殺行為
• バージョン上げられない><
• 自家版debやrpmを作って運用もあった
• やっぱり公式リポジトリだよねヽ(^。^)ノ
Docker
そんな昔の悲劇を繰り返してはならない。

今はコレがある
コンパイルしたPHP7を

OSごとコンテナに

してしまえ
コンテナ内部
• apt-get install apache2 apache2-dev build-essential
autoconf libpq-dev libxml2-dev libicu-dev libdb-dev
libjpeg-d...
Dockerfile
FROM youkidearitai/php7-tmcmaker
RUN cd /var/www/htdocs/ && git pull origin master
VOLUME /home/vagrant/media_we...
ホスト側
• /etc/systemd/system/php7-tmcmaker.service
• ExecStart=/usr/bin/docker run -p 80:80 -v /home/
tekitoh/htdocs/cake/ap...
要は、こういうこと
というわけで
PHP7乗っけたぜ
うわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ
てバレちゃうわー、やっべー、あぶねー
奮闘の記録
http://tekitoh-memdhoi.info/views/706
デプロイ
デプロイの方法
$ cat fabfile.py # 一部割愛
# -*- coding: utf-8 -*-
# デプロイを行う
@hosts("tekitoh.sakura")
def deploy():
# ssh_configを使えるように...
PHP7で四苦八苦
継承したメソッドの

引数が違うとE_WARNING
root@c182b8ea1b57:/tmp# cat hoge.php
<?php
abstract class Hoge {
public function getHuga($huga)...
そういうプラグインはプルリク送った
Docker運用して

気がついたこと
• ひとつのコンテナにひとつのプログラムが走る
• そのコンテナに異常があっても中に入るのは困難
• 画像やデータベースをDocker運用にしたらデータが
消えたりして多分死ぬ
• そのためのManage data in containers
...
ロードアベレージ
なんか減った…Dockerがごまかしてる?
ぶっちゃけ使う必要あるん?
• boycott dockerなんてページもあるくらい
• HackerNewsでtopに出るぞとかツイッターのフォローたく
さん来るぞとか
• ぼくのように「Docker使いましたイエー」とか
• PHP7を使い...
PHP 7.0.1
12月17日
もちろん対応しました
うわ、やっべーわ、PHP7.0.1ってバレちゃうわー
まとめ
• PHP7を使うならばこういうのもあるよ!!
• UbuntuやDebian、CentOSの公式パッケージを待
とうというのもあるよ!!
• Docker・PHP7の今後の進化を期待してます!
• このLTに対して不快に思われた方はごめんなさ...
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
Upcoming SlideShare
Loading in …5
×

美乳とPHP7 on Docker - てきとうなさいと。べぇたばん

853 views

Published on

https://phpstudy.doorkeeper.jp/events/36057

Published in: Engineering
  • Login to see the comments

  • Be the first to like this

美乳とPHP7 on Docker - てきとうなさいと。べぇたばん

  1. 1. <!̶ 美乳 ̶>
  2. 2. 美乳と
 PHP7 on Docker てきとうなさいと。べぇたばん
  3. 3. ぼく、てきめん! • 「てきとう」「めんどい」の略デス>< • Don t think, feel! and Laziness • さいと: http://tekitoh-memdhoi.info • twitter: @youkidearitai • facebook: youkidearitai.yuya.hamada • PHP界隈では0x27さい説のある27さいです • ラジコンの人です
  4. 4. 先頭に「美乳」 • 昔EUC-JPのページで文字化けを防ぐために Shift_JISにない「0xFD」や「0xFE」が偶然「美 乳」内にあったために生まれた「おまじない」 • Yahoo! Japanでは流石に使いづらかったのか「京」 (0xFEが入ってる)になってた • 参考 • EUC-JPの文字化け対策に有効な「美乳」 • 2005年あたりのInternet Archive
  5. 5. ではみてみましょう $ hexdump -C binyu.txt 00000000 c8 fe c6 fd 0a 00000005 $ iconv -f euc-jp -t utf-8 binyu.txt 美乳 美乳のなかにあるしんぴ!
  6. 6. それはそうと
  7. 7. PHP7.0がリリース! 12がつ3にち
  8. 8. さっそくつかいたい!
 運用したい!
  9. 9. PHP7.0をうごかす • ぼくのてきとうなさいと。べぇたばんは
 Debian GNU/Linux Jessieで動いてます • 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす • ソースコードをコンパイル
  10. 10. PHP7.0をうごかす • ぼくのてきとうなさいと。べぇたばんは
 Debian GNU/Linux Jessieで動いてます • 公式のPHPは5.6.9ベース • ということは、deb(リポジトリ)を • つくる • さがす • ソースコードをコンパイル
  11. 11. よっしゃコンパイルじゃ • 昔のぺちぱー(に限らないか)はコンパイルしてた • しかし、サーバー上でコンパイルは自殺行為 • バージョン上げられない>< • 自家版debやrpmを作って運用もあった • やっぱり公式リポジトリだよねヽ(^。^)ノ
  12. 12. Docker そんな昔の悲劇を繰り返してはならない。
 今はコレがある
  13. 13. コンパイルしたPHP7を
 OSごとコンテナに
 してしまえ
  14. 14. コンテナ内部 • apt-get install apache2 apache2-dev build-essential autoconf libpq-dev libxml2-dev libicu-dev libdb-dev libjpeg-dev libpng-dev libgif-dev libgd-dev libreadline- dev libgd2-xpm-dev libcurl4-openssl-dev pkg-config • ./configure ̶with-apxs2=/usr/bin/apxs ̶enable- mbstring ̶enable-intl ̶with-pgsql=/usr/include/ postgresql ̶with-pdo-pgsql ̶with-gd=/usr/include/ ̶with-jpeg-dir=/usr/include/ ̶with-png-dir=/usr/ include/ ̶with-readline=/usr/include/ ̶with-xpm- dir=/usr/include/ ̶with-openssl
  15. 15. Dockerfile FROM youkidearitai/php7-tmcmaker RUN cd /var/www/htdocs/ && git pull origin master VOLUME /home/vagrant/media_webroot /var/www/htdocs/cake/app/ media_webroot/ EXPOSE 80 80 env APACHE_RUN_USER www-data env APACHE_RUN_GROUP www-data env APACHE_PID_FILE /var/run/apache2.pid env APACHE_RUN_DIR /var/run/apache2 env APACHE_LOCK_DIR /var/lock/apache2 env APACHE_LOG_DIR /var/log/apache2 env LANG C ENTRYPOINT ["/usr/sbin/apache2", "-D", "FOREGROUND"]
  16. 16. ホスト側 • /etc/systemd/system/php7-tmcmaker.service • ExecStart=/usr/bin/docker run -p 80:80 -v /home/ tekitoh/htdocs/cake/app/media_webroot:/var/www/ htdocs/cake/app/media_webroot -v /var/log/docker/ apache2:/var/log/apache2 -v /var/log/docker/ tmcmaker:/var/www/htdocs/cake/app/tmp/logs youkidearitai/php7-tmcmaker:php7-tmcmaker • 画像のアップロードとapache2・CakePHPのログをホス トに書き出してるのである。
  17. 17. 要は、こういうこと
  18. 18. というわけで
  19. 19. PHP7乗っけたぜ うわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ てバレちゃうわー、やっべー、あぶねー
  20. 20. 奮闘の記録 http://tekitoh-memdhoi.info/views/706
  21. 21. デプロイ
  22. 22. デプロイの方法 $ cat fabfile.py # 一部割愛 # -*- coding: utf-8 -*- # デプロイを行う @hosts("tekitoh.sakura") def deploy(): # ssh_configを使えるようにする env.use_ssh_config = True # 文字通りcd with cd("/home/tekitoh/"): run("sudo docker pull youkidearitai/php7-tmcmaker") run("sudo docker build ̶no-cache -t youkidearitai/php7-tmcmaker:php7-tmcmaker /home/tekitoh/") run("sudo systemctl stop php7-tmcmaker-docker.service") run("sudo systemctl start php7-tmcmaker-docker.service") $ fab deploy # でおしまいヽ(^。^)ノ
  23. 23. PHP7で四苦八苦
  24. 24. 継承したメソッドの
 引数が違うとE_WARNING root@c182b8ea1b57:/tmp# cat hoge.php <?php abstract class Hoge { public function getHuga($huga) { } } class Huga extends Hoge { public function getHuga() { return "Hello Huga"; } } $hoge = new Huga(); var_dump($hoge->getHuga()); root@c182b8ea1b57:/tmp# php hoge.php Warning: Declaration of Huga::getHuga() should be compatible with Hoge::getHuga($huga) in /tmp/ hoge.php on line 12 string(10) "Hello Huga"
  25. 25. そういうプラグインはプルリク送った
  26. 26. Docker運用して
 気がついたこと
  27. 27. • ひとつのコンテナにひとつのプログラムが走る • そのコンテナに異常があっても中に入るのは困難 • 画像やデータベースをDocker運用にしたらデータが 消えたりして多分死ぬ • そのためのManage data in containers • ログも書き出して置くべき • build-essentialもぶち込んだので2GB位ある
  28. 28. ロードアベレージ なんか減った…Dockerがごまかしてる?
  29. 29. ぶっちゃけ使う必要あるん? • boycott dockerなんてページもあるくらい • HackerNewsでtopに出るぞとかツイッターのフォローたく さん来るぞとか • ぼくのように「Docker使いましたイエー」とか • PHP7を使いたいから使うんであって、Dockerを使いたいか ら使うのではない>< • アプリケーションサーバーをコンテナにする意義はある。ソレ 以外はおすすめしない
  30. 30. PHP 7.0.1 12月17日
  31. 31. もちろん対応しました うわ、やっべーわ、PHP7.0.1ってバレちゃうわー
  32. 32. まとめ
  33. 33. • PHP7を使うならばこういうのもあるよ!! • UbuntuやDebian、CentOSの公式パッケージを待 とうというのもあるよ!! • Docker・PHP7の今後の進化を期待してます! • このLTに対して不快に思われた方はごめんなさい なんでもしますから • やとってください

×