【PHP】XAMPP→MAMP　phpMyAdmin→Sequel Proへの移行【環境構築】

#作業メモ

実施日:　2020年 9月19日
環境:　macOS Catalina10.15.6

サクサクできると思っていたら
2日かかってしまったので、メモ代わりに残しておきます。

#状況
PHP+MySQLの学習を始めるにあたって購入した教材が一通り終わる。
その際の環境構築は教材に習い、XAMPPをインストールして実施。

せっかくMacを使っているので、MacOS向けのツールを使用した環境構築に切り替えたい。
（つまりはミーハーな理由）

#変更ツール
① パッケージをXAMPPからMAMPに変更
（XAMPPのアンインストールは未実施）

② DBのGUIツールをphpMyAdminからSequel Proに変更
（Ruby学習中はSequel Proを使用していたので統一したい）

#手順
###① MAMPをインストール

・MAMP
　　[インストーラーのダウンロードはこちらから](https://www.mamp.info/en/windows/)

Free Downloadに飛んでインストーラーをダウンロードします。

**ポイント**：今回はMAMP PROではなく、MAMP(無料版)だけインストールしたいので
インストーラーメニューのインストールの種類という項目で「カスタマイズ」を選択して
MAMP PROのチェックを外しましょう。数MBですが容量を節約します。

・比較的新しいQiita参考記事:
　[MAMP(FREE)のインストールから表示まで（MAC ）](https://qiita.com/Shota_Nakashima/items/20a14317990b45a43008)

インストールが完了したら、Apache ServerとMySQL Serverが立ち上がることを確認します。

###② XAMPP環境にあったファイルをMAMP環境にコピーする

XAMPPを使用していたら、もうおなじみかと思いますが
XAMPP内のhtdocs内で作成したディレクトリやファイル群をコピーして
MAMP内のhtdocsにも入れてあげます。

###③ MAMP環境でウェルカムページを表示させる。

MAMPでサーバーを立ち上げたら、Open WebStart pageのボタンを押して

localhost:8888/MAMP/?language=English
いわゆるMAMPのウェルカムページに遷移しましょう。

画像のような画面が表示されたらOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/588983/b68d26b1-7d12-147f-f039-1474a2b2ff94.png)


###④ MAMP環境でhtdocs内のページを表示させる。

上のWelcome to MAMP画面が表示されたら
アドレスバーでパス指定してhtdocsにコピーしたファイルが表示されるか確認しましょう。

この時はDB接続が必要ないTOP画面のファイルが無難です。
とりあえずはhtmlファイルでも大丈夫です。

初期設定時はhtdocsより下の階層からパスで指定する必要があります

大体の人は
localhost:8888/ディレクトリ名/ファイル名
の流れで表示されると思います。

###⑤ XAMPP環境のDB情報をコピーする。

ここからはXAMPPのDB情報をMAMP環境へコピーしていきます。

まずはMAMPのサーバーを一旦停止してXAMPPでサーバーを立ち上げます。
立ち上がったらphpMyAdminへ飛びましょう。

XAMPP環境でphpMyAdminに入れたら
DBのdumpファイルを作成していきます。

画面左側でコピーするデータベース名を選択します。
次は画面上部にあるエクスポートのメニューを選択します。

画面に以下のような表示がされていることを確認しましょう。

データベース "○○" からテーブルをエクスポート
（""の中にはデータベースの名称が入ります）

表示に問題なければ

エクスポート方法：簡易
フォーマット：SQL
エンコーディングへの変換：なし

で、エクスポートの実行をしましょう。
sql形式のファイルが作成されるはずです。


###⑥ MAMP環境でDB情報を読み込む

前の章で作成したsqlファイルを利用して
MAMP側のDBを整えていきます。

まずはXAMPPのサーバーを停止してMAMPのサーバーを立ち上げましょう。
立ち上がったらウェルカムページからphpMyAdminに飛びます。

MAMP環境でphpMyAdminに入れたら
XAMPPと同じデータベース名、同じ形式でMAMP側にもデータベースを作成します。

同じ名称のデータベースが作成できたら
XAMPP側で作成したsqlファイルをインポートしていきます。

エクスポートした時と同じように
MAMP側のphpMyAdminで新しく作成したデータベース名を選択したら
上部メニューのインポートを選択しましょう。

ファイルを選択のボタンからXAMPP側のDBで作成したsqlファイルをアップロードし
その他はとりあえずデフォルトで実行ボタンを押してください。
sql内に書かれていたクエリが複数実行されると思います。

全部のクエリが実行され、XAMPP側と同じテーブル、同じレコードが作成されたら
MAMP環境へのDB情報の移行は終了です。


###⑦ MAMP環境のMySQLへSequel Proで接続

最後にSequel Proを利用して、MAMP環境のMySQLへ接続していきます。

・Sequel Pro
　[インストーラーのダウンロードはこちらから](https://www.sequelpro.com/)

・比較的新しいQiita参考記事
　[Mac MySQL Sequel Proの導入方法](https://qiita.com/miriwo/items/f24e6906105386ddfa83)

インストールが完了したらSequel Proを立ち上げます。
[![Image from Gyazo](https://i.gyazo.com/2babd5d783b3d78a4700dcab48a9aa40.png)](https://gyazo.com/2babd5d783b3d78a4700dcab48a9aa40)

画像と同じ画面が表示されたらソケットタブにて情報を入力していきます。

名前: localhost
ユーザー名: root
パスワード: root
データベース:
ソケット: /Applications/MAMP/tmp/mysql/mysql.sock

【ポイント】
・ユーザー名とパスワードはMAMPインストール時から初期設定のままであれば、どちらもrootです。
・データベースはとりあえず空欄推奨。
・ソケットはmysql.sockまでのパスを入力します。


以上の情報を入力したら接続をテストボタンを押して
テストが成功したら接続ボタンを実行しましょう。

接続が完了したら
Sequel Pro画面左上のデータベースを選択をクリックして
MAMPのphpMyAdminにて先ほど作成したデータベース名が表示されると思います。

そちらを選択してphpMyAdminと同じ情報が表示されていればOKです。

これにて記事タイトルの内容は終了です。


#その他おまけ

###【注意事項】
① MAMP側のhtdocs配下に置くソースコードはXAMPP側からコピーした後に一部修正する必要があります。
DBへ接続するPDOに関する記述は要修正です。

例：　new PDO()の中のpasswordに関する部分。

XAMPP環境ではpasswordがデフォルトで空だったと思いますが
MAMP環境ではデフォルトでrootになっています。

<br />
② サーバーのポート番号を変更する場合はMAMPアプリケーションのメニューから行うことはオススメしない

[![Image from Gyazo](https://i.gyazo.com/886b08220de8faa79efd2c0eeaf738c7.jpg)](https://gyazo.com/886b08220de8faa79efd2c0eeaf738c7)

こちらのメニューにある
Set Web & MySQL ports to 80 & 3306　ボタンを押すと
一発でApache,Nginx,MySQLのポート番号が切り替わるのですが
このボタンを押してポート番号を変更すると、WebサーバーからDBサーバーへ、うまく接続できませんでした。
（私だけであればいいのですが...。）

[【Mac】MAMPのエラーでポート番号を変更できない場合の解決方法](https://blog.h-wd.info/2015/02/15/error-changing-the-ports-in-mamp/)
私はこちらの記事を参考にしました。

MySQLのポート番号はMAMPアプリケーションで変更し、Apacheのポート番号は
/アプリケーション/MAMP/conf/apache/httpd.conf

のソースコードを書き換える事で無事解決できました。


#最後に

ザッと手順を思い出しながら書きましたので、もしかしたら間違いがあるかもしれません。
その際はコメントにて教えていただけると助かります。