我正在尝试使用pm2在服务器上部署应用程序。 当我尝试部署它时,我遇到了一些权限问题。
例如,我无法使用npm
全局安装某些东西,我无法运行apt-get install
,甚至无法运行"path"
,它应创建以下内容的“ workdir”项目...
这是我的配置,其中包含空白信息:
{
"apps": [
{
"name": "app",
"script": "scripts/start.js"
}
],
"deploy": {
"production": {
"user": "namedUser",
"host": ["**.**.**.**"],
"ref": "origin/master",
"repo": "git@github.com:***",
"path": "/var/www/production",
"pre-setup": "sudo apt-get install git nodejs npm; npm i -g yarn; yarn",
"post-setup": "ls -la",
"post-deploy": "yarn start"
}
}
}
但是pm2不能执行任何一个。
当我尝试在"pre-setup"
中安装某些东西时,我从npm(带有sudo的事件)中得到此错误:
checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! Linux 4.15.0-22-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "i" "-g" "yarn"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! path /usr/local/lib/node_modules/yarn
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/yarn'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules/yarn'
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules/yarn' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
当我删除除"path"
以外的所有我想安装的东西时,我得到了:
mkdir: cannot create directory '/var/www': Permission denied
答案 0 :(得分:1)
您需要将用户添加到sudo组,以使其能够使用“ sudo”。
# usermod -aG sudo username
您需要使用户成为“ / var / www”的所有者或所有者组。
# chown username /var/www/
,您需要fix npm permissions才能全局安装软件包。