phpbrewで5.6のphpをinstallしたが、その後redisの拡張が入らなかった。
$ phpbrew ext install redis Downloading http://pecl.php.net/get/redis-3.0.0.tgz via curl extension [==================================================================] 185.27/185.27KB 100% ===> Extracting to /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext... ===> Installing redis extension... Log stored at: /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log Changing directory to /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis ===> Phpize... ===> Configuring... ===> Building... ===> Running make all: /usr/bin/make -C '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis' 'all' >> '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log' 2>&1 Exception: Command failed: /usr/bin/make -C '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis' 'all' >> '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log' 2>&1 returns Trace: 0) PhpBrew\Utils::system(['/usr/bin/make', '-C', '\'/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis\'', '\'all\'', ' >> \'/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log\' 2>&1'], CLIFramework\Logger) 1) PhpBrew\Tasks\MakeTask->make('/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis', 'all') 2) PhpBrew\Tasks\MakeTask->run(PhpBrew\Extension\PeclExtension) 3) PhpBrew\Extension\ExtensionInstaller->install(PhpBrew\Extension\PeclExtension, []) 4) PhpBrew\Extension\ExtensionManager->installExtension(PhpBrew\Extension\PeclExtension, []) 5) PhpBrew\Command\ExtensionCommand\InstallCommand->execute('redis', 'stable') 6) call_user_func_array([PhpBrew\Command\ExtensionCommand\InstallCommand, 'execute'], ['redis', 'stable']) 7) CLIFramework\CommandBase->executeWrapper(['redis', 'stable']) 8) CLIFramework\Application->run(['/usr/local/Cellar/phpbrew/1.21.1/libexec/phpbrew.phar', 'ext', 'install', 'redis', 'stable']) 9) CLIFramework\Application->runWithTry(['/usr/local/Cellar/phpbrew/1.21.1/libexec/phpbrew.phar', 'ext', 'install', 'redis', 'stable']) 10) require('phar:///usr/local/Cellar/phpbrew/1.21.1/libexec/phpbrew.phar/scripts/phpbrew-emb.php')
なんでかなーと思って、調べたら
要するに最新のphp拡張であるredis-3.0.0はphp7以上でないと使えなくて、 ext/standard/php_smart_str.h
ではなく ext/standard/php_smart_string.h
を読み込もうとする。しかしphp5.6だとそんなファイルはないので死ぬとのことだった。
そこでまずpeclサイトからredisバージョン一覧を確認し
を見て、明示的にどのバージョンの拡張を入れるか指定する。
$ phpbrew ext install redis 2.2.8 Downloading http://pecl.php.net/get/redis-2.2.8.tgz via curl extension [==================================================================] 187.63/187.63KB 100% ===> Extracting to /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext... ===> Installing redis extension... Log stored at: /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log Changing directory to /Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis ===> Phpize... ===> Configuring... ===> Building... ===> Running make all: /usr/bin/make -C '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis' 'all' >> '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log' 2>&1 ===> Installing... ===> Running make install: /usr/bin/make -C '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis' 'install' >> '/Users/kimikimi714/.phpbrew/build/php-5.6.15/ext/redis/build.log' 2>&1 ===> Extension is installed. ===> Creating config file /Users/kimikimi714/.phpbrew/php/php-5.6.15/var/db/redis.ini.disabled ===> Enabling extension redis [*] redis extension is enabled. Done.
通った。