macを真っ新にできたので、開発環境を再構築したのでメモ。
macOS Monterey 12.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のバージョンを切り替える必要なんてないかも・・・
と、入れてから気がついた私でした。
基本は、ターミナルでコマンドを打って設定します。
Homebrew
公式サイトを見て、インストール
phpbrew・・・使用しなかった
phpのバージョン管理が必要になることがあるので、phpbrewを入れたけど、上手くいかなかったので中止。
一応、参考程度にどうぞ。
準備(Requirement)
インストール
実際にインストールしたのはこっち
基本は以下のサイトの通りにやりましたが、composerを入れた時にミスったので御注意。
簡単に流れだけ書いておきます。
brewでphpをインストール・・・しないでOK(あとで消した)
後で消したけど、phpのバージョン管理がいらないのなら、これでOK
インストールできるphpを探す
brew search php
こんな感じでした。
==> Formulae brew-php-switcher php@7.2 phplint pcp php php@7.3 phpmd pup php-code-sniffer php@7.4 phpmyadmin php-cs-fixer php@8.0 phpstan php-cs-fixer@2 phpbrew phpunit
なので、php8.0にしようと思って、下記のコマンドを使いました。
が、恐らくphpとなっているのはphp8.1のような気がします。
brew install php@8.0
Montereyなので、これ大事
macOS Monterey 12.1なので
brew install openssl
Apache
Apacheを入れ直します。コマンドだけ
sudo apachectl stop sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew install httpd
brew services start httpd
ここまで上手くいけば、ブラウザで下記のURLを開くことができるようになります。
Visual Studio Code
普通にインストールしていたので、codeシンボリックリンクを作成・・・これをするとターミナルから、vs codeを開けるようになります。
ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code /usr/local/bin/code
Apache設定変更
code /usr/local/etc/httpd/httpd.conf
vscodeが立ち上がるので、
Listen 8080
を検索
Listen 80
に変更
DocumentRoot “/usr/local/var/www”
を検索
DocumentRoot "/Users/arimichi/Sites"
※arimichiのところはご自身のPCに合わせる。
Directory “/Users/your_user/Sites”
を
Directory "/Users/arimichi/Sites"
※arimichiのところはご自身のPCに合わせる。
<Directory>
blockにある AllowOverride None を
AllowOverride All
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
のコメント#を消す。
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
User _www
Group _www
を
User arimichi Group staff
※arimichiのところはご自身のPCに合わせる。
#ServerName www.example.com:8080 を
ServerName localhost
Sites フォルダーを作る
mkdir ~/Sites echo "<h1>My User Web Root</h1>" > ~/Sites/index.html
Apache再起動
brew services stop httpd brew services start httpd
http://localhost にブラウザでアクセスできるようになる。
PHP
Apacheは止めてから消した方がいいみたい。
brew services stop httpd
もし、phpが入っているとエラーになるので、消す。
brew update brew upgrade brew cleanup
brew list | grep php
phpが出てきたら、消す。
brew uninstall --force php72 brew cleanup
末尾のphp72は入っていたもの。
brew list | grep php
完全に消えているか確認して
rm -Rf /usr/local/etc/php/*
https://github.com/shivammathur/homebrew-phpで入れる
brew tap shivammathur/php
brew install shivammathur/php/php@7.4 brew install shivammathur/php/php@8.0 brew install shivammathur/php/php@8.0 brew install shivammathur/php/php@8.1
最初にphp8.1を入れなくて、大変なことに
最初にphp8.1を入れなくて、大変なことに
ハマった場所です。
phpの切り替え
brew unlink php && brew link --overwrite --force php@8.0
これでError: No such keg: /usr/local/Cellar/phpのエラーが出たら
brew unlink php@8.0 && brew link --overwrite --force php@7.4 brew unlink php@7.4 && brew link --overwrite --force php@8.0 brew unlink php@8.1 && brew link --overwrite --force php@8.0 brew unlink php@8.0 && brew link --overwrite --force php@8.1
こんな感じにするといい。
なお、再度入れ直したら、切り替えコードでエラーが出なくなった。
php -v
で、上手く切り替わっているか確認。
実際にphp7.4に切り替え
brew unlink php && brew link --overwrite --force php@7.4
実際にphp8.0に切り替え
brew unlink php && brew link --overwrite --force php@8.0
実際にphp8.1に切り替え
brew unlink php && brew link --overwrite --force php@8.1
Apache設定httpd.confに戻る
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
の下に追加
#LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so #LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so #LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so #LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so #LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so #LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so
実行中のphpのバージョンとコメントの無いphpのバージョンを合わせてください!!!
ここもハマった・・・
コメントの記号#のあとにスペースがあるとダメ。
<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
phpがちゃんとしているか確認
echo "<?php phpinfo();" > ~/Sites/info.php
をブラウザで開いて、phpinfoが表示されるか、バージョンが設定と合っているか確認。
PHP Switcher Script
を入れる
curl -L https://gist.githubusercontent.com/rhukster/f4c04f1bf59e0b74e335ee5d186a98e2/raw/adc8c149876bff14a33e3ac351588fdbe8172c07/sphp.sh > /usr/local/bin/sphp chmod +x /usr/local/bin/sphp
テスト
sphp 8.0
末尾はphpのバージョン
切り替わったらOK。
ここで、php8.1にしておかないと、composerのインストールでトラブります。
⇒勝手にphp8.1がインストールされちゃう。
composerをbrewで入れる
brew install composer
composer
これが表示されたらOK。
phpcs
グローバルに入れました。
composer global require "squizlabs/php_codesniffer=*"
確認
.composer/vendor/bin/phpcs --version
パス登録 phpcsで動くようになる
echo 'export PATH=$HOME/.composer/vendor/bin:$PATH' >> ~/.bash_profile source ~/.bash_profile
確認
phpcs --version
WordPressの規約を入れる
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git ~/.composer/vendor/squizlabs/php_codesniffer/Standards/WordPress
--config-set
オプションで設定
phpcs --config-set installed_paths ~/.composer/vendor/squizlabs/php_codesniffer/Standards/WordPress
確認
phpcs -i
WordPress, WordPress-Extra, WordPress-Docs and WordPress-Coreが出てきたらOK。
vs codeの設定
phpcsの拡張機能を入れる
macで隠しファイルやフォルダを表示させる
Finderでも見れた方が楽だから。
ショートカットの場合・・・一度Finderを閉じると無効になる。
command + shift + . (dot)
ターミナルでこれを打てば、常に隠しファイルやフォルダを表示してくれます。
defaults write com.apple.finder AppleShowAllFiles YES
末尾をNOにすれば元に戻ります。