# PHPのフレームワークLaravelでAlgoliaを使うための環境構築 その1
先日行われたLive Coding Session - Advanced Search with Laravel and Algolia by Nuno Maduroがなかなか良かったので、自分の方でも少し試してみたいと思います。
# Laravelの環境設定
恐らく今使っている会社のMacbookでPHPを扱ったことはないはずなので、Macのデフォルトな状態なのかな、と思います。いきなり何かのLibraryがないとか言われてますが…w
$ php -version
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/php@7.2/bin/php
Reason: image not found
Abort trap: 6
とりあえずLaravelのInstallドキュメントをみながらやっていきます。
とは言え、composerは動かなかったのでHomebrewでやっていきます。
なぜかcomposerは既に入ってたみたいなので、、
Error: composer 1.8.6 is already installed
とりあえず最新版にしてみました。
$ brew upgrade composer
Updating Homebrew...
==> Upgrading 1 outdated package:
composer 1.8.6 -> 1.10.8
==> Upgrading composer 1.8.6 -> 1.10.8
==> Downloading https://getcomposer.org/download/1.10.8/composer.phar
Already downloaded: /Users/eiji.shinohara/Library/Caches/Homebrew/downloads/db1f3f0aa3fea6c501eac44f0597caa565633541c22259b4fa2d00ba9daa1ebc--composer.phar
🍺 /usr/local/Cellar/composer/1.10.8: 3 files, 1.9MB, built in 2 seconds
Removing: /usr/local/Cellar/composer/1.8.6... (3 files, 1.8MB)
ついでにbrewでPHPも入れていきます。って、なんかPHPも既に入ってたみたい…w
Error: php 7.3.6_1 is already installed
ということで、こちらもアップデートをしたのですが、なんかバージョン下がってないっすかね、、、?まぁイイかな、と。。
$ php -version
PHP 7.2.32 (cli) (built: Jul 10 2020 00:06:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.32, Copyright (c) 1999-2018, by Zend Technologies
そういえば、なんかボケットみてたら👇こんなの出てきたけど、何か依存してるのかな?w
==> Upgrading aws/tap/aws-sam-cli 0.17.0 -> 0.53.0
composerで無事Laravel入った予感です。
$ composer global require laravel/installer
Changed current directory to /Users/eiji.shinohara/.composer
Using version ^3.2 for laravel/installer
〜略〜
Generating autoload files
11 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
んでもって、コマンドのパスを通してあげて、、
export PATH=$PATH:$HOME/.composer/vendor/bin
プロジェクト作ろうと思ったら、PHPのバージョン低い的な…?
The Laravel installer requires PHP 7.3.0 or greater.
ってことで、
$ brew install php@7.3
ってか、パスが古かったりとか、phpをrestartしたりしなきゃとか、なんか色々アレだったっぽいけど…w
$ brew services restart php
Stopping `php`... (might take a while)
==> Successfully stopped `php` (label: homebrew.mxcl.php)
==> Successfully started `php` (label: homebrew.mxcl.php)
$ php -v
PHP 7.3.20 (cli) (built: Jul 9 2020 23:50:54) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.20, Copyright (c) 1999-2018, by Zend Technologies
で、laravel newで新しいプロジェクトを改めて作ろうとしたら、、やっぱりだめかと。。
In CurlFactory.php line 207:
cURL error 52: Empty reply from server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
ってことでcomposerのcreate-projectだと依存ライブラリとかやりくりしてくれるらしいので👇こんな感じで。
$ composer create-project --prefer-dist laravel/laravel shop
なんか凄い時間かかったけど、プロジェクト自体は出来た模様。
$ ls -l
total 512
-rw-r--r-- 1 eiji.shinohara staff 4465 May 19 06:50 README.md
drwxr-xr-x 7 eiji.shinohara staff 224 May 19 06:50 app
-rwxr-xr-x 1 eiji.shinohara staff 1686 May 19 06:50 artisan
drwxr-xr-x 4 eiji.shinohara staff 128 May 19 06:50 bootstrap
-rw-r--r-- 1 eiji.shinohara staff 1586 May 19 06:50 composer.json
-rw-r--r-- 1 eiji.shinohara staff 227900 Jul 11 21:02 composer.lock
drwxr-xr-x 16 eiji.shinohara staff 512 May 19 06:50 config
drwxr-xr-x 6 eiji.shinohara staff 192 May 19 06:50 database
-rw-r--r-- 1 eiji.shinohara staff 1034 May 19 06:50 package.json
-rw-r--r-- 1 eiji.shinohara staff 1197 May 19 06:50 phpunit.xml
drwxr-xr-x 7 eiji.shinohara staff 224 May 19 06:50 public
drwxr-xr-x 6 eiji.shinohara staff 192 May 19 06:50 resources
drwxr-xr-x 6 eiji.shinohara staff 192 May 19 06:50 routes
-rw-r--r-- 1 eiji.shinohara staff 563 May 19 06:50 server.php
drwxr-xr-x 5 eiji.shinohara staff 160 May 19 06:50 storage
drwxr-xr-x 6 eiji.shinohara staff 192 May 19 06:50 tests
drwxr-xr-x 45 eiji.shinohara staff 1440 Jul 11 21:02 vendor
-rw-r--r-- 1 eiji.shinohara staff 538 May 19 06:50 webpack.mix.js
# サーバーを起動してみる
8000番ポートで起動するらしい。
$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
👇こんな感じになりました。
# ということで、、
次回はAlgoliaに連携するところをLaravel Scoutでやっていきたいと思います。