広告

MAC開発環境 M2

Mac
この記事は約24分で読めます。

Macbook Pro 14インチを購入したので、開発環境を構築しました。

macOS Ventura 13.2.1なので、phpは入っていない・・・

PHP は、Mac OS X バージョン 10.0.0 以降、 macOS Monterey (12.0.0) より前の MacOS に標準添付されています。 

https://www.php.net/manual/ja/install.macosx.bundled.php

ターミナルでコマンドを打って確認してみました。

php -v

zsh: command not found: php

と、お返事が返ってきたのでphpは入っていません。

Homebrew

公式サイトを見て、インストール

再びコマンド

brew -v

zsh: command not found: brew

え〜〜〜〜そんな〜〜〜〜

Homebrewをインストールした時、最後に表示されていたコレをしないとダメ。

- 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
- Further documentation:
    https://docs.brew.sh

簡単に言うと「環境変数PATHにパスを通す」ことで解決するので、インストールしたときに表示されたコマンドをそのままコピペ。

環境によってコマンドが違うので、注意してください。

私の場合は、下記のようにコマンドを打ちました。

(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

再度、Homebrewが動くことを確認。

brew -v

Homebrew 4.0.3

と、無事に表示されました!

正しい構成になっているかを確認しておきます。

brew doctor

Your system is ready to brew. という表示が出たので、修正必要なし!

グローバルでphpバージョンを切り替える

どうするか迷ったのですが、phpのバージョンを切り替えることがあるので、切り替えられるように構築することにしました。

まずは、上記サイトでアップルシリコンか、インテルシリコンか選択して、表示されるコマンドを切り替えます。

必要なライブラリを入れます。

brew install openssl

Apacheを入れ直します。

新規の場合でもコマンドを入れて問題ありません。

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Homebrewで入れ直します。

brew install httpd

インストールしたら、次のように出てきました。

To start httpd now and restart at login:
  brew services start httpd

新しいApacheサーバーが自動起動するように構成してね。と言うことですので。

brew services start httpd

macから指示が色々と出てきます。

上手く設定が完了したら、ブラウザで http://localhost:8080/ を開きます。

「It works!」と表示されたら成功です。

Apache設定変更

リッスンポートを8080から80に変更します。

Dockerなどで80ポートや8080ポートを使用することがある場合は、11080などを利用するのもいいかと思います。

/opt/homebrew/etc/httpd フォルダをfinderで開いて、httpd.conf をvscodeで開きます。

Listen 8080

を探して、

Listen 80

に変更します。

いやいや、「11080番のポートにしたいの!」という方は下記のように変更します。

Listen 11080

「11080番でもいいけど、8081でも良くない」という方は下記のように変更します。

Listen 8081

Apache のドキュメント ルートを変更

デフォルトのドキュメントルートは /opt/homebrew/var/www

独自のホームディレクトリ内のフォルダーを指すようにするとします。

DocumentRoot "/opt/homebrew/var/www"

を探して、

DocumentRoot "/Users/your_user/Sites"

your_userの部分はご自身の環境に合わせます。

DocumentRoot 行のすぐ下

<Directory "/opt/homebrew/var/www">

これも変更します。

<Directory "/Users/your_user/Sites">

<Directory “/Users/your_user/Sites”>の中にある

AllowOverride None

AllowOverride All

に変更します。

デフォルトでコメントアウトされているmod_rewrite を有効に。

#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

ユーザーグループ

User _www
Group _www

これを

User your_user
Group staff

に変更する。

サーバー名称

#ServerName www.example.com:8080

ServerName localhost

に変更します。

Sites フォルダを作る

ターミナルでSitesフォルダを作り、htmlファイルを作ります。

mkdir ~/Sites
echo "<h1>My User Web Root</h1>" > ~/Sites/index.html

Apache を再起動

brew services stop httpd
brew services start httpd

エラーが発生したら、公式サイトを見てね。

ブラウザで確認

http://localhost/ がブラウザで開けるか確認。

ポート81番の方は、 http://localhost:81/ 

ポート8081番の方は、 http://localhost:8081/ をブラウザで開けるか確認しましょう。

一応、http://localhost:11180/ もどうぞ。

phpのインストール

brew tap shivammathur/php

全部入れてもいいけど、必要なものだけ入れます。

brew install shivammathur/php/php@7.0
brew install shivammathur/php/php@7.1
brew install shivammathur/php/php@7.2
brew install shivammathur/php/php@7.3
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
brew install shivammathur/php/php@8.1
brew install shivammathur/php/php@8.2

phpのメモリやタイムゾーンの設定をするときの構成設定の場所

/opt/homebrew/etc/php/7.0/php.ini
/opt/homebrew/etc/php/7.1/php.ini
/opt/homebrew/etc/php/7.2/php.ini
/opt/homebrew/etc/php/7.3/php.ini
/opt/homebrew/etc/php/7.4/php.ini
/opt/homebrew/etc/php/8.0/php.ini
/opt/homebrew/etc/php/8.1/php.ini
/opt/homebrew/etc/php/8.2/php.ini

端末のタブとウィンドウをすべて閉じる。

phpの切り替え

php7.4に切り替えるのなら

brew unlink php && brew link --overwrite --force php@7.3
php -v

と入力して、バージョンが表示されたら、とりあえずOK。

8.2に切り替えてみる

brew unlink php && brew link --overwrite --force php@8.2
php -v

と入力して、バージョンが表示(切り替わったら)されたら、とりあえずOK。

Apache PHP のセットアップ

/opt/homebrew/etc/httpd/httpd.conf をvscodeで開く。

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

を探して、下記を下側に追加します。(phpの設定が8.2の場合です。)

#LoadModule php7_module /opt/homebrew/opt/php@7.0/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.1/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.3/lib/httpd/modules/libphp7.so
#LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
#LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp.so
#LoadModule php_module /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
LoadModule php_module /opt/homebrew/opt/php@8.2/lib/httpd/modules/libphp.so

次を検索

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

下記に変更

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

Apache を再起動

brew services stop httpd
brew services start httpd

検証

Sitesフォルダに info.php を作成。

echo "<?php phpinfo();" > ~/Sites/info.php

http://localhost/info.php をブラウザで開いて確認。

PHP Switcher Script

/opt/homebrew/bin にsphpを入れます。

curl -L https://raw.githubusercontent.com/rhukster/sphp.sh/main/sphp.sh > /opt/homebrew/bin/sphp
chmod +x /opt/homebrew/bin/sphp

テスト

sphp 8.1

http://localhost/info.php をブラウザで開いて確認。

sphp 8.2 と入力してphp8.2に変更します。

composerをbrewで入れる

brew install composer

確認

composer

表示されたらOK!

システム全体に PHP_CodeSniffer をインストール

GitHub - squizlabs/PHP_CodeSniffer: PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards. - squizlabs/PHP_CodeSni...
composer global require "squizlabs/php_codesniffer=*"

phpcsのパスを通します。zshの場合

echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

確認

phpcs --version

変更箇所あり

WordPressの規約を入れる(1行です)

git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git ~/.composer/vendor/squizlabs/php_codesniffer/Standards/WordPress

--config-setオプションで設定(1行です)

phpcs --config-set installed_paths ~/.composer/vendor/squizlabs/php_codesniffer/Standards/WordPress

参考サイト

GitHub - WordPress/WordPress-Coding-Standards: PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions
PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions - WordPress/WordPress-Coding-Standards

システム全体に入れているので、グローバルでインストールする

composer global config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer global require --dev wp-coding-standards/wpcs:"^3.0"

確認

phpcs -i

WordPress, WordPress-Extra, WordPress-Docs and WordPress-Coreが出てきたらOK。

node.jsバージョン管理ツール

プロジェクト(案件)によって、node.jsのバージョンを変更する必要が多いので、バージョン管理ツールを入れます。

node.jsのバージョン管理ツールは複数ありますが、macでもwindowsでも使える’nvm’を使います。 「nvm」は、「Node Version Manager」の略です。

設定ファイルの作成

設定ファイル .zshrc もしくは .bashrc があるか確認します。

finderで、/Users/ユーザー名 のフォルダを開きます。

隠しファイルなので、「command」+「shift」+「.」で隠しファイルを表示させて探します。

もし、存在しない場合は作成します。

ターミナルを開きます。

ホームディレクトリに移動

cd

使っているシェル名を表示させます。

echo $SHELL

「/bin/zsh」か「/bin/bash」のどちらかが表示されます。

「/bin/zsh」の場合、zsh起動時の設定ファイルである.zshrcを作成します。

.zshrcを作成

touch ~/.zshrc

「/bin/bash」の場合、.bashrcを作成します。

Node Version Managerをインストール

GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions
Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions - nvm-sh/nvm

サイトを訪問し、Install & Update Scriptに沿ってインストールします。

「curl … | bash」というコマンドをターミナルに入力してインストールします。

ターミナルを閉じます!!

ターミナルを開く。

nvmがインストールされているか確認します。

command -v nvm

nvm と表示されたら成功です。

Node.jsの推奨バージョンをnvmでインストール

nvm install --lts

Node.jsのバージョンを確認

node -v

Node.jsの推奨バージョンをリスト表示

nvm ls

バージョンを指定してNode.jsをインストール

v14.21.3の場合のコマンド

nvm install 14.21.2

Node.jsのバージョンを切り替え

nvm use v14.21.3

Node.jsのアンインストール

nvm uninstall 14.21.3

Node.jsの切り替え方法(いつもの使用)

nvmのバージョン確認(これしないと、動かないときあり)

nvm -v

Node.jsのバージョン指定

nvm use 14.21.3

Node.jsのバージョン確認(これ大事)

node -v

実行コマンドの例

npm run start

gitのインストール

Homebrewを使ってインストールします。

下記のサイトに訪問し、コマンドを確認。gitをインストールします。

Git
Redirecting…

おそらく、下記のコマンドになります。

brew install git

SSHキーの作成(ローカルで作る方法)

macの場合、/Users/ユーザー名/.ssh のディレクトリにssh関係を保存します。(変更も可能のようですが、ディフォルトでいいかと思います)

ターミナルを開く

.sshフォルダ(ディレクトリ)を作成

mkdir ~/.ssh

.sshフォルダ(ディレクトリ)のパーミッション変更

chmod 700 ~/.ssh

sshフォルダ(ディレクトリ)に移動

cd ~/.ssh

SSHキー作成(gitlabの場合)

ssh-keygen -t rsa -b 4096 -C "メールアドレス" -f gitlab_rsakey
  • -t 暗号方式
  • -b ビット数
  • -C コメント(gitlabで使うメールアドレス)
  • -f ファイル名
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

と聞いてくるので必要に応じてパスフレーズを入れます。

git push などの際、パスフレーズを聞かれますので忘れずに。

設定不要なら、そのままenterキーを2回押します。

gitlab_rsakey、gitlab_rsakey.pub(gitlabに登録する公開鍵)の2つが作成されます。

finderで隠しファイルも表示する設定にしていれば、確認できます。

awsやvpsなど、ローカルではなく、サーバーでsshキーを作成しダウンロードした場合は、/Users/ユーザー名/.ssh のディレクトリにプライベートキーを保存します。

SSHのconfigファイルの作成

github、gitlabなど様々なssh接続を実施する場合、configファイルを作成しておくと、めちゃくちゃ楽になります。

AWS EC2などでssh接続する場合、configファイルには何も記載しないことが多いです。

.sshフォルダ内にconfigファイルがある場合は追加。無い場合は作成します。(拡張子はありません)

私はVS codeで作ってしまいます。

上記で作ったgitlab向けの場合

# コメント
Host gitlab.com
HostName gitlab.com
IdentityFile ~/.ssh/gitlab_rsakey
User 123←gitlabの「Edit profile」の中にある「User ID」

# のある行はコメントになります。

公開鍵を登録(gitlabの例)

ブラウザで、GitLabにログイン。

「Edit profile」の中にある「SSH Keys」を選択します。

gitlab_rsakey.pubをメモ帳で開いて、「Key」エリアにコピペします。

貼り付けたら、「Add key」を押して完了です。

SSH接続

windowsはGit Bashで macはターミナルで

ssh -T git@gitlab.com

接続できると

Are you sure you want to continue connecting (yes/no/[fingerprint])?

と聞いてくるので’yes’と入れます。

Welcome to GitLab, @arimichi!

と言われたら、成功です。

yarnインストール

nodeのパッケージマネージャであるyarnをインストールします。

yarnのインストール前にnvmコマンドでnodeのバージョンを指定します。

nvm use v20.9.0

確認します。

node -v

yarnをグローバルにインストールします。

npm install --global yarn

確認。

yarn -v

バージョンが表示されたら成功です。

アップデート

設定をしてからしばらく経過したので、各種アップデート。

Homebrewのアップデート

コマンド

brew update

バージョン確認

brew --version

パッケージのアップデート

コマンド

brew upgrade

それなりに時間がかかります。

composerをHomebrewで入れていたので、composerもアップデートされます。

コマンド

composer

以下のように表示されました。

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.8.1 2024-10-04 11:31:01

以下 略

最新バージョンになったのでホッと一息。

古いパッケージを削除

コマンド

brew cleanup

チェック

コマンド

brew doctor

ありゃ。ダメだ。

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
  php@5.6
  php@7.0
  php@7.1
  php@7.2
  php@7.3
  php@7.4
  php@8.0

とりあえず、Apache を再起動

brew services stop httpd
brew services start httpd

インストールできるphpを探す

brew search php

以下のように表示された。

==> Formulae
brew-php-switcher                        shivammathur/php/php@7.3 ✔
php ✔                                    shivammathur/php/php@7.3-debug
php-code-sniffer                         shivammathur/php/php@7.3-debug-zts
php-cs-fixer                             shivammathur/php/php@7.3-zts
php@8.0 ✔                                shivammathur/php/php@7.4 ✔
php@8.1 ✔                                shivammathur/php/php@7.4-debug
php@8.2 ✔                                shivammathur/php/php@7.4-debug-zts
phpbrew                                  shivammathur/php/php@7.4-zts
phpmd                                    shivammathur/php/php@8.0 ✔
phpmyadmin                               shivammathur/php/php@8.0-debug
phpstan                                  shivammathur/php/php@8.0-debug-zts
phpunit                                  shivammathur/php/php@8.0-zts
shivammathur/php/php ✔                   shivammathur/php/php@8.1 ✔
shivammathur/php/php-debug               shivammathur/php/php@8.1-debug
shivammathur/php/php-debug-zts           shivammathur/php/php@8.1-debug-zts
shivammathur/php/php-zts                 shivammathur/php/php@8.1-zts
shivammathur/php/php@5.6 ✔               shivammathur/php/php@8.2 ✔
shivammathur/php/php@5.6-debug           shivammathur/php/php@8.2-debug
shivammathur/php/php@5.6-debug-zts       shivammathur/php/php@8.2-debug-zts
shivammathur/php/php@5.6-zts             shivammathur/php/php@8.2-zts
shivammathur/php/php@7.0 ✔               shivammathur/php/php@8.4 ✔
shivammathur/php/php@7.0-debug           shivammathur/php/php@8.4-debug
shivammathur/php/php@7.0-debug-zts       shivammathur/php/php@8.4-debug-zts
shivammathur/php/php@7.0-zts             shivammathur/php/php@8.4-zts
shivammathur/php/php@7.1 ✔               shivammathur/php/php@8.5
shivammathur/php/php@7.1-debug           shivammathur/php/php@8.5-debug
shivammathur/php/php@7.1-debug-zts       shivammathur/php/php@8.5-debug-zts
shivammathur/php/php@7.1-zts             shivammathur/php/php@8.5-zts
shivammathur/php/php@7.2 ✔               pop
shivammathur/php/php@7.2-debug           pup
shivammathur/php/php@7.2-debug-zts       pcp
shivammathur/php/php@7.2-zts

==> Casks
eclipse-php         phpstorm            phpwebstudy         pop

PHP Switcher はアップデートされていなさそうなので、php8.3への切り替えには使えない。

とりあえず、以下のコマンドでphp8.3にできるので、よしとしておきましょう。

brew unlink php && brew link --overwrite --force php@8.3