3

私のlaravelプロジェクトでlaravel-echo-serverを設定する必要があります。正常にインストールされ、ターミナルから実行している間は完全に実行されています。しかし、スーパーバイザーから実行している間、エラーがスローされます

モジュール 'node-v46-linux-x64/node_sqlite3.node' が見つかりません

この問題を解決するために、ほぼ 2 日を費やしました。しかし、私は成功しませんでした。したがって、誰かが答えを知っていれば、それは高く評価されます。

すべてのステップ/構成の詳細は次のとおりです。

  1. ノード 7.10.0 をインストールします ( https://github.com/nodejs/help/wiki/Installation )
  2. laravel-echo-server をグローバルにインストールし、プロジェクトで初期化します

これらの手順の後、ターミナルから「laravel-echo-server start」を実行すると、完全に実行されます。

ここで、このコマンドをスーパーバイザーで設定する必要があります。だから私はこれらのステップを実行しました。

  1. laravel-echo-server のシンボリックリンクを作成 ( sudo ln -s /usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/bin/server.js /usr/bin/laravel-echo-server)

  2. スーパーバイザーで「laravel-echo-server start」コマンドを設定します

    監修者の詳細はこちら。

    ファイルの場所:/etc/supervisor/conf.d/laravel.conf

    [program:laravel-echo-server]
    command=/usr/bin/laravel-echo-server start --dir=/var/www/html/laravel
    autostart=true
    autorestart=true
    stderr_logfile=/var/www/html/laravel/laravel-echo-server-err.log
    stdout_logfile=/var/www/html/laravel/laravel-echo-server-out.log
    
  3. 実行sudo supervisorctl rereadしてsudo supervisorctl update

  4. 走るsudo supervisorctl start laravel-echo-server

しかし、それはエラーをスローします。ここにエラーログがあります。

Error: Cannot find module '/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/binding/node-v46-linux-x64/node_sqlite3.node'
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/dist/database/sqlite.js:3:15)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)

node-v51-linux-x64にディレクトリがあり/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/bindingます。

4

1 に答える 1

2

最後に、この問題を修正しました。私はこの手順に従いました。

  1. nodejs、npm、node を完全にアンインストールする
  2. パッケージ マネージャーを使用して Node.js をインストールする

ステップ 2 でこのコマンドを実行しました。

  1. curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
  2. sudo apt-get install -y nodejs
  3. sudo apt-get install -y build-essential

次に、laravel-echo-server をインストールしました。そして、すべてがうまくいきます。ただし、許可エラーが発生した場合は、実行する必要がありますsudo chown -R $USER /usr/lib/node_modulessudo ln -sfn ../lib/node_modules/laravel-echo-server/bin/server.js /usr/bin/laravel-echo-serversymlink エラーの場合に実行します。

于 2017-12-22T11:48:18.330 に答える