このブログは未経験からのエンジニア転職やプログラミングの勉強方法などを発信する、現役エンジニアによるエンジニアのためのトータル技術ブログです。ブログとご一緒にSNSのフォローもよろしくお願いします。

Twitterをフォローする

【PHP】phpbrewでバージョン管理する手順

PHP
スポンサーリンク

こんにちは、あっきー(IwswAkht)です。

最近またPHPをさわる機会がふえてきたのでとりあえず作業用のMacにLaravelを動かせる環境構築しておこうと作業しました。

PHPは自己学習でやってたので、あまりバージョンとか考えないで遊びながら使ってたのでいざ仕事で使うとなったときにバージョン管理について考える機会に恵まれましたので今回は忘備録として記事をのこうと思います。

以下、PHPのバージョンに関する情報が載ってます。

 

PHPのリリース日とサポート期限 - Qiita
概要公式サポート状況2024年1月現在、公式にサポートされている PHP は 8.3, 8.2, 8.1 の3系統。マイナーバージョンの初回リリースから2年間がアクティブサポート、その後1年間…

 

本日はphpbrewで最新の7.4系に変更する方法を書いていこうと思います。

 

スポンサーリンク

作業手順

 

まず最初に作業の手順を確認して大まかなアウトラインを掴んでおきましょう!

 

  1. homebrewのインストール
  2. phpbrewのインストールや初期設定
  3. phpbrewからPHP最新verをインストール
  4. 最新のPHPに切り替える

 

順番に確認していきましょう。

 

homebrewのインストール

 

Macで環境構築する場合、homebrewというツールを使います。

homebrewはいわゆるパッケージマネージャーなのでhomebrewのコマンドを介してインストールやパッケージの管理が一元化できるので便利ですよ。

ですのでまずhomebrewがインストールされているのか確認してみましょう。以下のコマンドを実行してください。

 

ターミナル

 

実行結果にzsh: command not found: brewと表示されましたら、そのまま読み続けてください。

Your system is ready to brew.と表示されましたら、すでにhomebrewがインストールされている状態ですのでこの項目はスキップして構いません。

 

では、homebrewがなかった場合の説明をします。homebrewを使うためにはXcodeが必要ですのでApp Storeからインストールしましょう。

 

 

Xcodeのインストールが完了しましたら、ターミナルで以下のコマンドを実行してください。

ターミナル

 

きつね先生
きつね先生

このコマンドはhomebrewの公式サイトから取得してます。

 

実行しましたらパスワード入力を求められますので入力してください。

次にXcode Command Line Toolsのインストールが必要になりますのでその確認をされます。

プロセスログに以下のような表示が確認でます。

 

ログ

 

確認できましたらEnterを押して処理を続行してください。以下のようなログが表示されれば大丈夫です。

 

ログ

 

phpbrewのインストールや初期設定

 

Macのシステム内のデフォルトのPHPのバージョンが低い場合(7.2以下)はphpbrewがうまくセットアップできないようなのでhomebrewを使用してあらかじめ、バージョン7.2以降のPHPをインストールしておきます。

 

ターミナル

 

最新版のPHPを取得しましたらphpbrewのセットアップを行っていきます。

以下にドキュメントのリンクも貼っておきますが、クイックリファレンスとして必要なコマンドを抜粋しましたので参考にしてください。

 

phpbrew/README.ja.md at master · phpbrew/phpbrew
Brew & manage PHP versions in pure PHP at HOME. Contribute to phpbrew/phpbrew development by creating an account on GitHub.

 

ターミナル

 

Did you mean 'self-update'? [Y/n]と聞かれますのでYを入力してくEnterを押してください。

完了しましたら以下のようなログが出力されます。

 

ログ

 

問題なく進みましたら最後に以下のコマンドを実行してください。

 

ターミナル

 

画像のような出力が確認できます。

 

 

phpbrewからPHP最新verをインストール

 

phpbrewコマンドが使えるようになりましたので最新版のPHPをインストールしていきます。

以下のコマンドを実行してインストールできるバージョンの一覧を出力します。

 

