簡體   English   中英

如何在Linux Web服務器上運行Phantomjs

[英]How to Run Phantomjs on Linux Webserver

我正在嘗試將Phantomjs的可執行文件上傳到我的Web服務器上。 當前,wordpress已安裝在此服務器上,因此調用phantom將主要通過使用php函數來完成。 該服務器正在運行Linux x86_64,它與我下載的Phantom相同。 在我的一個wordpress模板文件中,我嘗試調用phantom並嘗試運行腳本,但是沒有回聲。 我知道javascript是正確的,因為它是提供的示例之一。 另外,Phantomjs文件具有足夠的運行權限。 因此,那里沒有問題。 這是我試圖用來使其正常工作的所有代碼。

<?php 
/* 
Template Name: Home Template
Description: Page template to show home page content.
*/

//phantom/phantomjs-directory/bin/phantomjs
//phantom/phantomjs-directory/examples/version.js

get_header(); 
?>
<?php 
echo exec('phantom/phantomjs-directory/bin/phantomjs phantom/phantomjs-directory/examples/version.js');
?>

被調用的腳本位於examples/而不是bin/一個目錄,可以在下面找到:

"use strict";
console.log('using PhantomJS version ' +
phantom.version.major + '.' +
phantom.version.minor + '.' +
phantom.version.patch);
phantom.exit();

根本沒有記錄或回聲。 為什么會這樣呢?

嘗試使用回聲和反引號。

echo `/phantom/phantomjs myscript.js`; 

以正確的方法exec的

exec('/phantom/phantomjs myscript.js', $response);
echo implode("<br>", $response);

無論如何,您首先應該通過SSH登錄到服務器並嘗試手動運行腳本來檢查腳本是否正常運行。 PhantomJS二進制文件可能與服務器處理器體系結構不匹配(x64與x86)。

還要注意二進制文件和腳本的路徑,最簡單的方法是使用絕對路徑。

我犯了幾個錯誤。 為我做到這一點的黃金代碼僅僅是這樣:

echo exec('/home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/bin/phantomjs /home/mainshee/public_html/wp-content/themes/twentyseventeen/phantom/phantomjs-directory/examples/version.js');

我犯的主要錯誤是路徑不精確。 您可能會認為僅包括已經在他所處位置的路徑就足夠了,但是我發現他們想要整個路徑。 開始完成。 我還確保我嘗試執行的每個文件都具有0755權限。 我采取的最后一項預防措施是使用scp上傳phantomjs文件夾而不是傳統方法。 這樣做是為了避免任何損壞(盡管我不確定最終是否會有所作為)。 希望這對其他人有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM