Làm cách nào tôi có thể thiết lập và chạy PhantomJS trên Ubuntu?


163

Tôi đã thiết lập PhantomJS và ghi lại thành video: https://www.dailymotion.com/video/xnizmh_1_webcam

Hướng dẫn xây dựng: http : //ph Phantomjs.org/build.html

Có bất cứ điều gì sai trong thiết lập của tôi?

Sau khi tôi thiết lập xong, tôi đọc hướng dẫn bắt đầu nhanh và cố gắng viết mã này

phantomjs hello.js 

Nó cho tôi lỗi "lệnh không tìm thấy". Làm thế nào tôi có thể giải quyết vấn đề này?


đầu ra của phisomjs là gì?
Alex

Hãy thử câu trả lời này stackoverflow.com/questions/6448459/ph
Alex

nó cho tôi đầu ra "ph Phantomjs:"
FURKAN ILGIN

tôi đã thử nó cho tôi lỗi tương tự :(
FURKAN ILGIN

cảm ơn bạn tôi đã giải quyết vấn đề Vấn đề là tôi không có softlink cho chương trình của mình. Cảm ơn sự giúp đỡ của bạn :)
FURKAN ILGIN

Câu trả lời:


360

Câu trả lời của Guidouil đưa tôi đi đúng hướng. Tôi đã phải thêm một liên kết tượng trưng bổ sung vào / usr / bin / và tôi đã thực hiện liên kết trực tiếp cho cả 3 - xem bên dưới.

Tôi đang cài đặt trên máy chủ Ubuntu Natty Narwhal.

Đây chính xác là những gì tôi đã làm.

cd /usr/local/share
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/bin/phantomjs

Và cuối cùng khi tôi làm

phantomjs -v

Tôi nhận được 1.9.7

Nếu bất cứ ai nhìn thấy bất kỳ vấn đề với những gì tôi đã làm, xin vui lòng cho tôi biết.


7
nếu bạn cần liên kết sym cuối cùng đó là vì bạn không có / usr / local / bin trong PATH của bạn
DrewB

1
Điều này hoạt động, nhưng bất cứ ai cũng có thể giải thích cho tôi tại sao chúng ta không nên sao chép toàn bộ vào usr/binthay vì tạo một liên kết đến /usr/local?
Heisenberg

6
Bất cứ ai cũng được phép từ chối?
Người dùng

1
Đối với ph Phantomjs có sẵn từ bất kỳ thư mục nào, điều đó là đủ nếu bạn thêm một liên kết tượng trưng vào một trong các thư mục được liệt kê trong biến $ PATH của bạn. (chạy "echo $ PATH" để xem chúng là gì).
Khu bảo tồn Juampy

5
Tôi gặp vấn đề này: bin / ph Phantomjs: lỗi trong khi tải các thư viện dùng chung: libfontconfig.so.1: không thể mở tệp đối tượng dùng chung: Không có tệp hoặc thư mục như vậy. Tôi tìm thấy một sửa chữa ở đây . Chạy lệnh:sudo apt-get install libfontconfig
Neil Hoff

110

PhantomJS là vào npm . Bạn có thể chạy lệnh này để cài đặt nó trên toàn cầu:

npm install -g phantomjs-prebuilt  

phantomjs -v nên trở về 2.1.1


6
+1 trên Ubuntu phiên bản này cung cấp phiên bản 1.9.7trái ngược với 1.4.0.
opyate

1
+1 để sử dụng npmnhưng hãy xem câu trả lời của tôi
Fery Wardiyanto

1
Nếu bitbucket.org bị chặn bởi proxy của bạnnpm install phantomjs --phantomjs_cdnurl=http://cnpmjs.org/downloads
79E09796

1
Trên Ubuntu 14.04, điều này bây giờ mang lại cho tôi 2.1.1.
Joe Mornin

Trên Ubuntu 18.04 tôi gặp lỗi, tôi nên chạy nó dưới quyền root. Với sudonó hoạt động:sudo npm install -g phantomjs-prebuilt
rubo77

58

tải xuống từ trang web ph Phantomjs gói dựng sẵn: http ://ph Phantomjs.org/doad.html sau đó mở một thiết bị đầu cuối và đi đến thư mục Tải xuống

sudo mv phantomjs-1.8.1-linux-x86_64.tar.bz2 /usr/local/share/.
cd /usr/local/share/
sudo tar xjf phantomjs-1.8.1-linux-x86_64.tar.bz2
sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs/bin/phantomjs /usr/local/bin/phantomjs

sau đó để kiểm tra cài đặt phantomjs -vnên trở về1.8.1


Tại sao bạn tạo một liên kết thay vì sao chép dán trực tiếp?
Heisenberg

2
Tại sao bạn sao chép dán trực tiếp khi bạn có thể symlink? = /
Jared Markell

