- ubuntu16.04 64位
- php7.0.15
- phantomjs2.1.1
我使用下面的命令來運行phantomJS。phantomjs PHP執行sh文件
$result=exec("/usr/bin/phantomjs /var/Phantom/baidu.js 2>&1");
var_dump($result);
baidu.js
var page = require('webpage').create();
page.viewportSize = {
width: 1366,
height: 768
};
page.open('https://www.baidu.com/', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('baidu.png');
}
phantom.exit();
});
結果是string(21) "Aborted (core dumped)"
。
$cmd = 'unset DYLD_LIBRARY_PATH ;';
$cmd.= ' /usr/bin/phantomjs';
$cmd.= ' /var/Phantom/baidu.js';
$cmd='phantomjs -v';
exec($cmd.' 2>&1', $output);
var_dump($output);
輸出是array(4) { [0]=> string(44) "QXcbConnection: Could not connect to display" [1]=> string(61) "PhantomJS has crashed. Please read the bug reporting guide at" [2]=> string(64) " and file a bug report." [3]=> string(21) "Aborted (core dumped)" }
$result2=exec("sh /var/Phantom/publish.sh 2>&1");
var_dump($result2);
publish.sh
#!/bin/bash
echo $PATH
FILE_DIR="/var/data/Phantom"
BIN_DIR="/usr/bin"
DB_NAME="xxx"
BCK_DIR="/var/data/Phantom"
$BIN_DIR/phantomjs $FILE_DIR/baidu.js
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.sql
的resuult2是string(84) "mysqldump: [Warning] Using a password on the command line interface can be insecure."
(mysqldump的消息).Mysqldump已成功執行,但phantomjs失敗。
- 我運行在終端的命令 「phantomjs baidu.js」,成功渲染圖像。
- 我在終端中運行命令「sh publish.sh」,成功呈現圖像。
- 所有有關權限是「777」
我發現有人已經successed從PHP the link執行phantomjs,但我不能執行它,所以這裏是我的問題嗎?
我已經successed在exec中執行casperjs(「/ usr/local/bin/casperjs /var/www/test.js",$op,$er);'這裏有http://casperjs.org/ –
你能解決這個問題? – Vaviloff
是的,它成功 –