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"
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 をインストール
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。
とりあえず、ここまで。