2013-09-25 20 views
11

Expressjを使用してノードアプリケーションを構築していますが、新しくインストールしたUbuntuでノードアプリケーションを実行しようとしています。 19)。端末内のアプリケーションを実行しようとしたときLinuxでノード(express)を実行するとエラーが発生する:spawn EACCES

は悲しいことに、しかし、私は次のエラーを取得しています:

Events.js:72 
    throw er; // unhandled 'error' event 

Error: spawn EACCES 

私はポート3000上で動作していると私はsudoを使用しています。私もrootとして試してみましたが、1024のしきい値を超える異なるポートで遊んでいました。

アプリはちょうど基本的なExpressjsであり、私はアプリのソケットを開くためのデフォルトの方法を使用しています:

app.listen(3000); 

任意のヘルプは高く評価されるように、私は、Linuxのnoobです。そのアプリケーションは、Windows上でちょうど素晴らしい作品です。

基本的なサーバコード:

var express = require('express') 
    , app = express() 
    , fs = require ('fs') 
    , lingua = require('lingua'); 

    process.env.NODE_ENV = 'development'; 

    app.configure(function(){ 
     app.set('view engine', 'jade'); 
     app.set('views', __dirname + '/views'); 
     app.setMaxListeners(100); 
     app.use(express.bodyParser()); 
     app.use(express.methodOverride()); 
     app.use(express.static(__dirname + '/public')); 
     app.use(express.favicon(__dirname + '/public/core/favicon.ico')); 
     app.use(lingua(app, { 
      defaultLocale: 'translation_', 
      storageKey: 'lang', 
      path: __dirname+'/public/translations/', 
      cookieOptions: { 
       httpOnly: false,   
       expires: new Date(Date.now(-1)), 
       secure: false 
      } 
     })); 
     app.use(app.router); 
     app.locals.pretty = true; 
    }); 

    app.configure('development', function(){ 
     app.enable('verbose errors'); 
     app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
    }); 

    app.configure('production', function(){ 
     app.disable('verbose errors'); 
     app.use(express.errorHandler()); 
    }); 

    require('./lib/routing/routing')(app,{ verbose: !module.parent }); 


    app.listen(3000); 

あなたがインストールすることで、自分でそれをテストすることができます:npm install mediacenterjs

+0

これはまだ 'require(http).createServer(app).listen(3000)' – Plato

+0

でテストされています。 – jansmolders86

+0

ああ私は引用符を忘れて申し訳ありません。私は以前のコメントをもう編集できませんが、 'require( 'http')。createServer(app).listen(3000)'と読みます。あなたはHTTPをインストールする必要はありません、その内蔵。 – Plato

答えて

17

私が正しくファイルのアクセス権を設定することによって、それを解決しました。

設定は読み取り/書き込みと実行の許可によって動作します。

sudo chmod -R a+rwx APPNAME/file 
+0

ファイル書き込みに関するeaccessエラー3の問題を修正しました。読み取りは完璧に機能しましたが、チェーン上のフォルダに対する権限が正しくありませんでした。 – gspatel

+3

これは問題を修正する可能性がありますが、サーバー上では巨大なセキュリティ上のリスクとなるすべてのユーザーにAPPNAMEを書き込み可能にします。 – gerasalus

+1

@gerasalus、あなたが正しいです、私はちょうどファイルの権利の設定に私の答えを変更しました。どちらもうまくいきました。ありがとう! – jansmolders86

関連する問題