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 はエラーを表示しなくなる。