0
我想在Linux Web服務器上使用PHP運行PhantomJS。這最終將作爲一個cron作業運行,但現在我通過一個PHP腳本運行它,我通過FTP上傳到服務器。與PHP服務器端運行PhantomJS
PHP腳本:
$cmd = '/usr/local/bin/phantomjs /home/accountname/public_html/myscript.js';
$result = exec($cmd);
var_dump($result);
(請注意,我在路徑已更改的帳戶名以上「ACCOUNTNAME」爲保護隱私,這是我的真實腳本正確的 - 並從無數的複製其它PHP腳本,所有工作完美)
myscript.js內容:
console.log('Hello, world!');
phantom.exit();
輸出的結果是:
string(0) ""
我已經嘗試了很多例子來自PhantomJS網站上的我從來沒有得到任何輸出 - 無論是在屏幕上,在控制檯或爲創建截圖的PNG文件不會出現在正確的地方的例子 - 即使我正在指定確切的路徑。
我也嘗試返回PhantomJS版本和返回正確的版本:
$cmd = '/usr/local/bin/phantomjs --version';
$result = exec($cmd);
var_dump($result);
返回:
string(5) "1.9.2"
我知道,「執行」是不是在運行PHP的東西的一種安全的方式 - 但我只是試圖測試PhantomJS的工作開始,然後我們會調整一切安全工作。
任何想法?提前致謝。
這並不完全清楚。你是否直接運行myscript.js並輸出正確的字符串?你在什麼操作系統/平臺上? –
那麼,myscript.js有一個PhantomJS特定的調用「phantom.exit();」但如果我直接調用JS文件,那麼它是有效的。 如果我運行包含我的原始示例中顯示的代碼的PHP,並使用cron作業運行該腳本,那麼它工作正常。它只是從導致問題的瀏覽器中執行它。 我通過運行常規的cron作業來解決問題,並更新PHP以引用充當隊列的MySQL表來傳遞JS文件,並計劃何時需要此任務。 這是託管託管服務器運行CENTOS 5.11 –