1
trên một Ubuntu mới cũng có cài đặt libfontconfig
Ryan Detzel

Tôi đã cài đặt ph Phantomjs trong thư mục người dùng của tôi. Selenium đã không làm việc với điều đó. Sau đó tôi đã chuyển ph Phantomjs đến /usr/local/sharevà tạo ra các liên kết tượng trưng này. Sau đó, nó hoạt động (mặc dù quyền truy cập tập tin là như nhau). Bất cứ ai có thể giải thích cho chuyên gia không phải linux này tại sao điều này làm cho một sự khác biệt?
Peter

38

Cài đặt từ trình quản lý gói:

sudo apt-get install phantomjs

2
Đáng buồn thay, bây giờ cài đặt 1.4, rất nhiều thứ sử dụng ph Phantom.js sẽ không hoạt động.
Julian Birch

@JulianBirch Vâng, tôi nghĩ rằng nếu bạn có trong Ubuntu Saucy Salamander (13.10), bạn có thể nhận được phiên bản 1.9.0 theo này [link] launchpad.net/ubuntu/+source/phantomjs , tôi chỉ cài đặt từ háo hức Ringtail (13,04) và tôi nhận được phiên bản 1.6.0, giống như nó cũng nói trong liên kết

3
Đã cài đặt 1.9.0 trên Ubuntu 14.04
Ionică Bizău

6
Nhưng tôi khuyên bạn nên cài đặt nó thông qua npm install -g phantomjs.
Ionică Bizău

1
Chỉ cần cài đặt. Bây giờ là 1.9.0.
Strabek

14

Dưới đây là các bước xây dựng mà tôi đã sử dụng (lưu ý các hướng dẫn này dành cho phiên bản 1.3. Xem bình luận cho câu trả lời này để biết hướng dẫn cài đặt của PhantomJS mới nhất):

sudo apt-get update
sudo apt-get install git-core
sudo apt-get install build-essential
sudo apt-get install libqt4-dev libqtwebkit-dev qt4-qmake
git clone git://github.com/ariya/phantomjs.git && cd phantomjs
git checkout 1.3
qmake-qt4 && make

Bây giờ cài đặt Xvfb

sudo apt-get install xvfb xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

Khởi chạy Xvfb:
Xvfb :23 -screen 0 1024x768x24 &

Bây giờ chạy ảo:
DISPLAY=:23 ./phantomjs hello.js


16
Các hướng dẫn này hiện đã lỗi thời, trong phiên bản hiện tại (1.5) không cần cài đặt qt hoặc xfvb. Xem code.google.com/p/ph
Phantomjs/wiki/Installation

2
Michel là chính xác, phiên bản mới nhất của ảo nên được sử dụng vì không yêu cầu màn hình ảo (Xvfb)
Vijay Boyapati

Câu trả lời từ Andre nhanh hơn và dễ dàng hơn đối với tôi.
fooMonster

12

Đối với phiên bản PhantomJS trên 1.5, hãy xem xét điều này (bản sao nguyên văn của hướng dẫn xây dựng trên trang web ảo):

Đối với Ubuntu Linux (đã được thử nghiệm trên bản cài đặt barebone của Ubuntu 10.04 Lucid Lynx và Ubuntu 11.04 Natty Narwhal):

sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.7
./build.sh

3
Tôi nghĩ rằng cần lưu ý (như trên trang web PhantomJS) rằng việc xây dựng từ nguồn có thể mất một thời gian rất dài (hàng giờ trên một máy nhỏ).
Whymarrh

1
Cũng cần lưu ý rằng câu trả lời này đã giải quyết vấn đề tôi gặp phải với ph Phantomjs khi sử dụng các nhị phân dựng sẵn không thành công. Phải mất khoảng 1 giờ để biên dịch trên lõi kép 2gb ub Ubuntu 10.04.
Keith John Hutchison

7

Đối với Ubuntu, bạn có thể sử dụng các phiên bản dựng sẵn có thể tải xuống từ trang PhantomJS .

Nếu bạn có một số thời gian nghiêm túc trong tay, bạn cũng có thể tự mình xây dựng nó . (Đây chính xác là thủ tục từ câu trả lời của Nikhil).

Những người ở PhantomJS khuyên bạn nên sử dụng nhị phân để tiết kiệm thời gian:

Cảnh báo: Việc biên dịch PhantomJS từ nguồn mất nhiều thời gian, chủ yếu là do hàng ngàn tệp trong mô-đun WebKit. Với 4 công việc biên dịch song song trên một máy hiện đại, toàn bộ quá trình mất khoảng 30 phút. Rất khuyến khích tải xuống và cài đặt gói nhị phân sẵn sàng nếu có sẵn.

