PHP
Mac
homebrew

PHP を起動すると Homebrew でアンインストールしたモジュールがエラーになる

Mac を使って開発していると環境設定に Homebrew を利用することが多いのですが、追加した PHP の拡張モジュールを削除すると設定ファイルの残骸が残ってエラーを発生させることがあります。

そんな時は不要な設定ファイルを削除すると解消することが有ります。

$ php -v

PHP 7.1.14 (cli) (built: Feb  2 2018 08:42:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

PHP はエラーにならない。

$ brew list

autoconf    jpeg        libtiff     makedepend  php71-igbinary  readline    unixodbc
freetype    libevent    libtool     memcached   php71-memcached redis       wget
gettext     libiconv    libunistring    nodebrew    php71-pcntl ruby        xz
git     libidn2     libxml2     openssl     php71-redis ruby-build
git-lfs     libmemcached    libxslt     openssl@1.1 pkg-config  sphinx-doc
icu4c       libpng      libyaml     php71       rbenv       tree

$ brew uninstall php71-memcached

Uninstalling /usr/local/Cellar/php71-memcached/3.0.3_3... (7 files, 115.4KB)

$ php -v

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-memcached/memcached.so' - dlopen(/usr/local/opt/php71-memcached/memcached.so, 9): image not found in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-memcached/memcached.so' - dlopen(/usr/local/opt/php71-memcached/memcached.so, 9): image not found in Unknown on line 0
PHP 7.1.14 (cli) (built: Feb  2 2018 08:42:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

php71-memcached をアンインストールすると PHP でエラーが発生する。

$ php -i | grep php.ini

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-memcached/memcached.so' - dlopen(/usr/local/opt/php71-memcached/memcached.so, 9): image not found in Unknown on line 0
Configuration File (php.ini) Path => /usr/local/etc/php/7.1
Loaded Configuration File => /usr/local/etc/php/7.1/php.ini

設定ファイルのフォルダを確認する。

$ ls -laR /usr/local/etc/php/7.1

total 304
drwxr-xr-x  8 Kiyokazu  admin    256  2 17 11:28 .
drwxr-xr-x  5 Kiyokazu  admin    160  2 17 11:37 ..
drwxr-xr-x  6 Kiyokazu  admin    192  3  9 22:14 conf.d
-rw-r--r--  1 Kiyokazu  admin   4493 10  4 00:16 php-fpm.conf
-rw-r--r--  1 Kiyokazu  admin   4495  3  8 13:40 php-fpm.conf.default
-rw-r--r--  1 Kiyokazu  admin   4497  3  8 13:40 php-fpm.conf.default.default
drwxr-xr-x  4 Kiyokazu  admin    128 10 24 13:33 php-fpm.d
-rw-r--r--  1 Kiyokazu  admin  71064  3  8 13:40 php.ini

/usr/local/etc/php/7.1/conf.d:
total 48
drwxr-xr-x  6 Kiyokazu  admin   192  3  9 22:14 .
drwxr-xr-x  8 Kiyokazu  admin   256  2 17 11:28 ..
-rw-r--r--@ 1 Kiyokazu  admin  6148  2 17 11:39 .DS_Store
-rw-r--r--  1 Kiyokazu  admin   300  3  8 13:41 ext-igbinary.ini
-rw-r--r--  1 Kiyokazu  admin  4132  3  9 22:14 ext-memcached.ini
-rw-r--r--  1 Kiyokazu  admin   292  3  8 13:41 ext-redis.ini

/usr/local/etc/php/7.1/php-fpm.d:
total 80
drwxr-xr-x  4 Kiyokazu  admin    128 10 24 13:33 .
drwxr-xr-x  8 Kiyokazu  admin    256  2 17 11:28 ..
-rw-r--r--  1 Kiyokazu  admin  18563 10  4 00:16 www.conf
-rw-r--r--  1 Kiyokazu  admin  18566  3  8 13:40 www.conf.default

アンインストールしたphp71-memcachedの設定ファイルext-memcached.iniが消えずに残っている。

$ rm /usr/local/etc/php/7.1/conf.d/ext-memcached.ini 

$ php -v

PHP 7.1.14 (cli) (built: Feb  2 2018 08:42:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

ext-memcached.iniを削除すると PHP はエラーを表示しなくなる。