サーバーにインストールってどうやる?
まずはダウンロード
wkhtmltopdf をダウンロードしてきます。
Windows・Linux・OS X とそれぞれ、32bit/64bit の両方がありました。
私の場合は、Windowsでも実行してみたかったので、Windows 64bit と、サーバーに合わせて、 Linux 64bit の二つをダウンロードしました。
Windows版は、wkhtmltox-0.12.3_msvc2013-win64.exe というファイル名で、
Linux版は wkhtmltox-0.12.3_linux-generic-amd64.tar.xz というファイルでした。
レンタルサーバーが32bitか64bitかを調べるのには、SSH接続し、
$ uname –a
で確認。
インストール方法は?
インストールする方法や場所をググって調べました。
そうしたら、ほとんどが、ubuntu や Cent OS にインストールするものばかり!!
それで、設置場所は /usr/bin とか /usr/local/bin っていうのばかり!!!
私が、設置したいのはレンタルサーバー上です。
レンタルサーバーで、 /usr/bin や /usr/local/bin をいじらせてくれるの??という疑問を持ち、ダメ元でサーバーのサポートに質問。
結果は当然撃沈です。
さらに wkhtmltopdf をインストールしたいと伝えてあったので、「サポート対象外です。」、当たり前か・・・。
要は自分が pathを設定できればいいんだろ!と、SSH接続し
$ echo $PATH
で、PATHを確認。
すると、ユーザーアカウントエリア(私の契約している範囲内)で、フォルダは存在していないのにPATHに指定されているフォルダ名を発見。
こんな感じです。「ユーザーアカウントエリア/bin」
これなら、「PATHを設定しなくていいやっ」と思い、binフォルダを作成。そこに、 wkhtmltox-0.12.3_linux-generic-amd64.tar.xz を置きました。
実際にインストール
契約しているサーバーが二つあるので、両方で試しました。
片方のサーバーは、 tar.xz を解凍できましたが、もう片方は解凍できませんでした。
tar の オプションが無効だそうです。
いろいろ試しましたがダメ。
うまくいった方でテストです。
以前に説明したように、 wkhtmltox というフォルダが出来て、その中に実行ファイルがあるので、二つとも 「ユーザーアカウントエリア/bin」にコピーしました。
ライブラリーとかフォントとか必要みたいですが、うまくいった方のサーバーでは特に何もしなくてもすんなりいきました。
実際にコマンドで実行してみる
うまく動作するか、SSH接続の状態で、コマンドとして実行してみました。
その結果、うまく動作することが確認できました。
このサイトで実験です。
オプションがたくさんあるので、いろいろ指定してみましたがすべて実行結果(出力される画像)が異なりました。
コマンドラインでオプションを指定するのが面倒なので、PHPで実行してみることにしました。
PHPで実行してみる
PHPでは、exec で命令しました。
弊社のユーザーサイトでいろいろと試しましたが、うまく行く(実行結果がそれほど変わらない。安定している)サイトと、うまく行かないサイトに分かれました。
特にこのサイト(今ご覧になっているサイト)の実行結果が一番ひどい!!ガックリ来ました。
オプションや実行するブラウザによって、実行結果が異なる
PHPでは、URLやオプションを選択できる入力画面を作成し、実行!
実行してみたのは、URLはこのサイト(https://nfc-jp.net)で、
- デフォルト(標準):URL と 出力ファイル名のみの指定。
- 縦サイズ・横サイズを1400pxに指定し、さらに
- disable-smart-width
- no-stop-slow-scripts
- javascript-delay デフォルトの 200 と 120000の2種類(単位はms)
ということにしました。
本当は、こういう風に出てほしいんですが、しかし・・・
(ちなみにこの画像はPCのスクショです。)
長くなったので、実行結果の報告は次回です。