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

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

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

2023/06/21 開催
第153回 PHP勉強会@東京 でのLTスライドです。
後から見返したところ、発表版スライドに誤字や補足漏れがあったため、一部修正してアップロードしています。

yumechi(Motoki Hirao)

June 21, 2023
Tweet

More Decks by yumechi(Motoki Hirao)

Other Decks in Programming

Transcript

  1. PHPをasdfで

    動かしてみたんです

    yumechi


    View Slide

  2. twitter: @__yumechi misskey: @[email protected]
    発表者に関しての情報

    ● twitter: @__yumechi misskey: @[email protected]
    ● 3月までPHP書いてる会社にいました、今はPythonやってるエンジニアです

    ● PHP歴は2年行かないくらい、そんなに詳しくはない
    😇😇

    ● ゲームをしたり、カンファレンスに行ったりするのが好きです

    ○ 最近はTEVIってゲームを待ってます 

    ○ https://store.steampowered.com/app/2230650/TEVI/


    View Slide

  3. twitter: @__yumechi misskey: @[email protected]
    この発表は…

    ● PHPカンファレンス福岡にプロポーザル出したら落ちてしまったLT

    ○ 実用性はあまりないと思ってたので、仕方なし …

    ● 福岡は行きたかった…です…(自費で)

    ○ 個人的な事情により予定が入ってしまい行けなくなってしまった …

    ● 福岡行く方は楽しんできてください~

    ○ TLはばっちりチェックする予定です 


    View Slide

  4. twitter: @__yumechi misskey: @[email protected]
    asdfとは? ~言語、ツールのバージョン管理ツール~

    ● asdf https://asdf-vm.com/

    ● 読み方よくわからないので個人的には「アズデフ」と呼んでます

    ● 様々な言語やCLIツールのバージョン管理ができるツール

    ○ 近そうなものでいえば anyenv とか?

    ○ 個別のものだと pyenv, nodeenv, rbenv, phpenv とか?

    ● 複数のツールバージョンを使わないといけないときとか、CLIツールのバージョン固
    定の観点だと活用シーンがありそう

    ○ nodejsとか複数のメジャーバージョンのモノ扱いたいときとか、 k8sとかバージョンアップとか変化が
    激しいものとか


    View Slide

  5. 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配下にあるくらいにしか思ってないの
    で)

    ○ プラグインスクリプトは結構簡潔で短いものが多いので(心配ならば)中身を読む 


    View Slide

  6. twitter: @__yumechi misskey: @[email protected]
    実際に使ってみると…? 軽い用途には向きそう

    ● (前提)ちゃんと動かすならDockerでやりましょう

    ● 活躍したのはPHPerKaigi 2023のPHPerチャレンジ

    ○ 特にサイボウズさんの問題 

    ○ https://speakerdeck.com/cybozuinsideout/phperkaigi2023challenge

    ● ちょっと違うバージョンのPHP入れて試したいとき

    ○ プロダクションとかだと一個前のバージョン使ってたりすることもあるので、試しに新しいものを入れ
    て検証してみるとか


    View Slide

  7. twitter: @__yumechi misskey: @[email protected]
    実際に動かす

    実際に下記のブログの問題に
    対して複数バージョンのPHP
    で実行してみます


    https://blog.cybozu.io
    /entry/phperkaigi2023-
    sponser


    View Slide

  8. ここまでだと

    めっちゃいい感じ

    っすねー

    ってなりそう


    View Slide

  9. だが実際は…?


    View Slide

  10. asdfでPHPを

    導入するのが

    若干難しい


    View Slide

  11. twitter: @__yumechi misskey: @[email protected]
    実際にasdfでPHPを入れていくぜ!

    ● 初心に返った気持ちで1から asdf を使って PHP が動くところまでやる

    ○ 本当に簡単か?という裏付けを得るため 

    ● まっさらな環境を用意するのが大変だったので今回はレンタルサーバーを使って行
    う

    ○ PHPerKaigiのときにさくらインターネットさんからクーポンをもらったので活用 

    ○ 技術調査にも使えるノベルティで本当に助かります 🙏🙏🙏

    ● 4月ごろプロポーザル書いてる時のバージョンなので少し古いのはご容赦ください


    View Slide

  12. View Slide

  13. なんと4系

    から入ってる


    View Slide

  14. インストールする

    →C Compiler 

    がないので失敗


    View Slide

  15. gccインストールする

    →bison がないので失敗


    View Slide

  16. オッ…

    つらくなって

    来たな?


    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. オッ…

    これ実質PHP自身を

    ビルドしてるのと

    変わらんな?😇😇


    View Slide

  23. タイトル

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

    は…


    View Slide

  24. 実はPHPをビルド

    してみました、

    だったんですね…


    View Slide

  25. twitter: @__yumechi misskey: @[email protected]
    必要なものを全部入れたらインストールできた

    ● メモ取ってたんですが10個くらい入れた気がします

    ● ちゃんとビルドに必要なライブラリを知っておけばよかったなぁ…

    ○ インストールする!→失敗する→ライブラリを調べて追加、を繰り返す 

    ○ 多分最初からまとまったところを見ておけばこうはならんかったはず 

    ○ (どこ見ればいいのか知らないので該当ページ知ってる方いらっしゃいましたら Twitterとかに流して
    ください…)

    ● で、色々入れたら8分くらいかけてビルドが走るので、ビルドが終わったらasdf での
    PHPインストール完了!やったね!


    View Slide

  26. ぜひ、PHPを自前で

    ビルドしてみたい

    人はやってみてね


    View Slide

  27. twitter: @__yumechi misskey: @[email protected]
    まとめ

    ● asdf便利なツール

    ● PHPとはちょっと相性が悪いかもしれない

    ○ これ自前でビルドしてるのと変わらんのでは? 

    ○ もしかすると一回PHPをインストール(brewでもなんでも)しとくと楽説(未検証) 

    ● PHPをビルドするって大変なんだなぁという体験ができるので、一度は体験しておく
    とよいのかもしれません

    ○ Dockerのありがたみがよくわかる 

    ○ インフラ周りやってる人のありがたみがよくわかる 


    View Slide

  28. twitter: @__yumechi misskey: @[email protected]
    まとめ

    ● asdf便利なツール

    ● PHPとはちょっと相性が悪いかもしれない

    ○ これ自前でビルドしてるのと変わらんのでは? 

    ○ もしかすると一回PHPをインストール(brewでもなんでも)しとくと楽説(未検証) 

    ● PHPをビルドするって大変なんだなぁという体験ができるので、一度は体験しておく
    とよいのかもしれません

    ○ Dockerのありがたみがよくわかる 

    ○ インフラ周りやってる人のありがたみがよくわかる 

    😇

    LT待ち時間でPHPインストールした環境で検証しましたがダメそうでした、残念


    View Slide

  29. twitter: @__yumechi misskey: @[email protected]
    当日質問があったこと

    ● 複数バージョン入れようとするとライブラリの依存バージョンが変わると思うが、そ
    の辺りはどうやっているか?

    ○ 自分が試している限りは PHP7.4, 8.0, 8.1, 8.2 は問題起きなかった 

    ○ インストールしてる順序が古い順なので問題起こらなかった可能性 

    ○ 古いバージョンについては検証していません 

    ● PHP4系など古いバージョンは本当に動作するのか?

    ○ 未検証です

    ○ 調査して何かわかったらどこかにまとめる予定です 


    View Slide

  30. 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/


    View Slide