Slide 1

Slide 1 text

PHPをasdfで
 動かしてみたんです
 yumechi


Slide 2

Slide 2 text

twitter: @__yumechi misskey: @[email protected]
 発表者に関しての情報
 ● twitter: @__yumechi misskey: @[email protected]
 ● 3月までPHP書いてる会社にいました、今はPythonやってるエンジニアです
 ● PHP歴は2年行かないくらい、そんなに詳しくはない 😇😇
 ● ゲームをしたり、カンファレンスに行ったりするのが好きです
 ○ 最近はTEVIってゲームを待ってます 
 ○ https://store.steampowered.com/app/2230650/TEVI/


Slide 3

Slide 3 text

twitter: @__yumechi misskey: @[email protected]
 この発表は…
 ● PHPカンファレンス福岡にプロポーザル出したら落ちてしまったLT
 ○ 実用性はあまりないと思ってたので、仕方なし …
 ● 福岡は行きたかった…です…(自費で)
 ○ 個人的な事情により予定が入ってしまい行けなくなってしまった …
 ● 福岡行く方は楽しんできてください~
 ○ TLはばっちりチェックする予定です 


Slide 4

Slide 4 text

twitter: @__yumechi misskey: @[email protected]
 asdfとは? ~言語、ツールのバージョン管理ツール~
 ● asdf https://asdf-vm.com/
 ● 読み方よくわからないので個人的には「アズデフ」と呼んでます
 ● 様々な言語やCLIツールのバージョン管理ができるツール
 ○ 近そうなものでいえば anyenv とか?
 ○ 個別のものだと pyenv, nodeenv, rbenv, phpenv とか?
 ● 複数のツールバージョンを使わないといけないときとか、CLIツールのバージョン固 定の観点だと活用シーンがありそう
 ○ nodejsとか複数のメジャーバージョンのモノ扱いたいときとか、 k8sとかバージョンアップとか変化が 激しいものとか


Slide 5

Slide 5 text

twitter: @__yumechi misskey: @[email protected]
 asdfでPHPも使えます
 ● asdf-community/asdf-php: PHP plugin for the asdf version manager https://github.com/asdf-community/asdf-php
 ● コミュニティからプラグインが提供されているので、安心して(?)使うことができます
 ○ (コミュニティの存在が割とふわっとしている? Organization配下にあるくらいにしか思ってないの で)
 ○ プラグインスクリプトは結構簡潔で短いものが多いので(心配ならば)中身を読む 


Slide 6

Slide 6 text

twitter: @__yumechi misskey: @[email protected]
 実際に使ってみると…? 軽い用途には向きそう
 ● (前提)ちゃんと動かすならDockerでやりましょう
 ● 活躍したのはPHPerKaigi 2023のPHPerチャレンジ
 ○ 特にサイボウズさんの問題 
 ○ https://speakerdeck.com/cybozuinsideout/phperkaigi2023challenge
 ● ちょっと違うバージョンのPHP入れて試したいとき
 ○ プロダクションとかだと一個前のバージョン使ってたりすることもあるので、試しに新しいものを入れ て検証してみるとか


Slide 7

Slide 7 text

twitter: @__yumechi misskey: @[email protected]
 実際に動かす
 実際に下記のブログの問題に 対して複数バージョンのPHP で実行してみます
 
 https://blog.cybozu.io /entry/phperkaigi2023- sponser


Slide 8

Slide 8 text

ここまでだと
 めっちゃいい感じ
 っすねー
 ってなりそう


Slide 9

Slide 9 text

だが実際は…?


Slide 10

Slide 10 text

asdfでPHPを
 導入するのが
 若干難しい


Slide 11

Slide 11 text

twitter: @__yumechi misskey: @[email protected]
 実際にasdfでPHPを入れていくぜ!
 ● 初心に返った気持ちで1から asdf を使って PHP が動くところまでやる
 ○ 本当に簡単か?という裏付けを得るため 
 ● まっさらな環境を用意するのが大変だったので今回はレンタルサーバーを使って行 う
 ○ PHPerKaigiのときにさくらインターネットさんからクーポンをもらったので活用 
 ○ 技術調査にも使えるノベルティで本当に助かります 🙏🙏🙏
 ● 4月ごろプロポーザル書いてる時のバージョンなので少し古いのはご容赦ください


Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

