ごきげんよう、Zei(ゼイ)です。
LaravelをXserverにインストールする際、PHPのバージョンが違うとエラーが出てしまいました。
そして、Xserverの管理パネルでPHPのバージョンを上げても、それがなぜか反映されないことは結構あるあるらしいですね。。。
ということで、PHPのバージョンアップの方法をまとめました。
XserverのPHPのバージョンアップをしないといけないことになった人におススメです。
なぜかPHPのバージョンが違う・・・
XserverへLaravelをインストールしようと『composer install』を打ちこんだ際、下記エラーが表示された。
Your lock file does not contain a compatible set of packages. Please run composer update.
現在のPHPバージョンと composer.lock
ファイルに記録されたパッケージの互換性がないよ的な感じ
PHPのバージョンアップのための確認
現在のPHPのバージョンを確認
Xserverの管理画面でPHPのバージョンを確認

PHP8.2(.22)のようだ
コマンドにてPHPのバージョンの確認
php -v

PHP8.0(.30)のようだ
残念ながら、Xserverの管理画面で確認したPHPのバージョンと、コマンドで確認したPHPのバージョンが一致していない。
使用可能なPHPバージョンを確認
whereis php

使用したいPHPのバージョンがあればアップデート可能
PHPのバージョンアップ方法
ホームディレクトリに「bin」フォルダを作成
mkdir $HOME/bin
- mkdir:フォルダを作成するコマンド
- $HOME/bin:フォルダを作成する場所/フォルダ名
※『bin』フォルダはbinary(バイナリ)の略
※実行ファイルを入れる場所
シンボリックリンクを作成する
今回はPHP8.2を指定
ln -s /usr/bin/php8.2 $HOME/bin/php
ln -s <元のファイル> <リンクを作成する場所>
- ln:「リンクを作成する」コマンド
- -s: シンボリックリンク(symbolic link)を作成するオプション
- /usr/bin/php8.2:シンボリックリンクの元となる実際のファイルのパス
- $HOME/bin/php:シンボリックリンクを作成する場所
※$HOME/bin/php
というリンクが作成される
.bashrcにパスを通す記述を追記し保存
vi ~/.bashrc
編集するファイルをテキストエディタで開く
- vi:テキストエディタ
vi
を起動するコマンドvi
はターミナル上で動作する軽量なテキストエディタvim
(Vi IMproved)は機能が強化された派生版で多くの環境ではvi
を入力しても実際にはvim
が起動する
- ~/.bashrc:編集するファイルのパス
~
は現在のユーザーのホームディレクトリを指す(例:/home/username
)。.bashrc
はBashシェルの設定ファイルでユーザーごとのシェル環境をカスタマイズできる
最終行に以下を追加
export PATH=$HOME/bin:$PATH
シェルの環境変数である PATH
を設定して、ユーザーのホームディレクトリ内の bin
フォルダを優先的に検索するようにする
- export:指定した変数を環境変数としてエクスポートする
※これにより、設定した PATH をシェル全体で利用できるようになる PATH
:シェルの環境変数- $HOME/bin:ユーザーのホームディレクトリ内にある bin フォルダを指す
- :$PATH:現在の PATH 環境変数の値を維持し、新しいディレクトリ $HOME/bin を追加する
※$HOME/bin を既存の PATH の前に追加しているため、シェルはまず $HOME/bin を優先的に検索
Esc
キーを押下しコマンドモードに移動
保存して終了
:wq
- 保存のみ:w
終了のみ
:q
変更内容を反映させる
source ~/.bashrc
source:指定したスクリプトを現在のシェルプロセス内で実行する
※永続的な変更の反映のため
反映されているかを確認
再度現在のPHPのバージョンを確認
php -v
反映されていれば完了
おまけの便利コマンド
現在の作業場所が確認できる
pwd
ホームディレクトリ(一番上の階層)に戻れる
※引数を指定しない場合、デフォルトでホームディレクトリに移動
cd
今いる階層の直下のファイルやフォルダを表示
ls
参考

終わりに
なぜ管理画面でPHPを切り替えているのに、実際は切り替わらないのでしょう汗
管理画面の意味・・・
しかしおかげでコマンドを知れたので良かったです。
コメント