2017-10-06 6 views
1

Phantomjsを使用していますが、うまく動作しません。それは(私はまだ質問を検討していない、それはUIキットのjsファイルを見つけることができません)うまく動作phantomsjsはコマンドでは動作しますが、exec()では動作しませんPHP

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

と私は私のPDFの私のPDFを持っている:私は、このコマンドを使用して、私のWebページから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ファイル:

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 
関連する問題