2
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

記事投稿キャンペーン 「2024年!初アウトプットをしよう」

Macの環境構築、PHP用環境構築

Last updated at Posted at 2024-01-27

前提

対象

  • 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にする

  1. システム設定 > キーボード > キーボードショートカット
  2. Spotlight > Splotlight検索を表示をOFF

古いmacから移行する場合は、古いmacで設定をエクスポートしたものをインポートする

  1. 古いmacのRaycastの設定 > Advanced > Export
  2. 新しい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

コミュニケーションツール

組織で使用しているものを。

画面共有機能を使う場合、あらかじめ設定をしておかないと、いざ共有をしようとしたときにアプリの再起動が必要になるので注意。
設定は、システム設定 > プライバシーとセキュリティ > 画面収録とシステムオーディオ に追加する。

スクリーンショット 2024-01-22 1.36.39.png

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導入

  1. ターミナルでgit --versionと入れてみる。
  2. 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
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を書くなら必要不可欠な拡張機能。

以下の設定が必要。

  1. 拡張機能で「@builtin php」を検索
  2. 「PHP 言語機能」を選択
  3. 無効にする

PHP DocBlocker

Docコメント入力を補完。

phpstan

自動でPHPStanに静的解析させる場合に必要。また、その際はローカルでPHPが動作するように。

拡張機能(Laravel)

Laravel Blade Snippets

bladeファイルのシンタックスハイライト、ディレクティブの補完など。

Highlight Matching Tag

開始タグと閉じタグがハイライトされる。HTMLはもちろんbladeファイルでも適応される。

VS Code 設定

以下のような感じでお好みで設定していく。

settings.json
{
    // 保存時自動フォーマット
    "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までのパスを書く。

参考

色々参考にさせて頂きました。網羅しきれていないです、すみません。

2
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?