本記事は、ローカル環境でPHP8とPHP7などの異なるバージョンを同時に起動しながら開発行うための方法を紹介します。
こちらが、2つのxamppを同時に起動している状態です。
片方のバージョンをあまり使用しないのであればそれで良いと思いますが、
例えばLaravel7(PHP7)とLaravel8(PHP8)を同時のタイミングで開発や見比べながら開発といったことが出来ずに不便です。
Dockerを使うというのも1つの手はありますが、プロジェクトによってはDockerで構築しない・されていないといったこともあるのでその点も気にする必要がありません。
それでは実際に手順を紹介していきます。
最後にPHPパスを考慮した方法も併せて紹介します!
インストール前の状況を確認
Xamppが1つ既にインストールされている状態から説明を行います。
Port はそれぞれデフォルトのままです。
Apach : 80と443
MySql : 3306
※変更していていても問題ありませんが、これから設定するポートと同じにならなように注意して下さい。
2つ目のXampp
公式HPからインストール
https://www.apachefriends.org/jp/index.html
開くと画像のようなトップページに飛びます。
最新のバージョンで良いなら右のWindowsボタンをクリックすると、そのままダウンロードに進みます。
過去のバージョンを指定するなら左のボタンをクリック。
次にMore Downloadsをクリックします。
そして希望のバージョンを指定
赤で丸がされている種類をクリックしてダウンロードします。
ダウンロードされたファイルをインストール
Xamppをインストールします。
Nextを押して進むとこのような画面が表示されているはずです。
何も変更せずに進みましょう。
その次xamppのインストール先を指定します。
既に1つ目のxamppが入っている状態だと、このまま進むとエラーになります。
例えばphp8なら画像のようにxampp8などにしましょう。
そのあとは、何も変更せずにnextで進んでも大丈夫です。
ではインストールが完了されたら、xamppのコントローラーパネルを開きます。
コントローラーパネルが開いていないなら直接クリックして開きます。
xamppフォルダ内にxampp-control.exeというファイルがあるので、そちらをクリックすると開きます。
コントローラーパネルからポートを変更していきます。
このままStartを押して起動しても1つ目のxamppを起動しているとport番号で競合が起きてエラーとなります。
変更する手順は、
先ずはApacheのConfigをクリックします。
httpd.confのファイルを開きます。
「80」で検索をかけます。
検索すると下記行がヒットすると思うので、全て81に変更します。
※81のポート番号は使用されていないことを前提としています。
変更場所
Listen 80 → Listen 81
ServerName localhost:80 → ServerName localhost:81
次に、httpd-ssl.confを開きます。
「443」で検索をかけます。
同じようにポート番号を変更していきます。
変更場所
Listen 443 → Listen 444
<VirtualHost _default_:443> → <VirtualHost _default_:444>
ServerName www.example.com:443 → ServerName www.example.com:444
これで完了です。
XamppコントローラーパネルのStartを押してエラーがなければ起動できています。
URLに「http://localhost:81/」とを指定してアクセスすることが可能です。
MySQLの設定
設定しない場合は、1つ目のxamppのMySQLを共有して使用することができます。
もしMySQLのDB設定先も変更したい場合は、MySQLのConfigをクリックしてmy.iniを開いて変更していきます。
「3306」で検索をかけます。
ポート番号を変更していきます。
変更場所
port=3306 → port=3307
MASTER_PORT=3306 → MASTER_PORT=3307
optional - defaults to 3306 → optional - defaults to 3307
ApacheのConfigのphp.iniも開いてい変更します。
変更場所
mysqli.default_port=3306 → mysqli.default_port=3307※2か所あります。
phpmyadminへアクセスしたい場合は、「http://localhost:81/phpmyadmin」のようにアクセス可能です。
phpパス
以上で設定は完了ですが、例えばLaravelでphp artisan コマンドを実行することが多くあります。
このままphpコマンドを実行しても、1つ目のxamppで設定されているphpバージョンが表示されるはずです。
これによってphpバージョンによるエラーが発生する場合があります。
なので、phpコマンドを実行する場合は、フルパスを記述する必要があります。
本記事の場合は、
C:\xampp8\php\php -v
のようになります。
ただし、コマンドを頻繁に実行する場合は、毎回フルパスを記述するのは面倒だと思うので、追加でphpのパスを設定します。
先ずは、システム環境変数のPathに C:¥xampp8¥phpを追加します。
次にxampp8/phpのフォルダ内にあるphp.exeをphp8.exeに名前を変更します。
これで設定は完了です。
もしxampp8のphpコマンドを実行する場合は、php8 -vのように実行するだけで可能になりました。
設定は以上です。お疲れ様でした!