前提
対象
- web系エンジニア(特にPHPバックエンド)
環境
以下の環境で確認しました。
Appleシリコンmacなら同様にできると思います。
- macos Sonoma
- MacBook Pro - Apple M3 Pro
前置き
- intel MacからM3 Macに移行するにあたって移行ツールを使用せずに手動移行したのでその備忘
- 一緒に働く人へ環境構築方法を共有したいのでついでにわかりやすく書こうと思った
- PHP開発はDockerで行うがローカルにもPHPが必要な場面があるので入れている
-
phpstan以外の静的解析、Laravel向けのVS Code拡張、AI系のVS Code拡張、Node.jsとそのバージョン管理については追記したい気持ちがある- phpcs、Laravel向け拡張機能、asdfによるNode.js管理について追記しました
はじめに
システム設定
システム設定アプリから行う内容です
- トラックパッドによるポインタの移動速度
- トラックパッド > 軌跡の速さ > 最も速くする
- トラックパッドのタップでクリックができるようにする
- トラックパッド > タップでクリック (お好みで)
- アップデート
- 一般 > ソフトウェアアップデートでアップデートがあれば行う
- ファイアウォール設定
- ネットワーク > ファイアウォールをON
- キーボード設定
- 入力ソースの「編集」 > スペースバーを2回押してピリオドを入力をOFF
- 他の設定もお好みで変更
- ポインタの設定
- アクセシビリティ > ポインタの設定で大きくしたり色を変えたり (お好みで)
Finder設定
Finderで行う設定です
- Finder > 設定 > 詳細 > すべてのファイル名拡張子を表示をON
- 表示 > パスバーを表示
- 表示 > ステータスバーを表示
ターミナルで行う設定
ターミナルアプリを開いて行う設定です。
- 隠しファイルを表示
$ defaults write com.apple.finder AppleShowAllFiles YES # 設定をすぐに反映させるには以下 $ killall Finder # 元に戻す場合は以下 $ defaults delete com.apple.finder AppleShowAllFiles
- スクショの保存場所を変更
$ mkdir ~/ScreenShots $ defaults write com.apple.screencapture location ~/ScreenShots/ # 設定をすぐに反映させるには以下 $ killall SystemUIServer
HomeBrew
インストール
以下にインストールコマンドがあるのでコピーする。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
パスワードやエンターを求められるので、都度入力する。
インストール後以下のように表示されたので言われたことを実行する。
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/ユーザ名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
$ (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/ユーザ名/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
必須アプリ
ランチャー
Alfredに課金済みであればそちらを。
Raycast
$ brew install --cask raycast
cmd+spaceを割り当てるためSpotlight検索をoffにする
- システム設定 > キーボード > キーボードショートカット
- Spotlight > Splotlight検索を表示をOFF
古いmacから移行する場合は、古いmacで設定をエクスポートしたものをインポートする
- 古いmacのRaycastの設定 > Advanced > Export
- 新しいmacのRaycastの設定 > Advanced > Import でExportで作ったファイルを選択
ブラウザ
Safariは元から入っているので、Clomium製ブラウザとFireFoxを入れる。
Clomium
Arc, Brave, Chrome, Edge, Vivaldi, など
$ brew install --cask arc
ArcのSyncはiCloud経由で行えるようになっている。
パスワードなどを移行する場合はClomium系共通でGoogleの設定からエクスポートしたものをインポート。
FireFox
$ brew install --cask firefox
ターミナル
好きなものを。Warpはメモリ使用量が多い。。
Warp
AIにやりたいことを伝えるとコマンドを教えてくれるターミナル。
$ brew install --cask warp
iTerm2
$ brew install --cask iterm2
エディタ
後述のPHPの設定はVS Code互換エディタで解説するのでここでは対象エディタのみを紹介します。
Cursor
$ brew install --cask cursor
VS Code
$ brew install --cask visual-studio-code
Docker
Docker Desktop
コミュニケーションツール
組織で使用しているものを。
画面共有機能を使う場合、あらかじめ設定をしておかないと、いざ共有をしようとしたときにアプリの再起動が必要になるので注意。
設定は、システム設定 > プライバシーとセキュリティ > 画面収録とシステムオーディオ に追加する。
Zoom
$ brew install --cask zoom
Slack
$ brew install --cask slack
Discord
$ brew install --cask discord
一般アプリ
以下からは任意のアプリ
日本語入力切り替え
usキーボードのデフォルトの切り替え方法から変えたい場合のみ。
⌘英かなはすぐに落ちるのでkarabinerを利用する。
karabiner
左⌘ を押すと英語、右⌘ を押すと日本語、のようにできる。
$ brew install --cask karabiner-elements
ノート
お好きなのを。PCが壊れても復帰できるような仕組みを構築できるものにする。
Notion
$ brew install --cask notion
開発用アプリ
Gitクライアント
色々あるので好きなのを。
GitKraken
有料。
$ brew install --cask gitkraken
SourceTree
日本語に対応している。
$ brew install --cask sourcetree
データベースクライアント
色々あるので好きなのを。
古いバージョンのDBを扱う場合、最近のアプリは対応していないことがある。
DBeaver
$ brew install --cask dbeaver-community
MySQL Workbench
$ brew install --cask mysqlworkbench
CLIツール
プロンプト
最低限プロンプトに、gitリポジトリ内にいる場合にどのブランチにいるかわかるような表示を出しましょう。
プロンプトだけならStarshipが簡単だが、zshの設定も一緒にできるPreztoの方がトータルで楽かもしれない。
Prezto
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
# このときすでにzshの設定ファイルが存在したらエラーになるので消す or リネームしておく
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
# 設定
# 順番があるらしいが「prompt」より前に記述しておけば良さそう
# https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting
$ vim ~/.zpreztorc
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'history-substring-search' \
+ 'archive' \
+ 'autosuggestions' \
+ 'git' \
+ 'syntax-highlighting' \
'prompt'
# Auto set the tab and window titles.
+ zstyle ':prezto:module:terminal' auto-title 'yes'
# テーマ設定
$ vim ~/.zpreztorc
# Set the prompt theme to load.↲
# Setting it to 'random' loads a random theme.↲
# Auto set to 'off' on dumb terminals.↲
+ zstyle ':prezto:module:prompt' theme 'powerlevel10k'↲
# 設定後、iTerm2かデフォルトターミナルで開くとプロンプト設定用の質問が続くので
# 答えていくとプロンプトが出来上がる
Starship
$ brew install starship
# フォント
$ brew tap homebrew/cask-fonts
# フォントを選んでインストール
$ brew install --cask font-hack-nerd-font
手動
以下、参考になりそう。
vim
AstroNvim
$ brew install neovim
# AstroNvim
$ git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
# 面倒なので.zshrcに「alias v='nvim'」などと入れておくと良い
$ nvim
git設定
git導入
- ターミナルで
git --version
と入れてみる。 - gitが入っていなければコマンドラインデベロッパーツールのインストールを勧められるので行う
git config
gitのユーザ設定を行う(社用PCの場合は会社リポジトリのアカウントに合わせる、など)
$ git config --global user.name '自分の名前'
$ git config --global user.email '自分のメールアドレス'
# 大文字小文字の区別をつける
$ git config --global core.ignorecase false
現在の設定確認
$ git config --global -l
GitHub設定
設定ファイルをGitHubに置いている場合は必要
SSH認証キーの作成
$ mkdir -p ~/.ssh/github/
$ ssh-keygen -t rsa -f ~/.ssh/github/id_rsa
2~3質問をされるのでエンターを押すだけ
$ vi ~/.ssh/config
Host github github.com
HostName github.com
IdentityFile ~/.ssh/github/id_rsa
User git
GitHubへキーを登録
キーの中身をクリップボードへコピー
$ pbcopy < ~/.ssh/github/id_rsa.pub
設定ページ(2024.1月)
「New SSH key」ボタンから登録
VS Code
移行
旧環境から移行する場合は以下をコピーしてくるか設定の同期機能を使用する。
内容 | ディレクトリ名 | パス |
---|---|---|
拡張機能 | .vscode | ~/.vscode |
キーバインド等の設定 | User | ~/Library/Application Support/Code/User |
拡張機能(一般)
Japanese Language Pack for Visual Studio Code
日本語化。
indent-rainbow
インデントを見やすく色分け。
(補足)デフォルトのカッコの色と揃える
Code Spell Checker
スペルチェック。
TODO Highlight v2
TODO:
と書いたところをハイライト。
GitLens
誰がどのコミットで書いたコードかすぐ分かる。チーム用。
Iceberg
テーマ。好きなものを。
vscode-icons
アイコン。好きなものを。
拡張機能(PHP)
PHP Intelephense
コード補完やuse文の自動挿入、定義ジャンプなど、PHPを書くなら必要不可欠な拡張機能。
以下の設定が必要。
- 拡張機能で「
@builtin php
」を検索 - 「PHP 言語機能」を選択
- 無効にする
PHP DocBlocker
Docコメント入力を補完。
phpstan
自動でPHPStanに静的解析させる場合に必要。また、その際はローカルでPHPが動作するように。
拡張機能(Laravel)
Laravel Blade Snippets
bladeファイルのシンタックスハイライト、ディレクティブの補完など。
Highlight Matching Tag
開始タグと閉じタグがハイライトされる。HTMLはもちろんbladeファイルでも適応される。
VS Code 設定
以下のような感じでお好みで設定していく。
{
// 保存時自動フォーマット
"editor.formatOnSave": true,
// 空白文字表示を有効に
"editor.renderWhitespace": "all",
// 行末やファイル末尾の空白文字を削除
"files.trimTrailingWhitespace": true,
// ファイル末尾に改行必須
"files.insertFinalNewline": true,
//========================================================================
// 言語毎の設定
//========================================================================
"[php]": {
// タブサイズの設定
"editor.tabSize": 4
},
"[markdown]": {
// タブサイズの設定
"editor.tabSize": 2,
// 行末やファイル末尾の空白文字を削除しない
"files.trimTrailingWhitespace": false
}
}
Node.js & yarn
Node.jsはプロジェクトごとに使用バージョンが異なるのでバージョン管理させる。
yarnのバージョン管理もできるのasdfにした。Voltaでもできそうではあった。
asdfインストール
以下を見ながらインストール。
# 依存ライブラリの導入(curlとgitも必要と書いてあるが導入済みなので以下のみ)
$ brew install coreutils
$ brew install asdf
brewでインストールできたらzshを使っている場合は以下。
$ echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ${ZDOTDIR:-~}/.zshrc
plugin一覧を見てみる。
$ asdf plugin list all
...
nodejs https://github.com/asdf-vm/asdf-nodejs.git
...
yarn https://github.com/twuni/asdf-yarn.git
...
Node.js
asdfでNode.jsを管理できるようにする。
$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
# node js インストール可能バージョン一覧
$ asdf list all nodejs
# バージョンを指定してインストール
$ asdf install nodejs 18.15.0
導入するプロジェクトのルートに移動して使用バージョンを指定する。
# バージョンを指定して選択
$ asdf local nodejs 18.15.0
yarn
asdfでyarnを管理できるようにする。
$ asdf plugin-add yarn
# yarn インストール可能バージョン一覧
$ asdf list all yarn
# バージョンを指定してインストール
$ asdf install yarn 1.22.19
⛔ Missing one or more of the following dependencies: tar, gpg
エラーが出た! tarとgpgが必要と出ている。
ただ、以下で確認するとわかるがtarはmacにデフォルトで入っている。
$ which tar
/usr/bin/tar
gpgがない。
$ which gpg
gpg not found
gpg入れる。
$ brew install gpg
再度試して成功。
asdf install yarn 1.22.19
導入するプロジェクトのルートに移動して使用バージョンを指定する。
# バージョンを指定して選択
$ asdf local yarn 1.22.19
確認。
asdf list
nodejs
*18.15.0
yarn
*1.22.19
PHP
PHPStanのためにローカルへPHPを入れる。
asdfを導入したのでそちらで入れてもいいかもしれない(brewで依存ライブラリをたくさん入れないといけないところが気にはなっている)。
他にもphpenvというバージョン管理ツールもある。
PHPインストール
好きなバージョンのPHPを必要なだけ入れる。
$ brew install shivammathur/php/php@8.3
$ brew install shivammathur/php/php@8.1
# システムのデフォルトとして使用したPHPをリンク
$ brew link --overwrite --force shivammathur/php/php@8.3
# バージョンを確認してみる
$ php -v
PHP 8.3.2 (cli) (built: Jan 16 2024 13:46:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.2, Copyright (c) Zend Technologies
ディレクトリごとに使用するPHPを設定する
ディレクトリごとに環境変数を分けられるようにdirenvというツールを入れる。
$ brew install direnv
# .zshrcに有効化処理を書き込む
$ echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
$ cd プロジェクトディレクトのパス
# .envrcファイルを作成、環境変数PATHの内容を変える
$ echo 'export PATH=$(brew --prefix)/opt/php@8.1/bin:$PATH' > .envrc
# direnvを有効にする
$ direnv allow .
# shellを読み込み直す
$ source ~/.zshrc
# バージョンを確認してみる、このディレクトリではPHP8.1になっている
$ php -v
PHP 8.1.27 (cli) (built: Dec 19 2023 20:35:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.27, Copyright (c) Zend Technologies
with Zend OPcache v8.1.27, Copyright (c), by Zend Technologies
チーム開発などで、gitリポジトリに.envrc
を追加したくない場合はリポジトリのルートで以下を行う。
$ echo '.envrc' >> .git/info/exclude
PHP Code Sniffer
- プロジェクト単位では導入していない場合が多いのでローカルにダウンロードして使う
- チーム開発で整形すると良くない場合があるので、
PHP-CS-Fixer
ではなくphpcs
を入れる- どちらを使うかは関わるプロジェクトによると思います
ローカルへダウンロード
PHP_CodeSnifferのリポジトリ
※2024くらいからリポジトリが移行しました
GitHubからCloneする方法が載っていたので、ローカルにはcomposerもないのでその方法で行う。
ローカルでComposer使っている場合はそちらを使う方法でOK。
$ git clone https://github.com/PHPCSStandards/PHP_CodeSniffer.git
このリポジトリのbin
ディレクトリに実行ファイルがある。
VS Code設定
phpcsという拡張機能を入れる。
拡張機能の設定に、Phpcs:EXecutable Path
の項目があるので先ほどのbin
ディレクトリ内のphpcs
までのパスを書く。
参考
色々参考にさせて頂きました。網羅しきれていないです、すみません。
- Mac を買ったら必ずやっておきたい初期設定
- macの開発環境構築
- ぼくのかんがえたさいきょうの MacBook 環境構築
- Macで複数バージョンのPHPを楽に使い分ける