Closed4

Laravel Octane移行検証メモ

(や)(や)

RoadRunner構成

バージョン

はまったところ

octane:insatllで失敗する

  • php artisan octane:install時に他のパッケージの取得時に失敗する
  • composer require spiral/roadrunnerで手動インストール

RoadRunnerでOperation not permitted

  • octane:insatllで取得するRoadRunnerの場合、octane:startOperation 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にクローズされました