Phusion Passenger на cPanel (Apache) "Не удается получить" (Express); один и тот же код работает на localhost и Heroku - PullRequest
0 голосов
/ 13 февраля 2020

Мое Nodejs приложение хорошо работает на localhost & Heroku, но не работает на моем хостинге cPanel с Phusion Passenger (Cloud Linux).

Когда я смотрю в папку node_modules, express там .

Вот как это выглядит в браузере: http://futuristicon.com/w2/

Я прошу прощения, если заголовок слишком общий - я исправлю это, когда кто-нибудь скажет мне, что проблема действительно есть. Кто-нибудь знает, как запустить и запустить мое приложение?

И это журнал ошибок:

App 1268608 output: internal/modules/cjs/loader.js:775
App 1268608 output:     throw err;
App 1268608 output:     ^
App 1268608 output: 
App 1268608 output: Error: Cannot find module 'express'
App 1268608 output: Require stack:
App 1268608 output: - /home/futur/w2/server.js
App 1268608 output: - /opt/passenger-5.3.7-9.el7.cloudlinux/src/helper-scripts/node-loader.js
App 1268608 output:     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:772:15)
App 1268608 output:     at Function.Module._load (internal/modules/cjs/loader.js:677:27)
App 1268608 output:     at Module.require (internal/modules/cjs/loader.js:830:19)
App 1268608 output:     at Module.require (/opt/passenger-5.3.7-9.el7.cloudlinux/src/helper-scripts/node-loader.js:80:25)
App 1268608 output:     at require (internal/modules/cjs/helpers.js:68:18)
App 1268608 output:     at Object.<anonymous> (/home/futur/w2/server.js:1:17)
App 1268608 output:     at Module._compile (internal/modules/cjs/loader.js:936:30)
App 1268608 output:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
App 1268608 output:     at Module.load (internal/modules/cjs/loader.js:790:32)
App 1268608 output:     at Function.Module._load (internal/modules/cjs/loader.js:703:12) {
App 1268608 output:   code: 'MODULE_NOT_FOUND',
App 1268608 output:   requireStack: [
App 1268608 output:     '/home/futur/w2/server.js',
App 1268608 output:     '/opt/passenger-5.3.7-9.el7.cloudlinux/src/helper-scripts/node-loader.js'
App 1268608 output:   ]
App 1268608 output: }
App 1271723 output: app is running on port 3002
App 1400344 output: app is running on port 3002 ```

1 Ответ

0 голосов
/ 15 февраля 2020

Я решил проблему - проблема с Phusion Passenger заключается в том, что путь root - это не '/', а '/ yourAppURL' (в моем случае '/ w2' (https://futuristicon.com/w2/) ).

Действительно странно, поскольку root равно '/' во всех других средах (как я уже упоминал в этом вопросе - приложение работало безупречно в Heroku & localhost env).

Важно : маршруты, отличные от root, не будут работать из коробки. По какой-то причине вам придется вручную создать пустую папку с именем, соответствующим параметру маршрута, внутри папки, в которой находится ваш .htaccess. живет.

Например, если вы хотите создать маршрут, подобный следующему:

app.get('/w2/signup', (req, res) => {
res.send('Signup!')
})  

Вы должны будете создать новую папку с именем регистрации (не папка приложения root, но папка URL вашего приложения)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...