«Ошибка: EACCES: разрешение отклонено» — запуск приложения Meteor (OHIF) в экземпляре AWS EC2.

Я запускаю приложение Meteor (модифицированная версия OHIF) на экземпляре AWS EC2 ( t2.mediumпод управлением Amazon Linux 2).

При попытке запустить приложение с помощью метеора или вообще запустить какие-либо команды в метеоре я вижу следующую ошибку. Я пробовал много разных подходов, основанных на других подобных проблемах, в основном используя chown для переназначения права собственности на все указанные папки, но независимо от того, что я пытаюсь, я продолжаю получать это EACCES: permission deniedошибка.

      [ec2-user@ip-10-1-2-35 APPFolder]$ meteor npm install
/home/ec2-user/.meteor/packages/meteor-tool/.1.12.0.13oys96.0sq8++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/tools/cli/dev-bundle.js:120
         throw e;
         ^
 
 Error: EACCES: permission denied, stat
 '/Cansrdata/cansrohif/OHIFViewer/.meteor/local/dev_bundle'
     at Object.statSync (fs.js:1016:3)
     at statOrNull (/home/ec2-user/.meteor/packages/meteor-tool/.1.12.0.13oys96.0sq8++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/tools/cli/dev-bundle.js:117:21)
     at getDevBundleDir (/home/ec2-user/.meteor/packages/meteor-tool/.1.12.0.13oys96.0sq8++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/tools/cli/dev-bundle.js:37:25)
     at Object.<anonymous> (/home/ec2-user/.meteor/packages/meteor-tool/.1.12.0.13oys96.0sq8++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/tools/cli/dev-bundle.js:177:20)
     at Object.<anonymous> (/home/ec2-user/.meteor/packages/meteor-tool/.1.12.0.13oys96.0sq8++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/tools/cli/dev-bundle.js:180:3)
     at Module._compile (internal/modules/cjs/loader.js:1137:30)
     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
     at Module.load (internal/modules/cjs/loader.js:985:32)
     at Function.Module._load (internal/modules/cjs/loader.js:878:14)
     at Module.require (internal/modules/cjs/loader.js:1025:19) {   errno: -13,   syscall: 'stat',   code: 'EACCES',   path:
 '/app/.meteor/local/dev_bundle' }

Это происходит независимо от того, что я пытаюсь. Я использовал функции chown и chmod для переназначения разрешений для всех каталогов и всех файлов, упомянутых в журнале ошибок, а также для всех каталогов и файлов, на которые можно указать из этих каталогов с помощью относительных ссылок.

В системе (используя ls -l) все они отображаются как назначенные по умолчанию ec2-useruser (который, как мне кажется, из большого количества поисковых запросов / GitHub / Stack Overflow является правильным статусом, но я точно не знаю). Я также переустановил метеор, чтобы посмотреть, изменит ли это разрешения, но безуспешно.

Приложение ранее работало на этом экземпляре EC2, поэтому я не уверен, почему это не работает, когда я пытаюсь это сделать сейчас.

Знаете ли вы, почему это происходит, и что я могу сделать, чтобы это исправить?

1 ответ

Я смог помочь Крейгу с этой конкретной проблемой, и это было сделано следующим образом:

Проблема в том, что метеор запускается с пользователем root (не рекомендуется)

Чтобы избавиться от этой проблемы, остановите серверы приложений, в данном случае это tomcat, с помощью команды:

      sudo systemctl stop tomcat.service

Необязательный шаг: просто сделайте это, если хотите из соображений безопасности .

  • cp -a local/home/ec2-user/meteor_local_copy

Перейдите в папку вашего проекта:

  • cd myProject/.meteor/local
  • Предупреждать: удалять только /localкаталог (не /.meteor/local):
  • Нет проблем удалить, он будет создан заново:
    • sudo rm -rf ../myProject/.meteor/local

Теперь обновите свой метеор:

      meteor update

Подождите, пока не появится сообщение вроде этого:

"Установлено. Запустите "обновление метеора --выпуск 2.0" внутри определенного..."

В каталоге вашего проекта запустите:

      meteor npm rebuild

Снова запустите сервер приложений:

      systemctl start tomcat.service

Проверьте, решена ли проблема!

Другие вопросы по тегам