Suche senden
Hochladen
PHP7をDockerで動かしたという話
•
1 gefällt mir
•
1,058 views
侑弥 濱田
Folgen
DockerでPHP7を動かしました。PHP7に加えてCakePHP2.7系で稼働してたのですが、PHP7になったらどうなったのでしょうか。
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 33
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
WordPress on PHP7 on CentOS7 on Saraku-VPS
WordPress on PHP7 on CentOS7 on Saraku-VPS
Ryo Shibayama
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
侑弥 濱田
Php7 on Docker on tekitoh-memdhoi.info
Php7 on Docker on tekitoh-memdhoi.info
侑弥 濱田
2015/08/08 第8回G-Study発表資料-部屋と自宅サーバと私
2015/08/08 第8回G-Study発表資料-部屋と自宅サーバと私
Yuta Hayakawa
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介
Hiraku Nakano
YAPC::ASIA 2012 LT GaiaX
YAPC::ASIA 2012 LT GaiaX
Kazuyuki Todo
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
Empfohlen
WordPress on PHP7 on CentOS7 on Saraku-VPS
WordPress on PHP7 on CentOS7 on Saraku-VPS
Ryo Shibayama
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
美乳とPHP7 on Docker - てきとうなさいと。べぇたばん
侑弥 濱田
Php7 on Docker on tekitoh-memdhoi.info
Php7 on Docker on tekitoh-memdhoi.info
侑弥 濱田
2015/08/08 第8回G-Study発表資料-部屋と自宅サーバと私
2015/08/08 第8回G-Study発表資料-部屋と自宅サーバと私
Yuta Hayakawa
PSR-3 Logger Interfaceの紹介
PSR-3 Logger Interfaceの紹介
Hiraku Nakano
YAPC::ASIA 2012 LT GaiaX
YAPC::ASIA 2012 LT GaiaX
Kazuyuki Todo
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Wataru Terada
Vert.x.tari.tari
Vert.x.tari.tari
Takahiro Sugiura
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
Yuta Hayakawa
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由
Tao Sasaki
pythonでオフィス快適化計画
pythonでオフィス快適化計画
Kazufumi Ohkawa
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
7shi
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Masafumi Ohta
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Yuta Hayakawa
Cake assets plugin in PHP Matsuri 2012
Cake assets plugin in PHP Matsuri 2012
Hirohide Sano
ChatOps with Hubot
ChatOps with Hubot
Yoshiaki Yoshida
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
H2O and php
H2O and php
Junichi Ishida
Hashicorpツールズ
Hashicorpツールズ
Uchio Kondo
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
Yuta Hayakawa
Kotlinでマッチョする話
Kotlinでマッチョする話
Shinobu Okano
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Masahito Zembutsu
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
Kiwamu Okabe
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
Weitere ähnliche Inhalte
Was ist angesagt?
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Wataru Terada
Vert.x.tari.tari
Vert.x.tari.tari
Takahiro Sugiura
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
Yuta Hayakawa
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
晃 遠山
Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由
Tao Sasaki
pythonでオフィス快適化計画
pythonでオフィス快適化計画
Kazufumi Ohkawa
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
7shi
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Masafumi Ohta
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
敦志 金谷
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Yuta Hayakawa
Cake assets plugin in PHP Matsuri 2012
Cake assets plugin in PHP Matsuri 2012
Hirohide Sano
ChatOps with Hubot
ChatOps with Hubot
Yoshiaki Yoshida
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
H2O and php
H2O and php
Junichi Ishida
Hashicorpツールズ
Hashicorpツールズ
Uchio Kondo
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
Yuta Hayakawa
Kotlinでマッチョする話
Kotlinでマッチョする話
Shinobu Okano
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Masahito Zembutsu
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
Kiwamu Okabe
Was ist angesagt?
(20)
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Vert.x.tari.tari
Vert.x.tari.tari
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
2015/04/11 第4回G-Study発表資料 Risoluto開発に見る車輪の再発明
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
Espressoじゃなくてcodaを使う理由
Espressoじゃなくてcodaを使う理由
pythonでオフィス快適化計画
pythonでオフィス快適化計画
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
V6 Interpreter (Nagoya Geek Bar 2011-05-02)
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Raspberry Pi 最新情報 at OSC Tokyo 2014 秋
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
2015/09/12 第9回G-Study発表資料-XdebugでPHP ScriptのProfileしてみる
Cake assets plugin in PHP Matsuri 2012
Cake assets plugin in PHP Matsuri 2012
ChatOps with Hubot
ChatOps with Hubot
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
H2O and php
H2O and php
Hashicorpツールズ
Hashicorpツールズ
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
2015/02/21 第2回G-Study発表資料 / XperiaなWalkmanアプリにiTunesなライブラリをインポートしたことによって身に...
Kotlinでマッチョする話
Kotlinでマッチョする話
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
組込向けHaskellコンパイラAjhc / POSIX依存から脱出しよう編
Ähnlich wie PHP7をDockerで動かしたという話
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
入門 シェル実装
入門 シェル実装
Yusuke Sangenya
Dockerを使ってみよう
Dockerを使ってみよう
Ryo Adachi
Smalltalk との比較で深まる Citrine の理解
Smalltalk との比較で深まる Citrine の理解
TAKANO Mitsuhiro
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
FukuokaPHP 3
FukuokaPHP 3
ichikaway
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Kei IWASAKI
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Yuuki Takezawa
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
Php in ruby
Php in ruby
do_aki
Open modeler
Open modeler
Yoshiki Izumi
らくちん Go言語
らくちん Go言語
株式会社YEBIS.XYZ
初心者が伝えるDocker超入門
初心者が伝えるDocker超入門
chichi1091
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
composer-scriptsについて
composer-scriptsについて
Hiraku Nakano
Ähnlich wie PHP7をDockerで動かしたという話
(20)
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
2009年のPHPフレームワーク
2009年のPHPフレームワーク
入門 シェル実装
入門 シェル実装
Dockerを使ってみよう
Dockerを使ってみよう
Smalltalk との比較で深まる Citrine の理解
Smalltalk との比較で深まる Citrine の理解
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
FukuokaPHP 3
FukuokaPHP 3
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Php in ruby
Php in ruby
Open modeler
Open modeler
らくちん Go言語
らくちん Go言語
初心者が伝えるDocker超入門
初心者が伝えるDocker超入門
PHPの今とこれから2020
PHPの今とこれから2020
composer-scriptsについて
composer-scriptsについて
PHP7をDockerで動かしたという話
1.
<!̶ 美乳 ̶>
2.
美乳と PHP7 on Docker 第97回PHP勉強会の使い回し てきとうなさいと。べぇたばん
3.
ぼく、てきめん! • 「てきとう」「めんどい」の略デス>< • Don
t think, feel! and Laziness • さいと: http://tekitoh-memdhoi.info • twitter: @youkidearitai • facebook: youkidearitai.yuya.hamada • PHP界隈では0x27さい説のある28さいです • (たぶん)ラジコンの人です
4.
Arduinoでラジコン作った
5.
先頭に「美乳」 • 昔EUC-JPのページで文字化けを防ぐために Shift_JISにない「0xFD」や「0xFE」が偶然「美 乳」内にあったために生まれた「おまじない」 • Yahoo!
Japanでは流石に使いづらかったのか「京」 (0xFEが入ってる)になってた • 参考 • EUC-JPの文字化け対策に有効な「美乳」 • 2005年あたりのInternet Archive
6.
ではみてみましょう $ hexdump -C
binyu.txt 00000000 c8 fe c6 fd 0a 00000005 $ iconv -f euc-jp -t utf-8 binyu.txt 美乳 美乳のなかにあるしんぴ!
7.
PHP7.0がリリース! 2015ねん12がつ3にち
8.
さっそくつかいたい! 運用したい!
9.
てきとうなさいと。 べぇたばんの構成 • Debian GNU/Linux
jessie • CakePHP 2.7系 • CakePHP1.3系から引き継ぎ引き継ぎ… • PostgreSQL • MySQLから移した mysql2postgresql • さくらのVPS • DevOps • Ansible • Fabric
10.
よっしゃコンパイルじゃ • 昔のぺちぱー(に限らないか)はコンパイルしてた • しかし、サーバー上でコンパイルは自殺行為 •
バージョン上げられない>< • 自家版debやrpmを作って運用もあった • やっぱり公式リポジトリだよねヽ(^。^)ノ
11.
Docker そんな昔の悲劇を繰り返してはならない。 今はコレがある
12.
コンパイルしたPHP7を OSごとコンテナに してしまえ
13.
コンテナ内部 • 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
14.
Dockerfile FROM youkidearitai/php7-tmcmaker 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"]
15.
ホスト側 • /etc/systemd/system/php7-tmcmaker.service • ExecStart=/usr/bin/docker
run -p 80:80 -v /home/tekitoh/ htdocs:/var/www/htdocs/ -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 • ホストに書き出してる • CakePHPのログ • Apacheのログ • 画像 • ソースコード
16.
要は、こういうこと
17.
18.
デプロイ
19.
ソースコード $ cat fabfile.py #
-*- coding: utf-8 -*- from fabric.api import local, settings, abort, run, cd, env, hosts # pushのみ @hosts("tekitoh.sakura") def push(): env.use_ssh_config = True local("git push deploy master") # 保存先レポジトリからpullするのみ @hosts("tekitoh.sakura") def pull(): env.use_ssh_config = True with cd("htdocs/"): run("git pull origin master") # デプロイを行う @hosts("tekitoh.sakura") def deploy(): push() pull() $ fab deploy # でおしまいヽ(^。^)ノ
20.
PHP7コンテナ側 $ 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 -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 # でおしまいヽ(^。^)ノ
21.
PHP5 -> PHP7 CakePHP
2.7系でうごかすと…?
22.
CakePHP 2.7 • CakePHP
2.7.6ではStringというclassが使われて いるのでつかえなかった • CakePHP 2.7.7ではCakeTextに変更されてるの で使えてる
23.
というわけで
24.
PHP7乗っけたぜ うわ、やっべーわー、X-Powerd-ByヘッダでPHP7だっ てバレちゃうわー、やっべー、あぶねー
25.
PHP7 まいなーバージョンアップ 個人的に面白かった部分 PHP 7.0.1 2015ねん12がつ17にち PHP
7.0.2 2016ねん1がつ7にち
26.
PHP 7.0.1 Fixed bug
#70944 (try{ } finally{} can create infinite chains of exceptions). $ cat test.php <?php $e = new Exception("Bar"); try { throw new Exception("Foo", 0, $e); } finally { throw $e; }
27.
Fixed bug #70944
(try{ } finally{} can create infinite chains of exceptions). $ php test.php # PHP 7.0.2 PHP Fatal error: Uncaught Exception: Bar in /tmp/test.php:2 Stack trace: #0 {main} thrown in /tmp/test.php on line 2 $ php test.php # PHP 5.5.29 ^C ループし続けてる(๑́•. ̫• `๑) ※ PHP5.6系では1がつ7にちのPHP 5.6.17で修正されました 5.5系はしらん PHP 7.0.1にした時の記録 http://tekitoh-memdhoi.info/views/707
28.
PHP 7.0.2 Fixed bug
#70804 (Unary add on negative zero produces positive zero). $ cat test.php <?php var_dump(round(-1e-99)); var_dump(+round(-1e-99));
29.
Fixed bug #70804
(Unary add on negative zero produces positive zero). # php test.php # PHP 7.0.2 float(-0) float(-0) $ php test.php # PHP 5.5.29 float(-0) float(0) ぼくはこの時までマイナス0のことを知らなかったのであった WikipediaにあるIEEE 754のにおける負のゼロ PHP 7.0.2にした時の記録 http://tekitoh-memdhoi.info/views/718
30.
Fixed bug #66179
(var_export() exports float as integer). # php -r var_export(1.0);' # PHP 7.0.2 1.0 $ php -r var_export(1.0);' # PHP 5.5.29 1
31.
PHP5.5以下はもう… PHP 5.6の話だとしても今年いっぱい
32.
まとめ
33.
(๑́•.̫ • `๑)
Jetzt herunterladen