Với một máy hiện đại, họ có nghĩa là> 4 lõi,> 8gb mem tôi nghĩ. Tôi đã thử nó trên một ví dụ vi AWS và đã bỏ cuộc sau 2 giờ.

Tóm lại: cài đặt các gói dựng sẵn từ trang PhantomJS theo hướng dẫn của họ.


4

Cá nhân tôi thích sử dụng npm(xem câu trả lời của Arnel Bucio )

sudo npm install -g phantomjs

nhưng! Tôi nhận thấy rằng một số npmmô-đun vẫn không thể xem nó là tệp thực thi toàn cầu.

nhập mô tả hình ảnh ở đây

vì thế!

  • Tạo /usr/share/phantomjs/liên kết thư mục mới

    cd /usr/share
    sudo ln -s ../lib/node_modules/phantomjs/lib/phantom phantomjs
    
  • Xóa /usr/bin/phantomjsliên kết thực thi cũ và tạo liên kết mới

    cd /usr/bin
    sudo mv phantomjs phantomjs.old
    sudo ln -s ../share/phantomjs .
    

1
Thực hiện các lệnh sau khi phá vỡ nó cho tôi trên Ubuntu 14.04. Hoạt động chỉ với npmcài đặt, và sudo apt-get install libfontconfigsau đó.
Akshat

4

trong bootstrap mơ hồ của tôi:

apt-get install -y build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
echo y | ./build.sh
ln -s /home/vagrant/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
cd ..

@artjom b: đây sẽ là một nhận xét tốt hơn là một chỉnh sửa. "Bạn không được quên đặt kết quả thực thi từ ./build.sh vào một thư mục nằm trong biến môi trường PATH. Điều này có thể được thực hiện thông qua symlink như trong ví dụ này."
rev

Bạn không được quên đặt kết quả thực thi từ ./build.shvào một thư mục nằm trong biến môi trường PATH. Điều này có thể được thực hiện thông qua symlink như trong ví dụ này.
Artjom B. 29/12/14

Đó là những gì tất cả các câu trả lời khác quên khi sử dụng build.sh. Tôi chỉ muốn cải thiện câu trả lời của bạn bằng cách làm cho thực tế đó rõ ràng hơn. Nếu bạn không muốn nó ở đó, tốt thôi.
Artjom B. 29/12/14

2

Tôi đã làm với điều này.

sudo apt-get update
sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.9
./build.sh


1

Từ trang web chính thức: trang ph Phantomjs

sudo apt-get install build-essential chrpath git-core libssl-dev libfontconfig1-dev
git clone git://github.com/ariya/phantomjs.git
cd phantomjs
git checkout 1.8
./build.sh

1

Đối với Ubuntu, tải xuống tệp phù hợp từ http://ph Phantomjs.org/doad.html . CD vào thư mục đã tải xuống. Sau đó:

sudo tar xvf phantomjs-1.9.0-linux-x86_64.tar.bz2
sudo mv phantomjs-1.9.0-linux-x86_64 /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs/bin/phantomjs /usr/bin/phantomjs

Đảm bảo thay thế tên tệp trong các lệnh này bằng tệp bạn đã tải xuống.


1

Hãy nhận biết điều này chắc chắn là một cách để làm điều đó:

$ sudo apt-get install phantomjs
$ phantomjs -v
1.6.0

Đáng buồn thay, nó cài đặt 1.6 và không phải là cái mới nhất, nhưng nó hoạt động cho mục đích của tôi.


Phiên bản cài đặt này 1.9.0-1bây giờ
Sean

1

Tôi biết điều này đã quá cũ, nhưng, chỉ cần tôi có ai đó nhận được câu hỏi này từ Google bây giờ, bạn có thể cài đặt nó bằng cách nhập apt-get install ph Phantomjs


Nó cài đặt X11
eozzy

0

Hoặc mới nhất - phiên bản 32 bit Linux

sudo wget http://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-i686.tar.bz2

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/local/share/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/local/bin/phantomjs

sudo ln -s /usr/local/share/phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/bin/phantomjs


0

Dưới đây là quy trình cài đặt của Julio Napurí https://gist.github.com/julionc

Phiên bản: 1.9.8

Nền tảng: x86_64

Đầu tiên, cài đặt hoặc cập nhật lên phần mềm hệ thống mới nhất.

sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev

Cài đặt các gói cần thiết bởi PhantomJS để hoạt động chính xác.

sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev

Lấy nó từ trang web PhantomJS.

cd ~
export PHANTOM_JS="phantomjs-1.9.8-linux-x86_64"
wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
sudo tar xvjf $PHANTOM_JS.tar.bz2

Sau khi tải xuống, di chuyển thư mục Phantomjs sang / usr / local / share / và tạo một liên kết tượng trưng:

sudo mv $PHANTOM_JS /usr/local/share
sudo ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin

