LoginSignup
4
2

More than 5 years have passed since last update.

PHP7.0を7.1にしたときに valet install でちょっとハマった話。

Last updated at Posted at 2018-03-30

valet 使ってる人、僕は主に laravel で使ってるんですけど。
同じところでハマった人のために、メモります。

laravel の最新バージョンが PHP7.1 でじゃないと動かないので、
php 自体は Homebrew で 7.1 にしました。
その辺りはたくさん記事が出てますが、一つ付け加えると。
--with-fpmbrew install php71で一緒に落とせるので不要です。

PHP および PHP-FPM を を7.1 にあげた後に、valet の環境も 7.1 対応したいので。

composer global update
の後
valet install
すると。

Error: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.
Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated.
 Unable to determine linked PHP. 

などが出て valet 動かない。

原因から言うと、valet のソースコードが
~/.composer/vendor/laravel/valet/cli/Valet/
以下にあるんですけど、その中の Brew.php に、対応する php のバージョンの配列があるんですね。
55 行目あたり。
return collect(['php', 'php72', 'php71', 'php70', 'php56']);

んで エラーの出てる 186 行目あたりで
return strpos($resolvedPath, "/$version/") !== false;
がことごとく false になっているのが原因なんですけど、この行の1行上で
var_dump($version);
ってしてやると "php@7.1" って返ってきます、配列内にこれがないのが原因です。

なので、55行目に
return collect(['php@7.1', 'php72', 'php71', 'php70', 'php56']);
// return collect(['php', 'php72', 'php71', 'php70', 'php56']);

として、無理やり足して、なおかつ
PHP Notice: Undefined index: php@7.1 in ~/.composer/vendor/laravel/valet/cli/Valet/PhpFpm.php on line 116
「インデックスがないよー」と出るので
今度は ~/.composer/vendor/laravel/valet/cli/Valet/PhpFpm.php

function fpmConfigPath()
    {
        $confLookup = [
            'php@7.1' => '/usr/local/etc/php/7.1/php-fpm.d/www.conf', // <= こいつを足す
            'php' => '/usr/local/etc/php/7.2/php-fpm.d/www.conf',
            'php72' => '/usr/local/etc/php/7.2/php-fpm.d/www.conf',
            'php71' => '/usr/local/etc/php/7.1/php-fpm.d/www.conf',
            'php70' => '/usr/local/etc/php/7.0/php-fpm.d/www.conf',
            'php56' => '/usr/local/etc/php/5.6/php-fpm.conf',
        ];

        return $confLookup[$this->brew->linkedPhp()];
    }

で valet install したら、問題なくいけました。

今の所動いてますが、不具合があったら報告します。
おそらく PHP7.2系でも同じように行けると思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2