0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ElastickBeanstalkにSSHしてLaravelのコマンドを動かそうと思ったらなぜかsegment faultになるので

Posted at

これはなに

ElastickbeanstalkにSSHしてPHPのコードを動かそうと思ったら
なぜかsegment faultになったけど
ルーティングファイルに直接処理を書いたら落ちずに実行できたよという話です。

背景

ElastickBeanstalkのインスンタンスにSSHでログインして
Laravelのコマンドを実行したいのですが、実行後1,2秒するとsegment faultが発生してしまう状況にハマってました。
local環境だと動くし、メモリも不足してなさそうな感じで、原因はまったく不明です。
tinkerから処理を呼び出してもダメでした。
不思議な力によってプロセスがキルされてるのかもしれません。AWSのセキュリティ機構みたいななにかが。

対処方法

SSHしてコマンド実行するのは諦めました。

そこでひらめいたのが、Webからアクセスしたら処理が呼び出されるようにする方法です。

Laravelのルーティングが記載されたファイルを編集します。
私は、SSHしたままvimで直接コードを変えました。 一時的なコマンド実行なので大目に見て欲しい。

routes/web.php
Route::get('foo', function () {
    return 'Hello World';
});

こんな感じで書けばブラウザから /foo にアクセスすると処理が実行されてHello Worldと表示されるはずです。
ここで
resolve()などのヘルパーを使って使いたいクラスをインスタンス化して、必要な処理を呼び出すことができます。

また、このケースでは文字列をreturnしてますが、標準出力した文字もブラウザ上に表示されるます。

以上、参考になりましたら幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?