Bây giờ, cần có PhantomJS đúng cách trên hệ thống của bạn.

phantomjs --version

0

Tôi đã tìm thấy cách đơn giản hơn - phụ thuộc Phantom + Npm

sudo apt-get update
sudo apt-get install build-essential chrpath libssl-dev libxft-dev
sudo apt-get install libfreetype6 libfreetype6-dev
sudo apt-get install libfontconfig1 libfontconfig1-dev

và npm

[sudo] npm install -g phantomjs

Làm xong.


0

Trên linux để chạy hello.js đừng quên thêm đường dẫn của hello.js:

ph Phantomjs YourPathToPh PhantomjsFolder / example / hello.js


0

Nếu bạn muốn sử dụng ph Phantomjs một cách dễ dàng, bạn có thể sử dụng nó tại ph Phantomjscloud.com Bạn có thể nhận được kết quả chỉ bằng yêu cầu http.


2
Đây không phải là những gì OP yêu cầu.
Sujal Mandal

Cảm ơn bình luận của bạn. Đó là lỗi của tôi
Shin Kim

0

Trên Ubuntu cho Windows, tôi thấy không apt-gethay npmphiên bản làm việc cho tôi. Những gì làm việc là kịch bản từ bình luận này .

Để dễ sử dụng, tôi đã dán toàn bộ vào một tập lệnh được gọi install_phantomjs.sh, làm cho nó có thể thực thi được ( chmod u+x install_phantomjs.sh) và sau đó chạy nó ( ./install_phantomjs.sh)


0

Đây là cách tôi đặt một phiên bản cụ thể của ph Phantomjs trong / usr / local / bin trên các thùng chứa docker của tôi.

curl -Ls https://github.com/Medium/phantomjs/releases/download/v1.9.19/phantomjs-1.9.8-linux-x86_64.tar.bz2 \
    | tar jxvf - --strip-components=2 -C /usr/local/bin/ ./phantomjs-1.9.8-linux-x86_64/bin/phantomjs

hoặc không có ./tùy thuộc vào hệ điều hành.

curl -Ls https://github.com/Medium/phantomjs/releases/download/v1.9.19/phantomjs-1.9.8-linux-x86_64.tar.bz2 \
    | tar jxvf - --strip-components=2 -C /usr/local/bin/ phantomjs-1.9.8-linux-x86_64/bin/phantomjs

0

Bạn có thể đứng dậy và chạy mà không cần sudohoặc npm. Chỉ cần tải xuống , giải nénthêm vào đường dẫn .

Điều này có thêm lợi thế là sao lưu dễ dàng nếu bạn có thói quen sao lưu toàn bộ thư mục nhà mà tôi rất khuyến khích. Điều này cũng hoạt động với bất kỳ phiên bản Linux nào.

➤  cd ~
➤  wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
➤  mkdir phantomjs
➤  tar xjf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C phantomjs
➤  echo 'export PATH="$PATH:$HOME/phantomjs/bin"' >> .profile
➤  source .profile
➤  phantomjs -v
2.1.1

Những nhược điểm là:

  1. Bạn sẽ cần phải nâng cấp thủ công
  2. Những người dùng khác sẽ không có quyền truy cập này.

Bạn có thể sử dụng tập lệnh shell rất đơn giản để cài đặt / nâng cấp

#!/bin/sh
# install_phantomjs.sh $VERSION

$VERSION = $1
printf "Downloading PhantomJS $VERSION...\n"
wget "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$VERSION-linux-x86_64.tar.bz2"

printf "Extracting PhantomJS $VERSION to ~/phantomjs...\n"
mkdir ~/phantomjs
tar xjf phantomjs-$VERSION-linux-x86_64.tar.bz2 -C ~/phantomjs

printf "Done! Make sure $HOME/phantomjs/bin is in your path.\n"

Hoặc trong Dockerfile

# Download and setup PhantomJS
ENV PHANTOMJS_VERSION 2.1.1
RUN curl -fSL "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2" -o /tmp/phantomjs.tar.bz2 && \
  mkdir ~/phantomjs && \
  tar xjf /tmp/phantomjs.tar.bz2 -C ~/phantomjs && \
  rm /tmp/phantomjs.tar.bz2
ENV PATH /home/$USERNAME/phantomjs/bin:$PATH

0

Đây là những gì tôi đã làm trên máy Ubuntu 16.04 của mình

sudo apt-get update
sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
sudo mv path/where/you/downloaded/phantomjs  /usr/bin

và cuối cùng khi tôi làm

phantomjs -v

Tôi nhận được 2.1.1

Sau khi đi qua tất cả các câu trả lời của chủ đề này. Tôi nghĩ rằng đây là giải pháp tốt nhất để cài đặt và chạy ph Phantomjs trong Ubuntu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.