広告

MAC開発環境

mac ターミナル入力Mac
この記事は約12分で読めます。

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

Mac本体はintelですので、ご注意ください。

M1の場合は、コマンドが異なります。

少し面倒な感じでしたが、無事に完了しました。

でもね。

phpのバージョンを切り替える必要なんてないかも・・・

と、入れてから気がついた私でした。

基本は、ターミナルでコマンドを打って設定します。

Homebrew

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

Homebrew
The Missing Package Manager for macOS (or Linux).

phpbrew・・・使用しなかった

phpのバージョン管理が必要になることがあるので、phpbrewを入れたけど、上手くいかなかったので中止。

一応、参考程度にどうぞ。

準備(Requirement)

Requirement · phpbrew/phpbrew Wiki
Brew & manage PHP versions in pure PHP at HOME. Contribute to phpbrew/phpbrew development by creating an account on GitHub.

インストール

phpbrew/README.ja.md at master · phpbrew/phpbrew
Brew & manage PHP versions in pure PHP at HOME. Contribute to phpbrew/phpbrew development by creating an account on GitHub.

実際にインストールしたのはこっち

基本は以下のサイトの通りにやりましたが、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を開くことができるようになります。

http://localhost:8080

Visual Studio Code

Visual Studio Code – コード エディター | Microsoft Azure
ほぼすべての言語に対応し、任意の OS で動作する強力なコード エディター、Visual Studio Code を使用して、Azure で編集、デバッグ、デプロイを行います。

普通にインストールしていたので、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が入っているとエラーになるので、消す。

macOS 12.0 Monterey Apache Setup: Upgrading Homebrew
Grav is a Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS.
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で入れる

GitHub - shivammathur/homebrew-php: Homebrew tap for PHP 5.6 to 8.2. PHP 8.2 is a nightly build.
:beer: Homebrew tap for PHP 5.6 to 8.2. PHP 8.2 is a nightly build. - GitHub - shivammathur/homebrew-php: Homebrew tap for PHP 5.6 to 8.2. PHP 8.2 is a nightly ...
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

で、上手く切り替わっているか確認。

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
404 Not Found

をブラウザで開いて、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
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の拡張機能を入れる

phpcs - Visual Studio Marketplace
Extension for Visual Studio Code - PHP CodeSniffer for Visual Studio Code

macで隠しファイルやフォルダを表示させる

Finderでも見れた方が楽だから。

ショートカットの場合・・・一度Finderを閉じると無効になる。

command + shift + . (dot)

ターミナルでこれを打てば、常に隠しファイルやフォルダを表示してくれます。

defaults write com.apple.finder AppleShowAllFiles YES

末尾をNOにすれば元に戻ります。

mac ターミナル入力