私はLinuxを使用することに慣れていませんが、ほとんどのホスティング会社はその機能を無効にするので、PHP exec機能にアクセスするためにLinux vpsでslimerjsを試してみたいと思います。
xampp、vsftpd、xulrunner、xvfb、およびslimerjs(スタンドアロンバージョン)を正常にインストールしました。
次のコマンドを実行するとslimerjsが起動しますが、console.log関数のみが呼び出されます。
xvfb-run ./slimerjs hello.js
最初にsudoを追加しようとしましたが、結果は同じです。
上記のコマンドに対する「応答」は次のとおりです。
Hi
6 XSELINUXs still allocated at reset
SCREEN: 0 objects of 132 bytes = 0 total bytes 0 private allocs
DEVICE: 0 objects of 64 bytes = 0 total bytes 0 private allocs
CLIENT: 0 objects of 112 bytes = 0 total bytes 0 private allocs
WINDOW: 0 objects of 20 bytes = 0 total bytes 0 private allocs
PIXMAP: 2 objects of 8 bytes = 16 total bytes 0 private allocs
GC: 4 objects of 8 bytes = 32 total bytes 0 private allocs
CURSOR: 0 objects of 4 bytes = 0 total bytes 0 private allocs
DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
TOTAL: 6 objects, 48 bytes, 0 allocs
2 PIXMAPs still allocated at reset
PIXMAP: 2 objects of 8 bytes = 16 total bytes 0 private allocs
GC: 4 objects of 8 bytes = 32 total bytes 0 private allocs
CURSOR: 0 objects of 4 bytes = 0 total bytes 0 private allocs
DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
TOTAL: 6 objects, 48 bytes, 0 allocs
4 GCs still allocated at reset
GC: 4 objects of 8 bytes = 32 total bytes 0 private allocs
CURSOR: 0 objects of 4 bytes = 0 total bytes 0 private allocs
DBE_WINDOW: 0 objects of 12 bytes = 0 total bytes 0 private allocs
TOTAL: 4 objects, 32 bytes, 0 allocs
./slimerjs: line 172: 4568 Aborted "$SLIMERJSLAUNCHER" -app $SLIMERDIR/application.ini $PROFILE -no-remote "$@" 2> /dev/null
/usr/bin/xvfb-run: line 171: kill: (4558) - No such process
hello.jsの内容です。
console.log("Hi");
var page = require("webpage").create();
console.log("Hi");
page.open("http://www.youtube.com/")
.then(function(status){
console.log("Hi");
if (status == "success") {
console.log("The title of the page is: "+ page.title);
}
else {
console.log("Sorry, the page is not loaded");
}
page.close();
setTimeout(function(){phantom.exit();},5000);
});
最初のconsole.logのみが実行されます。最初に10個の連続したconsole.logを追加すると、すべて実行されます。次のコードはこのsetTimeout
関数を実行しません。
console.log("Hi");
setTimeout(function(){console.log("Hi");});
要約すると、コードの実行中にconsole.log以外のエントリが見つかった場合はそこで停止します。
slimerjsを試す前にphantomjsを試してみましたが、うまくいきました! slimerjsに何が問題なのかわかりません。おそらくxvfbで実行したいからですか?
答え1
私はまた次を得ます:
./slimerjs: line 172: 4568 Aborted "$SLIMERJSLAUNCHER" -app $SLIMERDIR/application.ini $PROFILE -no-remote "$@" 2> /dev/null
私が走ることを覚えているまでexport SLIMERJSLAUNCHER=/usr/bin/firefox
。
Firefoxがインストールされている必要があります。