広告

MAC開発環境 M2

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

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に変更します。

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

Listen 8080

を探して、

Listen 80

に変更します。

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/ がブラウザで開けるか確認。

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. - GitHub - squizlabs/PHP_CodeSniffer: PHP_CodeSniffer tokenizes...
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

確認

phpcs -i

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

とりあえず、ここまで。