なんと4系
 から入ってる


Slide 14

Slide 14 text

インストールする
 →C Compiler 
 がないので失敗


Slide 15

Slide 15 text

gccインストールする
 →bison がないので失敗


Slide 16

Slide 16 text

オッ…
 つらくなって
 来たな?


Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

オッ…
 これ実質PHP自身を
 ビルドしてるのと
 変わらんな?😇😇


Slide 23

Slide 23 text

タイトル
 PHPをasdfで動かし てみたんです
 は…


Slide 24

Slide 24 text

実はPHPをビルド
 してみました、
 だったんですね…


Slide 25

Slide 25 text

twitter: @__yumechi misskey: @[email protected]
 必要なものを全部入れたらインストールできた
 ● メモ取ってたんですが10個くらい入れた気がします
 ● ちゃんとビルドに必要なライブラリを知っておけばよかったなぁ…
 ○ インストールする!→失敗する→ライブラリを調べて追加、を繰り返す 
 ○ 多分最初からまとまったところを見ておけばこうはならんかったはず 
 ○ (どこ見ればいいのか知らないので該当ページ知ってる方いらっしゃいましたら Twitterとかに流して ください…)
 ● で、色々入れたら8分くらいかけてビルドが走るので、ビルドが終わったらasdf での PHPインストール完了!やったね!


Slide 26

Slide 26 text

ぜひ、PHPを自前で
 ビルドしてみたい
 人はやってみてね


Slide 27

Slide 27 text

twitter: @__yumechi misskey: @[email protected]
 まとめ
 ● asdf便利なツール
 ● PHPとはちょっと相性が悪いかもしれない
 ○ これ自前でビルドしてるのと変わらんのでは? 
 ○ もしかすると一回PHPをインストール(brewでもなんでも)しとくと楽説(未検証) 
 ● PHPをビルドするって大変なんだなぁという体験ができるので、一度は体験しておく とよいのかもしれません
 ○ Dockerのありがたみがよくわかる 
 ○ インフラ周りやってる人のありがたみがよくわかる 


Slide 28

Slide 28 text

twitter: @__yumechi misskey: @[email protected]
 まとめ
 ● asdf便利なツール
 ● PHPとはちょっと相性が悪いかもしれない
 ○ これ自前でビルドしてるのと変わらんのでは? 
 ○ もしかすると一回PHPをインストール(brewでもなんでも)しとくと楽説(未検証) 
 ● PHPをビルドするって大変なんだなぁという体験ができるので、一度は体験しておく とよいのかもしれません
 ○ Dockerのありがたみがよくわかる 
 ○ インフラ周りやってる人のありがたみがよくわかる 
 😇 
 LT待ち時間でPHPインストールした環境で検証しましたがダメそうでした、残念


Slide 29

Slide 29 text

twitter: @__yumechi misskey: @[email protected]
 当日質問があったこと
 ● 複数バージョン入れようとするとライブラリの依存バージョンが変わると思うが、そ の辺りはどうやっているか?
 ○ 自分が試している限りは PHP7.4, 8.0, 8.1, 8.2 は問題起きなかった 
 ○ インストールしてる順序が古い順なので問題起こらなかった可能性 
 ○ 古いバージョンについては検証していません 
 ● PHP4系など古いバージョンは本当に動作するのか?
 ○ 未検証です
 ○ 調査して何かわかったらどこかにまとめる予定です 


Slide 30

Slide 30 text

twitter: @__yumechi misskey: @[email protected]
 利用情報
 ● スライド作成: Google Slide https://www.google.com/slides/about/
 ● フォント: Noto Sans https://fonts.google.com/noto/specimen/Noto+Sans
 ● 利用画像
 ○ 商用可・フリーイラスト素材|ソコスト https://soco-st.com/