"Error: EACCES: permission denied" - running Meteor app (OHIF) on AWS EC2 Instance
"Error: EACCES: permission denied" - running Meteor app (OHIF) on AWS EC2 Instance
我正在 运行在 AWS EC2 实例(t2.medium
运行正在亚马逊 Linux 上安装 Meteor 应用程序(OHIF 的修改版本) 2).
尝试使用 meteor 或 运行 meteor 中的任何命令启动应用程序时,我看到以下错误。基于其他类似问题,我尝试了许多不同的方法,主要是使用 chown 将所有指定文件夹的所有权重新分配给 ec2-user
,但无论我尝试什么,我都会不断收到此 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-user
用户(我相信从大量谷歌搜索 / GitHub / Stack Overflow 是正确的状态,但我不确定)。我也重新安装了 meteor 看看这是否会改变权限,但没有成功。
该应用程序之前 运行 在此 EC2 实例上运行,所以我不确定为什么现在尝试时它不起作用。
你知道为什么会这样吗?我能做些什么来解决这个问题?
我能够帮助 Craig 解决这个具体问题,具体操作如下:
The problem is meteor runs with root user (not recommended)
要解决此问题,请停止应用程序服务器,在本例中为 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
等到出现这样的消息:
"Installed. Run 'meteor update --release 2.0' inside of a particular..."
在你的项目目录中运行:
meteor npm rebuild
再次启动应用服务器:
systemctl start tomcat.service
检查问题是否已解决!
我正在 运行在 AWS EC2 实例(t2.medium
运行正在亚马逊 Linux 上安装 Meteor 应用程序(OHIF 的修改版本) 2).
尝试使用 meteor 或 运行 meteor 中的任何命令启动应用程序时,我看到以下错误。基于其他类似问题,我尝试了许多不同的方法,主要是使用 chown 将所有指定文件夹的所有权重新分配给 ec2-user
,但无论我尝试什么,我都会不断收到此 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-user
用户(我相信从大量谷歌搜索 / GitHub / Stack Overflow 是正确的状态,但我不确定)。我也重新安装了 meteor 看看这是否会改变权限,但没有成功。
该应用程序之前 运行 在此 EC2 实例上运行,所以我不确定为什么现在尝试时它不起作用。
你知道为什么会这样吗?我能做些什么来解决这个问题?
我能够帮助 Craig 解决这个具体问题,具体操作如下:
The problem is meteor runs with root user (not recommended)
要解决此问题,请停止应用程序服务器,在本例中为 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
等到出现这样的消息:
"Installed. Run 'meteor update --release 2.0' inside of a particular..."
在你的项目目录中运行:
meteor npm rebuild
再次启动应用服务器:
systemctl start tomcat.service