Windowsのローカル環境で、PHPのフレームワークであるLaravelを使った新規プロジェクトの開発環境を整えるところまでの一連の流れを、自分の備忘の意味も込めて残しておきます。
Laravelのプロジェクト作成はもちろん、その前段階であるPHPやWEBサーバなどのインストール・設定もまだ一切やっていないところから構築していきます。
数年前にLaravelを利用したWEBアプリの開発を2年弱していましたが、設定などはもう殆ど忘れてしまっているので、ほぼほぼ初心者状態から色々思い出しながらやりました。
~ 目次 ~
試した環境と目指すゴール
OSはWindows10 Pro。
ここでは目指すゴールとして以下を設定。
・ローカルにWEBサーバ(Apache)、DBサーバ(MySQL)、PHPをインストール
・Composer(PHPのパッケージ管理ソフト)をインストール
・Laravelプロジェクトを作成
・WEBサーバ(Apache)上でLaravelプロジェクトを実行
・DBのテーブル作成をLaravelの機能を使って作成
・(おまけ)Gitでソースのバージョン管理設定
PHPは2020年11月にメジャーバージョンアップしたばかりの8を利用。
Laravelは現状の最新はバージョン8のようだが、LTSが6系のようなので6系最新をインストール。
他はミドルウェアのバージョンは基本最新を入れていくが、(わたしがやりたいことをやる上で)あまり大きな違いは無いと思っているのでそれほど意識しない。
Windows10環境にXAMPPを導入
XAMPPとは
XAMPPとは、
X:Windows(OS)
A:Apache(WEBサーバ)
M:MySQL(DBサーバ)
P:PHP(開発言語)
P:Perl(開発言語)
の略で、Windows上にWEBサーバ/DBサーバ/開発言語までを一括でインストールし、管理してくれるパッケージ群と思えばよい。
お手軽に環境構築するのに大変便利。
最終的に動作させるOS環境がLinux系であったり、WEBサーバがnginxであったりしても、ローカル開発環境はとりあえずこれを使う事も全然ある。
XAMPP 8.0.0のインストール
今回はPHPのバージョンを8.0の最新で動かすので、XAMPPのサイトに行って、Windows向けXAMPP8.0.0のインストーラを取得。
→https://www.apachefriends.org/jp/index.html
適当な場所でインストーラを実行してインストール。
基本的にデフォルト設定のまま次へ次へと進めば完了する。
ApacheとMySQLの動作確認
インストール完了後、インストールフォルダ(デフォルトでは「C:¥xampp」)に移動し、xampp-control.exeを起動。
これがXAMPPのコントロールパネルとなる。
ApacheとMySQLの「Start」ボタンを押してコンソールにエラーメッセージが出力されないければOK。
念のためApacheの正常起動確認の為にブラウザから「http://localhost」にアクセスし、正常表示されていることも確認しておく。
すぐに必要では無いかもしれないが、PHPをインストールしたので、phpコマンドを簡単に実行できるように、環境変数にphp.exeファイル(デフォルト設定の場合「c:¥xampp¥php」の下にある)までのパスを通しておくと良い。
コマンドプロンプトから、
php -v
を叩いて、PHPのバージョン情報が表示されればOK。
上手くいかないときは、↓こちらの記事も参考に。
Composerの導入
Composerとは
Composerは、PHPの開発で使う各種ライブラリの依存性管理ツール。
なんだそれ?という感じかもしれないが。
例えば、PHPで何かの機能を実現するのに、ライブラリAが必要だとして、そのライブラリは内部で別のライブラリBとCを必要としているした場合。
開発者がA、B、Cのライブラリを、バージョンも意識しつつ一つ一つ展開・設定するのは手間なので、そのあたりの管理をComposerがやってくれる、ということ。
Laravelのプロジェクト作成に使う(他にも後々必要になってくると思う)のでインストールする必要がある。
Composerのインストール
以下のComposerのサイトに行って、「Download」からインストーラ(Composer-Setup.exe)をダウンロードする。
https://getcomposer.org/
インストーラを起動し、基本的に次へ次へで遷移し、インストールを完了させる。
インストールが完了したら、コマンドプロンプトを開いて、以下のコマンドを叩き、composerのバージョンが表示されればOK。
composer -v
Laravelプロジェクト作成
Laravelのインストール
さっそくcomposerを使ってLaravelのインストールを実行。
composer global require laravel/installer
特にエラーメッセージが出来なければOK。
Laravel6系のプロジェクト作成
次にLaravelのプロジェクトを作成する。
まずは、コマンドプロンプトで、Laravelのプロジェクトを作成したいフォルダに移動する。
移動はcdコマンドを使う。
ここでは、「C:¥xampp¥htdocs」フォルダの下に作成しようと思うので、以下コマンドでカレントフォルダを移動する。
cd c:\xampp\htdocs
続いてLaravelのプロジェクトを作成するコマンドを実行するが、Laravelにはプロジェクトの作成の仕方が2通りある模様。
一つ目が、
laravel new <project_name>
と、laravelコマンドを打つ方法。
もうひとつが、
composer create-project --prefer-dist laravel/laravel <project_name> "バージョン指定"
と、Composerコマンドを使ってプロジェクトを作成する方法。
どうも前者の方法だとLaravelのバージョンを指定できないようなので(インストール後に変更は可能なはずだが)、今回は後者の方法でプロジェクトを作成する。
(なので、後者の方法を使うのであれば実は最初に実行したLaravel自体のインストールは不要かもしれない)
composer create-project --prefer-dist laravel/laravel todotest "6.*"
今回は、WEBアプリ作成の導入としてよく挙げられるTODO管理アプリでも作ることを前提に、プロジェクト名は「todotest」としたが、何でも良い。
バージョンは6系の最新を使いたいのでそれを指定。
特に赤字でエラーなども出力されず、最後に
Application key set successfully.
と出力されればプロジェクトの作成は完了。
「C:¥xampp¥htdocs」の下にプロジェクト名で指定した「todotest」フォルダが出来ているはず。
VirtualHostの設定をしてApache上で動作させる
VirtualHostとは
複数のドメインのWEBサイトやWEBアプリケーションを、一つのWEBサーバで動作させる機能のことをVirtualHostという。
XAMPPを導入すると、WEBサーバとしてApacheがインストールされ、デフォルトでhtdocsをドキュメントルートとするWEBサイトが表示されるようになっている。
このドキュメントルートを、導入したLaravelプロジェクト(todotestプロジェクト)のフォルダに変更してしまっても良いのだが、今後複数のWEBアプリ開発などをしたくなる可能性もあるので、今の内にVirtualHost設定してしまう。
Apacheのconfファイル(設定ファイル)を変更
Apacheの設定ファイルを変更することでVirtualHostを使う事が出来る。
xamppフォルダの下にapacheフォルダがあり、その下にconfフォルダが存在する。
この中に、Apacheの各種設定ファイルが配置されている。
Apacheの設定ファイルは、httpd.confが大元となる設定ファイルとなり、他のconfファイルがそこから読み込まれると考えると良い。
大元のhttpd.confファイル内に、VirtualHostの設定を記述してしまっても良いが、拡張した情報を別の設定ファイルに記載しておいた方が可読性があがるなどのメリットがある。
今回は一般にVirtualHostの設定に使われるextraフォルダ内の「httpd-vhosts.conf」ファイルに設定を追加することにした。
「httpd-vhosts.conf」をテキストエディタで開くと、デフォルトで数十行の記載があるが、全て#で始まっており、コメント化されている。
一番下に、以下の記載を追加する。
<VirtualHost todotest.com:80>
DocumentRoot "C:\xampp\htdocs\todotest\public"
ServerName todotest.com
<Directory "C:\xampp\htdocs\todotest\public">
AllowOverride All
Options All
Require all granted
</Directory>
</VirtualHost>
二か所ある「todotest.com」の部分はブラウザアクセスする際に使う。
テストと分かるような名前を付けておく。
Apacheの設定ファイルを変えた際は、Apacheの再起動が必要になる。
XAMPPのコントロールパネルから、Apacheを一度「stop」した上で、再度「start」する。
特にエラーが出なければOK。
hostsファイルの修正
「httpd-vhosts.conf」に記載した「todotest.com」を使ってWEBブラウザアクセスして動作を確認したいが、あくまでWEBサーバ(Apache)の設定であり、ブラウザはそんなことはまだ知らない状態。
今のままこのドメインを使ってもインターネット上のサイトを探そうとしてしまう。
ローカル環境上であることをブラウザに伝える為に、hostsファイルを編集する。
hostsファイルの場所は以下。
「C:\Windows\System32\drivers\etc」
直接編集するには管理者権限が必要。
以下のどちらかの方法で編集する。
・別の場所にhostsファイルをコピーした上でコピーファイルを編集し、元ファイルに上書き保存
・Windowsのメモ帳を管理者権限で実行してhostsファイルを開て編集
メモ帳を管理者権限で実行するには、Windowsのスタートメニューなどからメモ帳を開く際に「管理者として実行」を選択すればOK。
hostsファイルには、一番下に以下の記述を追加する。
意味としては、VirtualHostに記述した「todotest.com」というドメインが自分自身である(127.0.0.1というIPは自PCを示す)という事を指定している。
127.0.0.1 todotest.com
.envファイルのAPP_URLをVirtualHostで指定したものに合わせる
Laravelプロジェクトのフォルダ直下に、「.env」(ドットエンブファイル)というファイルがある。
ここにLaravelの各種設定を記述するが、この中にWEBアプリのURLを設定する場所がある。
ここを、VirtualHostで設定したドメイン名に合わせた記述に変えておく。
.envファイルをテキストエディタで開き、APP_URLを「http://todotest.com」と書き換える。
ブラウザで表示確認
ブラウザを開き、設定したドメインのURL(http://todotest.com/)にアクセスして以下のようなLaravelの画面が表示されれば、OK。
Laravelを使ってMySQL(DB)のテーブルを作成する
最後に、Laravelの機能を使ってDB操作が可能な状態まで設定し、DBサーバとの連携を確認して終わる。
MySQLに空のデータベースを作成
XAMPPをインストールしたので、MySQLもインストールされている。
コマンドからでもPhpMyAdminからでも良いので、テスト用に空のデータベースを作成する。
ここでは「laravel_todo_test」というデータベース名とした。
ユーザも一旦特に専用のユーザは作成はせず、rootユーザを利用する。
.envファイルにDBの接続情報を記述する
APP_URL設定をした際にも利用した.envファイルに、DBへの接続情報を記述する。
DB_CONNECTIONはDBサーバとしてMySQLを利用するのでデフォルトのままでOK。
DB_PORTもXAMPPのデフォルト設定どおりなら、3306ポートの指定のままで良い。
DB_DATABASEに、作成したデータベース名を設定。
DB_USERNAMEとDB_PASSWORDは、後々ユーザを作成したら書き換えるが、とりあえずはパスワード設定なしのrootユーザをそのまま使う。
Laravelの機能を使ってDBにテーブル作成
Laravelは、DBのテーブルをコマンド一つでcreateしたりmodifyしたりする機能を持っている。
「database¥migrations」の下に、テーブルを操作するための定義ファイルのようなものを作成すれば、コマンド一つで実行できる。
ここでは、細かい記述の仕方などは置いておいて、Laravelの機能を使ったDBアクセスが可能かだけを確認するために、デフォルトで用意されている、以下3テーブルの作成をコマンド一つで実行できるかだけ試しておく。
・users
・password_resets
・failed_jobs
上記3ファイルが存在することを確認した上で、プロジェクトルート上で以下コマンドを実行する。
php artisan migrate
以下のように、3つのテーブルが作成されたっぽいメッセージが、エラーなしで出ればOK。
PhpMyAdminで、テーブルが作成されているかを確認する。
DBとの連携も出来た。
まとめ
とりあえず、Windows10でLaravelのローカル開発が出来る状態を整えた。
記事を書きつつ準備したのと、途中ネットワークの調子が悪くXAMPPのインストーラーをダウンロードするのに時間が掛かったので、すべてで5~6時間ほど掛けてここまでの環境整備が完了したが、作業に集中すればおそらく2時間も掛からないと思う。
コメント