MAMPを使った開発環境の作成 #Laravelの教科書 #開発環境の準備
はじめに
LaravelはPHPのbuilt-inサーバー機能を使ったローカル開発用のサーバー機能があり特に何か追加のプロダクトを入れなくても開発を進めることができます。
ローカルサーバーを起動するには次のコマンドを実行するだけで完了します。
php artisan serve
開発環境はそちらを利用したとしても、実際に公開する場合はApacheやNginxなどを利用することが多いため、いざ公開となったタイミングでローカルサーバーとの環境の違いでトラブルが発生する可能性もあります。
トラブルを避けるために、公開環境に極力近づけた開発環境を構築する必要が出てきます。
その際に使われる便利なプロダクトとしてMAMPがあります。
MAMPはMac Apache MySQL PHPの頭文字を取ったソフトウェアです。WordPressを動かすためにもよく使われます。
# MAMPのインストール
MAMPのダウンロードページからMAMP&MAMP Proを選択します。
「MAMP_MAMP_PRO_5.7.pkg」ファイルがダウンロードされますので、インストーラーのウィザードに従ってインストールを進めてください。
# MAMPの起動
インストールが完了すると。アプリケーションにMAMPフォルダとMAMP Pro.appが追加されています。
こちらのMAMP Proは様々な機能の追加された有料のソフトウェアです。無くても良いので、削除しても大丈夫です。(残っているとProへの誘導のポップアップが表示されます)
MAMPフォルダを開くと色々なフォルダが表示されます。
このアプリケーションの中にあるMAMPフォルダは設定ファイルなどもあり、非常に重要な場所です。
後ほどターミナルで開く操作でも詳しく説明します。
MAMPを起動するためにMAMPフォルダの中にある「MAMP.app」をダブルクリックで開きます。
起動後「Start Servers」を押すとMAMPが起動します。
右上のApache Server、MySQL Serverの横のシグナルが緑になり、MAMPのスタートページが表示されます。
# Hello MAMP!の実行
MAMPの中にPHPプログラムを設置して動作の確認をしましょう。
先程のMAMPフォルダの中にあるhtdocsというフォルダをVisual Studio Codeで開いて、test.phpファイルを作成します。
test.php
<?php
echo "Hello MAMP PHP";
ファイルを保存したらブラウザから「http://localhost:8888/test.php」を開いてください。
ブラウザに「Hello MAMP PHP」と表示されていれば成功です。
このようにhtdocsに置いたファイルはそのままMAMPのApacheで実行されます。フォルダ構造がそのままURLになる点にご注意ください。
/Application/MAMP/htdocs/test.php
↓
http://localhost:8888/test.php
/Application/MAMP/htdocs/test/dir1/dir2/dir3/test.php
↓
http://localhost:8888/dir1/dir2/dir3/test.php
# phpMyAdminの起動とデーターベースの作成
データーベースを操作するためにphpMyAdminを起動します。
phpMyAdminはスタートページのナビゲーションメニューのTOOLの中にあるPHPMYADMINメニューをクリックすることで起動できます。
必要な方は日本語に変更してください。画面中央に表示されているAppearance SettingsのLanguageを日本語に変更して日本語に切り替えましょう。
つづいて、Laravelのサンプルプロジェクトのためのデーターベースを作成しましょう。
左側メニューの「新規作成(New)」を押すとデーターベース作成画面が表示されます。
データーベース名に「laravel_sample」と入力して作成を押すと、データーベース「laravel_sample」が作成されます。
# PATHの設定
MacにはPHPが元から入っているため、MAMPにインストールされたPHPとバージョンの差が発生することがあります。
そのためにPATHの設定を行う必要があります。
パスの設定はターミナルを利用します。
Visual Studio Codeのターミナルの利用はこちらを参考にしてください
まずはPHPのパスを確認します。
MAMPには複数のPHPがインストールされています。
MAMPフォルダを開いて、bin -> phpと開くと複数のバージョンがあることがわかります。
数字が一番大きいものが最新なので、ここではphp7.4.2を利用します。
php7.4.2フォルダを開いてbinフォルダのパスを確認してください
/Applications/MAMP/bin/php/php7.4.2/bin/php
では、パスの設定を行います。パスの設定を行うためにターミナルを起動して、次のように入力してください。
cd ~/
code .zprofile
こちらで.zprofileファイルをVisual Studio Codeで開くことが出来ます。
(Mac OS 10.15 Catalina未満の場合は.bash_profileです)
.zprofileに次のコードを記載してください。
export PATH=/Applications/MAMP/bin/php/php7.4.2/bin:$PATH
保存したらターミナルに戻って次のコマンドを入力してください
source .zprofile
php -v
PHPのバージョンが7.4.2になっていれば成功です。
# Laravelのプロジェクトをhtdocsに作成する
それではLaravelのプロジェクトをhtdocsの中に作ってみましょう。今回はmamp_laravel_sampleというプロジェクトを作成します。
プロジェクトの作成はomposer create-projectコマンドを利用します。わからない方はこちらの記事をご確認ください。
まずはターミナルを起動します。起動後、MAMPのhtdocsに移動し、composer create-projectを実行します。
cd /Applications/MAMP/htdocs
composer create-project --prefer-dist laravel/laravel mamp_laravel_sample
これでhtdocsの中にmamp_laravel_sampleフォルダが作成されました。
Laravelのプロジェクトはpublicフォルダを開く必要があるので、パスとURLは次のような関係になります。
/Applications/MAMP/htdocs/mamp_laravel_sample/public
↓
http://localhost:8888/mamp_laravel_sample/public
ブラウザで「http://localhost:8888/mamp_laravel_sample/public」を開いてLaravelのページが表示されていればOKです。
# MAMPのMySQLに接続する
Laravelのプロジェクトから先程作成したlaravel_sampleデーターベースに接続します。
MAMPのMySQLの接続情報はスターターページの下の方に書かれています。
これをLaravelのプロジェクトディレクトリの「.env」に記載していきます。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
↓
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=8889
DB_DATABASE=laravel_sample
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
DB_SOCKETの行が追加されている点に注意してください。
DBの接続確認はLaravelのテーブル作成機能を利用します。
ターミナルを開き、Laravelのプロジェクトフォルダまで移動します。
cd /Applications/MAMP/htdocs/mamp_laravel_sample
その後次のコマンドを実行します。
php artisan migrate
php artisanはコマンドからLaravelを操作するための機能で、様々な用途に利用されます。こちらのコマンドでマイグレーションが実行され、データベースにテーブルが作成されます。
上手く動かない、「Could not open input file: artisan」などのエラーが出る人は開いているフォルダが正しく無い可能性があります。その時はコマンドを実行してみてください
pwd
/Applications/MAMP/htdocs/mamp_laravel_sample
DBに接続出来ない人は設定ファイルの書き方などが間違っている可能性があります。
マイグレーション実行後はphpMyAdminを開いてテーブルが作成されていることを確認してください
failed_jobs、migrations、usersの3テーブルが作成されています。
# 既存のLaravelプロジェクトをMAMPで表示したい
すでに作成したLaravelプロジェクトをMAMPで表示するにはいくつかの解決方があります。
1. プロジェクトフォルダをhtdocsに移動する
2. VirtualHostを使う
3. シンボリックリンクを使う
一番簡単なのが、htdocsの中にプロジェクトフォルダをそのまま移動してしまうことです。その場合、URLがどうなるかについては少し考える必要があるのでご注意ください。
publicフォルダを対象にするので、URLとパスは次のような関係になります。
/Applications/MAMP/htdocs/mamp_laravel_sample/public
↓
http://localhost:8888/mamp_laravel_sample/public
それ以外の方法については別の記事で解説します。
# まとめ
本稿を振り返り、以下を確認してください
・MAMPのインストール方法
・PATHの設定方法
・htdocsの中にあるフォルダ構造とURLの関係性
・phpMyAdminの使い方
・MAMPのデーターベースの設定とLaravelの.envの設定方法
おつかれさまでした!
---
Laravelの教科書
完成まで突っ走る意気込みです。サポートしていただけると非常に嬉しいです。応援よろしくお願いします。