Closed4
Laravel Octane移行検証メモ
Laravel Octaneとは
- LaravelをSwooleやRoadRunnerの上にのっけて高速化する仕組み
作業内容
- fpm -> octaneへの移行を検証する
バージョン
- php - 8.1
- laravel/framework - 9.0
- laravel/octane - 1.2
- Dockerイメージ - php:8.1-fpm-alpine3.16 ※いったんfpm環境で検証
参考URL
RoadRunner構成
バージョン
はまったところ
octane:insatllで失敗する
-
php artisan octane:install
時に他のパッケージの取得時に失敗する -
composer require spiral/roadrunner
で手動インストール
RoadRunnerでOperation not permitted
-
octane:insatll
で取得するRoadRunnerの場合、octane:start
時Operation not permitted
になるケースがある - 自分の環境ではRoadRunnerの旧バージョンをDLするように修正すれば回避出来た
socketsが足りない
- Dockerfile内で
docker-php-ext-install sockets
で追加する
SIGINTエラーになる
- Dockerfile内で
docker-php-ext-install pcntl
で追加する
Octaneは起動できたが、Docker外部からアクセスできない
-
php artisan octane:start --host=0.0.0.0
で起動する
最終的な実行コマンド
# パッケージインストール
composer require laravel/octane spiral/roadrunner
# RoadRunnerダウンロード
wget https://github.com/roadrunner-server/roadrunner/releases/download/v2.8.8/roadrunner-2.8.8-linux-amd64.tar.gz -O - | tar xvfz -
mv roadrunner-2.8.8-linux-amd64/rr ./rr
# octane install - roadrunner選択
php artisan octane:install
# octane start
php artisan octane:start --host=0.0.0.0
Swoole構成
メモ
- swooleのインストールまわりをクリアすれば RoadRunnerより楽
Docker設定追加
pecil install swoole
docker-php-ext-install sockets pcntl
docker-php-ext-enable swoole
実行コマンド
# パッケージインストール
composer require laravel/octane
# octane install - swoole選択
php artisan octane:install
# octane start
php artisan octane:start --host=0.0.0.0
nginxとのつなげこみ
docker-comopose構成の場合、公式指定の方法に以下の修正が必要
server {
location @octane {
...
# dockerネットワーク内のホストを解決するresolver追加
resolver 127.0.0.11;
# 127.0.0.1 -> Octane実行中のホストに修正
proxy_pass http://${Octane実行中のホスト}:8000$suffix;
}
}
このスクラップは2022/07/01にクローズされました