ターミナル

 

 

実行結果は以下です。

 

ログ

 

現在の最新版は7.4.7をインストールしましょう。

 

ターミナル

 

成功した場合以下のログがでます。

 

ログ

 

phpbrewのインストールでエラーが出た時

 

phpbrew install 7.4.7 +defaultを実行してインストールに失敗した場合のトラブルシューティングです。

インストールに失敗した場合の原因は主に2つです。

 

  1. パッケージが足りていない
  2. パッケージはあるがパスが通ってない

 

順に書いていきます。

 

パッケージが足りてない

 

例えば以下のようなログが出力されてたとします。

 

ログ

 

この場合はpkg-config.というパッケージが足りていないということですね。

これでもわかりますがbuild.logの最終5行確認してみてとも怒られていますのでもう少し細かくみてみましょう。

以下のコマンドで確認してみましょう。

 

ターミナル

 

以下のような記述があるかと思います。

 

/Users/user-name/.phpbrew/build/php-7.4.7/build.log

 

パッケージないからWebからpkg-configのファイルを取得してとのことです。

ですがこれhomebrewからでも取得できます。

以下のコマンドを実行してください。

 

ターミナル

 

その他には以下のようなエラーも出たりします。

 

ログ

 

似たようなエラーですね。

この場合はもう関連パッケージをまとめてインストールしてしまいましょう。

以下のコマンドを実行してください。

 

ターミナル

 

どんなパッケージのエラーが出るかはPCによって変わるところはあると思いますのでbrew listコマンドで以下のリストとパッケージの有無の確認をして対応していけば解決できると思います。

 

ターミナル

※場合によっては不必要なパッケージもあるかと思いますので基本はエラーにそってインストールする方がいいです。

 

パッケージはあるがパスが通ってない

 

パッケージはあるけどダメなケースもあります。

例えば以下のようなエラーが出力されたとします。

 

ログ

 

この場合はzlibというパッケージの場所を認識していないので、"--with-zlib-dir="でパス指定をする必要があります。

以下のコマンドを実行してください。

 

ターミナル

 

最新のPHPに切り替える

 

phpbrewからPHPのインストールが完了しましたので切り替えましょう。

以下のコマンドを実行してください。

 

ターミナル

 

これで以下のログのようにインストールされたPHPのバージョン一覧が表示されます。

 

ログ

 

たぬきち仙人
たぬきち仙人

* (system)はデフォルトで入ってるPHPのバージョンを指すんじゃ

 

表示された一覧から使いたいバージョンを選択して適応させます。以下のコマンドを実行してください。

 

ターミナル

 

最後に設定が適応されたか確認しましょう。

 

ターミナル

 

お疲れ様です。これで完了です。

 

バージョン適応時のエラー:Invalid argument php-7.4.7

 

phpbrew use php-7.4.7でタイトルのエラーが出た場合は以下のコマンドを実行してください。

 

ターミナル

 

【コラム】.bashrcなどの設定ファイルについて

 

「phpbrewのインストールや初期設定」echo 'source ~/.phpbrew/bashrc' >> ~/.bashrcコマンドや「バージョン適応時のエラー:Invalid argument php-7.4.7」source ~/.phpbrew/bashrcコマンドなどで出てくるbashrcというキーワードについてです。

これは設定ファイルとしていろいろ環境を設定する場所なのですが、他の記事を参考にしていますと.bash_profile.zshrcに書くなどいろいろ意見がありました。

なので僕なりの解釈でそんな時はどう対応するかまとめました。

 

まずは以下の4点をなんとなくでいいので理解しておきましょう。

 

  • シェルの種類は何か
  • ログインシェル
  • 対話型シェル
  • 非対話型シェル

 

・シェルの種類とは?

Macでシェルを起動したときに画面の上部になんと表示されていますか?

 

 

絶対ではないですが、ここがbashの場合.bash_profileを使う、zshの場合はzshrcを設定ファイルに使うというケースが多いのかなと思います。

