2012-04-10 16 views
7

मुझे एहसास है कि "Running PhantomJS on Heroku" एक संबंधित लेकिन थोड़ा अलग सवाल है क्योंकि मैं एक नोड ऐप का उपयोग करने की कोशिश कर रहा हूं।phantomJS को node.js ऐप पर तैनात करें?

मुझे एक नोड ऐप के लिए एक कैस्परजेएस (phantomJS पर आधारित) स्क्रिप्ट तैनात करने में समस्या हो रही है। मैं मेरे ऐप की /bin निर्देशिका में PhantomJS 64-बिट द्विआधारी रखकर Heroku करने की तैनाती की कोशिश की है, लेकिन मैं निम्नलिखित त्रुटि मिलती है जब मैं PhantomJS चलाने का प्रयास:

phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory 

मैं क्या यह हो सकता है पढ़ा है से QtWebKit लाइब्रेरी स्थापित करके हल किया गया है, लेकिन Heroku में यह इंस्टॉल नहीं है। क्या कोई और होस्टिंग प्रदाता है जिसका उपयोग मैं कर सकता हूं जो इस पैकेज को हरोकू पर स्थापित करने का काम करेगा?

प्रासंगिक कोड:

app.get('/', function(request, response) { 
    var sys = require('sys') 
    var exec = require('child_process').exec; 
    var child; 

    //works but gives error while loading shared library libqtwebkit.so.4 
    child = exec("phantomjs --version | tr -d '\n'", function(error, stdout, stderr) { 
    sys.print('stdout: ' + stdout); 
    sys.print('stderr: ' + stderr + '\n'); 
    response.header('Content-Type', 'application/json'); 
    response.send('_testcb(stdout:' + stdout + '\nstderr:' + stderr + ')', 200); 
    if(error !== null) { 
     console.log('exec error: ' + error); 
    } 
    }); 
}); 

मैं Nodester पर बीटा परीक्षण के लिए साइन अप किया है लेकिन उनके प्रलेखन अभी भी बहुत इस बिंदु पर ही सीमित है।

संपादित करें: मैं इसे अपने नोड ऐप की मूल निर्देशिका में फ़ैंटॉमजेएस के lib फ़ोल्डर की प्रतिलिपि बनाकर काम करने में सक्षम था।

उत्तर

3

कॉपी अपने नोड एप्लिकेशन की मूल निर्देशिका तुम भी बिन या sbin में एक प्रतीक लिंक डालने की कोशिश कर सकते करने के लिए phantomjs की lib फ़ोल्डर महत्वपूर्ण यह है कि है ही खाते का उपयोग टर्मिनल से चलाने के लिए उस नोड पर चलता है । इसके अलावा, नोड-प्रेत एक अच्छा एनपीएम लाइब्रेरी है जिसे फ़ैंटोमज़ का उपयोग करने के लिए किया जाता है, एक बार जब आप इसे काम कर लेते हैं।

संबंधित मुद्दे