Laravel Octaneを導入したプロジェクトをデーモン化(supervisor+apache)


公式ではProxyを使った手順はNginxしか例がなかったのでApacheの例として書いておきます。
(Octaneで爆速化したならNginxのほうが高速だし恩恵得られるけど環境上の都合でApache)

Laravel Octaneの導入方法

導入方法は本稿の本題ではないので私が以前書いた記事を参照。

https://0115765.com/archives/7350

前提条件

以下が前提条件です。

  • Supervisorがインストール済み
  • Octaneの導入が完了済み
  • Apacheを導入+Proxy関連機能を有効化済み
  • DNS設定とかも終わってる

Supervisor

デーモン化をするためにSupervisorを使います。
設定ファイルを /etc/supervisor/conf.d/ 配下に置きます。今回はoctane-demoという名前でプロジェクト及びプロセスを作ることにします。

[program:octane_demo]
process_name=%(program_name)s
command=php /var/www/octane_demo/artisan octane:start
autostart=true
autorestart=true
user=<ユーザー名>
redirect_stderr=true
stdout_logfile=/tmp/octane_demo.log
stopwaitsecs=3600

artisanコマンドでサーバーを起動させてデーモン化する流れです。ポート番号を変更する場合もconnanndで追記して下さい。

$ sudo supervisorctl reread
> octane-demo: available
$ sudo supervisorctl update
> octane-demo: added process group

# スタート
$ sudo supervisorctl start octane-demo
# 処理状況を確認
$ sudo supervisorctl status octane-demo
> octane-demo                      RUNNING   pid 1629555, uptime 0:00:21
# 停止
$ sudo supervisorctl stop octane-demo
> octane-demo: stopped

Apacheの設定

あとはApache側でプロキシの設定をするだけで終わり。

<VirtualHost *:80>
 DocumentRoot /var/www/octane-demo/public
 ServerName octane-demo.hogehoge.com
 ProxyPass / http://127.0.0.1:8000/
 ProxyPassReverse / http://127.0.0.1:8000/
 
 <Directory "/var/www/NeaREST_API/public">
     AllowOverride All
     Require all granted
 </Directory>
</VirtualHost>

最後に有効化&再起動でおしまい。

$ a2ensite octane-demo
$ apachectl restart