2017-10-06 186 views
1

我正在使用Phantomjs,它不能正常工作。我生成從我的網頁上的PDF文件使用這個命令:phantomsjs在命令上工作,但不能與exec()PHP

/var/www/html/hor/js/phantomjs /var/www/html/hor/js/_generate.js 1234 

它運作良好,(它沒有找到UI-KIT js文件,我還沒有考慮這個問題),我有我的PDF在我的PDF目錄。但用我的PHP文件,我什麼都沒有。

命令或PHP都給人以的print_r()下列錯誤代碼:

TypeError: 'undefined' is not a valid argument for 'in' (evaluating 
'"default"in t') 

http://localhost/js/uikit.min.js:3 
http://localhost/js/uikit.min.js:3 
http://localhost/js/uikit.min.js:3 

(因此,在這兩種情況下的腳本已推出)

我的PHP腳本:

<?php 
    $token = $_GET['token']; 
    $simul_mail = $_GET['simulmail']; 

    $cmd = ' /var/www/html/hor/js/phantomjs'; 
    $cmd.= ' /var/www/html/hor/js/_generate.js'; 
    $cmd.= ' '.$token; 

    if(isset($_GET['simulmail'])&&isset($_GET['token'])){ 
     exec($cmd, $output); 
    } 
    print_r($output); 
?> 

我的_generate.js文件由phantomJS執行:

fs = require('fs'); 
system = require('system'); 
token = system.args[1]; 

if(token!=null && token!=""){ 

    fs.changeWorkingDirectory('/var/www/html/hor/pdf/'); 

    var page = new WebPage(); 
    var pagename = "PDF_"+token+".pdf"; 

    page.open('http://localhost/_template-mail.php?v='+token, function (status) { 
     page.render(pagename); 
     phantom.exit(); 
    }); 

} 
else{ 
    phantom.exit(); 
} 

我該怎麼辦?

回答

1

對於有同樣問題的人,這是一個關於權利的問題。

Apache無權寫入我的PDF文件夾。
帶有exec()的PhantomJS使用使用Apache的權利的PHP的權利。

如果Apache是​​該文件夾的所有者,那麼效果很好!

--> sudo chown <your username>:<your usergroup> -R <path to>/folder 
sudo chown apache -R /var/www/html/hor/pdf 
相關問題