2016-07-20 20 views
0

私は基本的なNodeJSブログアプリケーションを構築しており、CentOS7 Minimal VPS(OpenVZはそうだと思います)でホストしています。サービスとして実行すると、NodeJSサイトに接続できません。

gitリポジトリからクローンを作成した後、適切なノードバージョンのMongoDBとnpmの依存関係を「npm install」にインストールしました。

コマンドラインから手動でサイトを構築して起動しても問題はありません。ウェブブラウザからサイトにアクセスして、すべてが機能していることを確認できます。

しかし、「sudo systemctl blog start」でサイトを開始しようとすると、何も起こりません。 'stytemctl blog status'は緑の「アクティブ(実行中)」のテキストを表示しますが、ブラウザでは接続できません。

chmod +x server.js 

:私は、このコマンドで実行可能server.jsをした

[Unit] 
Description=blog nodejs server 
After=network.target 

[Service] 
ExecStart=/var/www/Blog-Project/server.js 
Restart=always 
User=root 
Group=nobody 
Environment=PATH=/usr/bin:/usr/local/bin 
Environment=NODE_ENV=production 
WorkingDirectory=/var/www/Blog-Project 

[Install] 
WantedBy=multi-user.target 

ここ

[[email protected] Blog-Project]$ sudo systemctl status blog 
● blog.service - blog nodejs server 
    Loaded: loaded (/etc/systemd/system/blog.service; enabled; vendor preset: disabled) 
    Active: active (running) since Wed 2016-07-20 15:56:31 EST; 2min 52s ago 
Main PID: 12451 (server.js) 
    CGroup: /system.slice/blog.service 
      └─12451 /usr/bin/env /var/www/Blog-Project/server.js 

は/etc/systemd/system/blog.serviceから私の.serviceファイルです誰かが私が逃したかもしれない何かを考えることができますか?要求されたようserver.jsの

内容:

#!/bin/env node 

かのようにそれを実行します。

#!/usr/bin/env 
// Require packages 
var express = require('express'); 
var cors = require('cors'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var stormpath = require('express-stormpath'); 


var app = express(); 


// Middleware 
app.use(cors()); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded()); 
app.use(express.static(__dirname + '/views')); 
app.use('/images', express.static(__dirname + '/images')); 
...... etc., etc... 
+1

あなたのserver.jsには何がありますか?あなたのシステムが.jsファイルをnode.jsに関連付けるか、サービスファイルにノードパスを指定する必要がありますか? – leetibbett

+0

私はserver.jsファイルを追加しました。私は最初の行の最後に 'node'を残していることに気づいています。私は今試してみる。 –

+0

これは間違いなく解決策でした。何とか答えを教えてもらえますか?私はまだ新しいです。 –

答えて

2

あなたはこのように、それはNode.jsの下で実行する必要がありserver.jsに指定する必要があります。コマンドライン上のノードへのパラメータとしてスクリプト名を使用します。

関連する問題