The "installation" of PhantomJS is just adding its path to the PATH environment variable.
Running through php
Since you're using php, you would invoke PhantomJS from your php script like it is shown here where you need to provide the full path to the PhantomJS executable. You can also use putenv
to extend the PATH directly from php as seen here.
You can return something from the PhantomJS script in the $output
variable of exec
and then parse it.
Running through the webserver module
PhantomJS provides the web server module. You can write a script that listens for requests, creates the page
on request and returns the image. You would somehow run the script at startup or together with apache. It's also possible to write a wrapper so that you can run it as windows service. It may be possible to pass the requests through Apache so that the PhantomJS is not completely open to the outside.
Although this option is a little treacherous, because PhantomJS may fail and then you would need some kind of reviving mechanism. Your script may also run into a memory leak.
Returning the image
Both of the above options are agnostic to how you return the image. There are several possiblities.
- On request, create a random and unique filename and
render
the page into the file. You can then send the name of the file to the client which might request it afterwards. This needs two requests.
- On request, render the page through
renderBase64
to receive the plain image data. Now you can send this image data directly in the response and the client may put it into the DOM via data:
-URI.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…