はじめに
開発用のパソコンを新調すると必ずやってくる”開発環境の設定”
試行錯誤しながら整えた開発環境は、見様見真似でうまくいったりしているので、まとめたやろうとすると右往左往
今回もMacOSが64bit化したり、ツールがメジャーバージョンアップしていたりで、うろ覚えの作業ではスムーズに進められなかった
次回はサクサク作業が進むように、一連の手順をメモして公開しておきます 1
試行環境
iMac (Retina 5K, 27-inch, 2019)
ソフトウェア | バージョン |
---|---|
MacOS | 10.15.6 |
Apache | 2.4.41 2 |
PHP | 7.3.11 |
MySQL | 8.0.21 |
ライブラリ群をインストールする
homebrewをインストール
今後のセットアップをスムーズに行うためには必要
node brew, nodeをインストール
Javascriptをメインにフロントエンドを開発するには必須
$ brew install nodebrew
$ nodebrew install-binary latest
yarnをインストール
$ brew install yarn --ignore-dependencies
公式などをみると上記のオプションを指定するように指示されているが、今回このオプションがあるとエラーが発生してしまった
オプションなしでインストールしたが、特にトラブルは発生していない
PHPをインストール
brew経由でのインストールを反映させるため、PHPもプリンストールではなくbrewで新規にインストールする
$ brew install php@7.4
$ brew link --force --overwrite php@7.4
~ 中略 ~
$ echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
& echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
composerのインストール
$ brew install composer
MySQLのインストール
$ brew install mysql
現在、上記のコマンドだとMySQL 8がインストールされてしまう
サーバーに合わせてMySQL@5.7をインストールしたかったが、SQLサーバ起動時にエラーが出てしまいどうやってもうまくいかなかった
解決できなかったエラーは以下の二つ
$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXXXXXXX.local.pid).
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
MySQLのアカウント作成、およびデータ復元
アカウントを作成する
MySQL8.0では認証方式が変わっているため、それを従来のものに変更しておく
CREATE user [name]@localhost IDENTIFIED WITH mysql_native_password BY '[password];
SELECT user, host, plugin FROM mysql.user;
受け皿となるスキーマを作成する
CREATE SCHEMA [database]
GRANT ALL ON [database].* TO [user]@localhost;
稼働中のSQLサーバーからデータを取り出す
$ mysqldump -u [user] -p [database] > -backup_data.sql
新しいSQLサーバーへデータを復元する
$ mysql -u [user] -p omni_connect < -omni_connect.sql
$ mysqldump -u [user] -p [database] > -backup_data.sql
SQLiteの注意点(追記:2020-09-16)
マウントしたネットワークドライブのデータベースファイルにアクセスできない
ローカルにコピーして、ファイルパスを正しく設定すれば読み込むことができる
Catalinaのアクセス制限によるものだろうか
ApacheやPHPの設定をする
httpd.confを調整する
httpd.confの実行ユーザやサイトネームなどを調整する
User [name]
Group everyone
ServerName localhost
httpd.confにて必要なライブラリのコメントアウトを外して有効にする
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
webコンテンツの配置とエイリアス設定をする
複数あるのでSites以下に配置するのだが、SitesをDesktopに配置してapacheを起動するとアクセス権でエラーが出てしまった
パーミッションなどを調整したが、うまくいかなかったため、ユーザーのホームフォルダに配置した
<IfModule alias_module>
Alias /graphql "/Users/[name]/GitHub/[appName]/public"
<Directory "/Users/[name]/GitHub/[appName]/public">
AllowOverride All
Options None
Require all granted
</Directory>
</IfModule>
テスト中のコンテンツを上記設定に合わせてコピーする
/Users/[name]/Sites/[appName]/
MySQLを有効にする
既に有効になっていたようで、特に何もすることなくPHPからのデータ参照が行えた
Laravelのsocketを調整する
うまくいかない時のチェック項目
.envなどで設定しているMySQLのSocket情報を以下のコマンド結果と同じか確認する
$ mysql_config --socket
SQLServerを有効にする
GNU make ツールやMicrosoft SQL Server 用 PHP ドライバーのインストールを行う
$ brew install autoconf automake libtool
$ sudo pecl install sqlsrv
$ sudo pecl install pdo_sqlsrv
php.iniの設定変更が必要なはずだが、特に何もしなくても自作APIが動いた
一方、Laravelで開発しているgraphqlのAPIはデータベース接続エラーが生じて動かない
https://go.microsoft.com/fwlink/?LinkId=163712 をみろと言われたが、どれをダウンロードしてどうすれば良いのやら・・・
追記
$ brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
$ brew update
$ HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools
上記コマンドを実行でアクセスに成功
参考:Create PHP apps using SQL Server on macOS
その他、必要なツールのインストール
さいごに
数年ぶりのテストサーバ(開発用PC)の入れ替えと再設定は右往左往でした
ライブラリなどのバージョンも変わっているため、同じバージョンの導入に難関があったりして、コピペですんなりとはいかない
特にSQLServerへのアクセスは変わらずつまずいてばかりでした
備忘録は大事