ちなみにMacの場合はCatalina以降ではデフォルトのシェルがzshに変わり、その前はbashがデフォルトです。

詳しい人に言ったら怒られるかもしれないですが、もっと極端なこと言ってしまうとls -aコマンドを実行したときにデフォルトで存在した設定ファイルにとりあえず書いておけばある程度は問題ないのではと(笑)

 

ですが、それだとダメなケースがあります。

なぜかというとログインシェルか対話型シェルかどっちかなど、ファイルの配置の仕方によってはファイルの検索順序の優先度が変わってくるからです。

一例としては、~/.profileを使っていたけど、~/.bash_profileを作成したら設定が読み込まれなくなったなど。このような時はファイルの検索順序が影響したためです。

そういう理由もあるということと、一緒にシェルにも対話型などいろいろ種類があるということは今回は理解しておいてください。

最後にbashとzshの場合でのシェルの起動時に読み込む初期化ファイルの変化について簡単なフローで書き起こしましたので参考にしてみてください。

 

・bashの場合

 

bashの場合ドット(.)付きファイルに関しては一つ見つけたら以降の探索は行いません。むやみにいろいろ設定ファイルを作成すると読み込み順によっては適応されない場合などが発生するわけです。

 

・zshの場合

 

zshの場合だと例えば.zshrcと.zlogin両方あれば両方のファイルを実行します。

 

Laravelの環境もつくりましょう

 

せっかくなので最後にLaravel環境も作って終わりにしましょう。おまけなので簡単にいきます。

まずはcomposerをインストールします。以下のコマンドを実行してください。

 

ターミナル

ターミナル

 

以下の画像のが出れば問題ないです。

 

 

次にLaravelのインストールを行います。

 

ターミナル

 

次にcomposerを環境変数に設定します。

以下のコマンドを実行してください。

 

ターミナル

vimが起動しますので i で編集モードに入りかえ、以下の編集を加えてください。

 

.bashrc

 

記入が終わりましたら、 esc を押して編集モードを終了し :wq でファイルを上書き保存してください。

 

vimのコマンドについては以下の記事でも取り扱っていますのでご参考にしてください。

 

【Rails】ブラウザのみで共同開発をして感動したお話
googleの拡張機能secure shell appを使ってWebブラウザ上のみでRubyのインストール、RailsプロジェクトをGit Clone共同開発できるようにする流れを記事にしました。非常に便利な拡張機能です。

 

次に設定を反映させます。以下のコマンドを実行してください。

 

ターミナル

最後にLaravelのプロジェクトを作成して初期画面を表示させます。以下のコマンドを順番に実行しましたらhttp://127.0.0.1:8000/にアクセスしてください。

 

ターミナル

 

以下の初期画面が表示されたら完了です!

 

 

Laravelの環境構築に関しては以下の記事も参考にしてください。

AWSでしたら参考リンクでローカル環境なら本記事の方法でやってもらえたらスムーズかと思います。

 

AWS Cloud9 で Laravel を使ってみた。【環境構築】
こんにちは!あっきー(IwswAkht)です! 近頃はプログラミングもWeb系でしたら、専らフレームワークを使っての開発が主流になってきましたね。 僕もつい先日からPHPのフレームワークLaravelを始めました。 今後の...

 

さいごに

 

最後まで読んでいただきありがとうございます。

PHPの環境構築久しぶりにやったので違う方法でハンズオンのような形で残したく記事にしましたがいかがだったでしょうか?

何か不備やご意見ございましたらお気軽に教えていただけますと幸いです。

この記事を気に入っていただけましたらTwitterでもプログラミングやブログに関してのツイートをリアルタイムでしていますので
ご一緒にフォローもお願いします。

スポンサーリンク
あっきー

元キャバクラ店長から未経験でエンジニアに転職した異端児。

自分の経験を元に、エンジニア転職や未経験からでも挫折しないプログラミングの勉強方法の発信をしてます。

あっきーをフォローする
PHP
\良い記事だったらシェアしてね!/
スポンサーリンク
駆け出しエンジニアのつぶやき