我有简单的流星js应用程序,我想在自己的服务器上部署它。我怎么能这样做。我尝试使用https://github.com/arunoda/meteor-up-legacy,但我收到的错误如下:
npm ERR! Linux 4.4.0-96-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "mup"
npm ERR! node v4.2.6
npm ERR! npm v3.5.2
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! mup@1.3.3 postinstall: `opencollective postinstall`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the mup@1.3.3 postinstall script 'opencollective postinstall'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the mup package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! opencollective postinstall
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs mup
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls mup
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/ambu/mymeteorprojects/dummy/npm-debug.log
npm ERR! code 1
由于我是新手,我对这些错误的含义并不了解。
答案 0 :(得分:1)
在开始使用为您完成所有工作的mup之前,您最好了解人们通常如何将应用部署到生产环境。
让我们假设你的应用被称为todos
并且它出现在/home/meteor-doge/todos
进入该目录:
cd /home/meteor-doge/todos/
构建可部署的应用
meteor build ../ --directory
在父目录中,您现在将找到一个捆绑目录:
cd ../
ls -ltr --> bundle
如果适用,请安装npm:
cd bundle/program/server && npm install
将捆绑目录复制到生产主机。
cp -R bundle /where/ever/necessary/
在生产主机中,设置所需的环境变量:
export MONGO_URL=mongodb://hostIP:port/dbName
export ROOT_URL=https://localhost
export PORT=3000
启动应用
/usr/bin/node /home/prod-server/path/to/bundle/main.js
如果一切顺利,您的应用将在您的生产服务器中运行,并且可以使用以下网址访问:http://<prod-ip>:3000
答案 1 :(得分:1)
您需要提供以下内容才能在不使用mup
包的情况下在远程服务器上安装Meteor应用程序。
NODE JS 4.8.4
已安装。
MONGO DB 3.2/3.4
已安装。
NGINX/APACHE
已安装并正在运行。
PM2
已安装。
我使用CentOS 7安装Meteor 1.5.0
第1步:
要创建特定于生产的可部署tarball,请运行以下命令。
meteor build --server-only .
注意:这将在项目文件夹中创建一个
project_name.tar.gz
文件。这是一个构建,缩小,压缩以供生产使用的tar文件,读取代码也不是用户友好的,因此不容易破解流星代码。
第2步:
您需要安装与您的meteor版本兼容的节点js的特定版本[在我的案例Meteor 1.5 with Node 4.8.4]
了解安装节点js CLICK HERE
的过程第3步:
您现在需要在服务器上使用mongo db,
sudo vi /etc/yum.repos.d/mongodb-org.repo
将以下内容粘贴到该文件中
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
按顺序运行Command,如下所示;
yum repolist
sudo yum install mongodb-org
service mongod start / service mongod stop
mongo
确保您创建
database_name
,user
,password
。
现在使用以下命令导出shell的变量。
export MONGO_URL="mongodb://username:password@127.0.0.1:27017/domain_name"
export ROOT_URL="http://localhost/"
export PORT=3000
第4步:
现在,由于安装了Node和npm,您可以使用命令pm2
轻松安装npm install pm2 -g
第5步:
将project_name.tar.gz
复制到您的服务器位置,运行命令tar -xzf
project_name.tar.gz
。
为您创建bundle
目录。转到bundle/programs/server
并执行命令npm install --production
。返回bundle/
目录并使用命令pm2 start -name "UID" main.js
运行pm2。这将显示如下内容;
[root@server ~]# cd /home/xyz/public_html/bundle/
[root@server bundle]# pm2 start --name "UID" main.js
[PM2] Starting /home/xyz/public_html/bundle/main.js in fork_mode (1 instance)
[PM2] Done.
┌──────┬──────┬────────┬───┬─────┬──────────┐
│ Name │ mode │ status │ ↺ │ cpu │ memory │
├──────┼──────┼────────┼───┼─────┼──────────┤
│ UID │ fork │ online │ 0 │ 0% │ 4.0 KB │
└──────┴──────┴────────┴───┴─────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app
您可以使用命令pm2 show 0
确认您的网站是否已启动,因为0是进程运行的索引。
您可以随时使用命令pm2 delete 0
或pm2 delete all
关闭站点以关闭pm2处理的所有进程。
如果您想监控网站的性能,可以运行命令pm2 monit
。
注意:
pm2 start ...
命令仅在bundle/
文件夹中运行,因为它会查找main.js
文件。
就是这样!应用程序在https://<hostip or name>:3000
上运行我努力实现上述所有内容并使网站在远程服务器上运行。