PHP経由でPhantomJSを実行しようとしています。
コマンドラインから JavaScript ファイルを直接実行すると、正常に動作します。php render_html.php
exec() を実行するだけのコマンドラインで実行すると、正常に動作します。ただし、この php ファイルをブラウザで開いてみても、何も起こりません。反響するものすら何も返ってきません。
このテストはすべて、OS X と EC2 サーバーでローカルに実行しましたが、同じ結果が得られました。
(OPに代わって投稿)。
権限の問題だったようです。Apache は、他のユーザーとは少し異なる扱いを受ける可能性があります。標準のアクセス許可では、すべてのユーザーが PhantomJS アプリケーションにアクセスできますが、Apache ではアクセスできませんでした。
同様の問題を抱えている人は、この質問と回答をよく読んでください。
これは、私の特定のケース(Linuxサーバー上)に少し適応したソリューションです。sudoers ファイル (/etc/sudoers) を編集して、次の行を含めます。
apache ALL=NOPASSWD: /usr/bin/phantomjs
私はこれをemacsで行いました(読み取り専用ファイルの編集を有効にするCx Cq)。私はそれで問題がないようでしたが、sudoers の編集には visudo と呼ばれるものを使用することをお勧めします。Emacsは私のために働いたが、あなたはそれを調べる必要がある.
これにより、PhantomJS アプリのみに限定された sudo アクセスを許可することで、apache ユーザーに PhantomJS アプリへの明示的なアクセスを許可しました。
アクセス許可の問題である可能性があります。Web サーバーを実行しているユーザーに、phantomjs 実行可能ファイルを実行するアクセス許可があるかどうかを確認してください。