MacにPHPの最新の環境をbrewで構築

2020.8.4 (火)

結局Macも既存のPHPがなかなか使いづらいというところがあるので、Homebrewで新たにPHPをインストールしてそれを使うっていう方が格段に使いやすいという話になってしまうというお話です。

PHP7.3のインストール

MacはデフォルトでPHPがインストールされていますが、モジュールを追加したりするには結構面倒なことをしないといけないので、brewでパッケージごと入れた方がいいです。
brewからインストールすると以下のパスにPHPが格納されますが、

$ which php
/usr/local/opt/php@7.3/bin/php

デフォルトのままだと以下に設定されています。

$ which php
/usr/bin/php

HomebrewからPHPをインストールする

brewのアップグレードをして最新にしておきます。

$ brew upgrade

インストールできるPHPのバージョンを確認します。

$ brew search php
==> Formulae
brew-php-switcher      php-cs-fixer           phplint                phpstan
php                    php@7.2                phpmd                  phpunit
php-code-sniffer       php@7.3 ✔              phpmyadmin
==> Casks
homebrew/cask/eclipse-php                     homebrew/cask/netbeans-php

php@7.3があるので、これをインストール

brew install php@7.3

これでインストールは完了しているが、PHPのパスが既存のものになっているのでパスを通します。.bash_profileを修正します。

# php@7.3 brew install
#export PATH=/usr/local/bin:$PATH
export PATH="/usr/local/opt/php@7.3/bin:$PATH"

編集して保存したら、source .bash_profileをしてターミナルを再起動させます。
これで、新しいPHPが適用されている筈です。

$ which php
/usr/local/opt/php@7.3/bin/php

PHPの場所と仕組み

だいたいphp -iで確認できます。

$ php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.3
Loaded Configuration File => /usr/local/etc/php/7.3/php.ini

php.iniの場所は/usr/local/etc/php/7.3/php.iniになってます。
モジュールも人揃えあるので、たいていの場合は問題なし。

$ php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
phpdbg_webhelper
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib