インストール
概要
Aspose.Slides for PHP via Java は 2 つのプロセスで実行されます。PHP スクリプトは PHP クラスを使用し、すべての呼び出しを PHP/Java Bridge 経由で Aspose.Slides に渡します。Aspose.Slides は Apache Tomcat 上の Java で動作します。本記事では、両側の設定方法、Composer でのパッケージインストール手順、インストール確認のための簡単なスクリプト実行方法を説明します。
前提条件
- PHP 7.0 から 8.3、
php.iniでallow_url_include = Onが設定されていること。スクリプトは Tomcat から HTTP 経由でブリッジのクライアントライブラリJava.incを読み込みます。PHP 8.4 以降では、xml拡張がロードされているとJava.incが「end() expects exactly 1 argument」というエラーで停止し、Windows ビルドの PHP は常にそれをロードします。 - Composer。
- Java 8 以上。JRE で構いません。
- Apache Tomcat 9。PHP/Java Bridge は
javax.servletAPI 上に構築されており、Tomcat 10 以降では提供されなくなるため、Bridge は起動しません。 - PHP/Java Bridge 7.2.1(最新リリース)。その Web アプリケーション
JavaBridge.warを Tomcat 上で実行します。
この手順では Tomcat と PHP スクリプトを同一マシン上で動かします。Aspose.Slides は Tomcat 内でファイルを開閉するため、スクリプトが渡すすべてのパスは Tomcat 側でも有効である必要があります。
Linux へのインストール
以下のコマンドは Ubuntu 24.04 のホームディレクトリにすべてをインストールします。他のディストリビューションでは、同等のパッケージをディストリビューションのパッケージマネージャでインストールしてください。
-
PHP、Composer、Java、ダウンロードツールをインストールし、PHP コマンドライン用に
allow_url_includeを有効化します:sudo apt-get update sudo apt-get install -y php-cli composer default-jre-headless curl unzip sudo sed -i 's/^allow_url_include = Off/allow_url_include = On/' "$(php -r 'echo php_ini_loaded_file();')" -
Apache Tomcat 9 と PHP/Java Bridge をダウンロードし、Bridge の
JavaBridge.warを Tomcat のwebappsフォルダーに配置して Tomcat を起動します。Tomcat は起動時に WAR ファイルをwebapps/JavaBridgeに展開します:cd ~ curl -fsSLO https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.122/bin/apache-tomcat-9.0.122.tar.gz tar -xzf apache-tomcat-9.0.122.tar.gz curl -fsSL -o php-java-bridge.zip "https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/php-java-bridge_7.2.1_documentation.zip/download" unzip -o php-java-bridge.zip JavaBridge.war -d apache-tomcat-9.0.122/webapps apache-tomcat-9.0.122/bin/startup.sh -
プロジェクトフォルダーを作成し、Packagist から Aspose.Slides for PHP via Java をインストールします:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Tomcat を停止し、パッケージから Aspose.Slides の JAR ファイルを Bridge の
WEB-INF/libフォルダーにコピーし、パッケージに含まれる PHP 8 用のJava.incに置き換えてから Tomcat を再起動します:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/ja/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/ja/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shPHP 7 を使用する場合は
Java.incの置き換えを省略してください。Tomcat の起動には数秒かかり、スクリプトが Aspose.Slides を使用するたびに実行中である必要があります。
Windows へのインストール
-
PHP 8.3 for Windows をインストールし、インストールフォルダーを
PATH環境変数に追加します。php.ini-productionを同フォルダーにコピーしてphp.iniとし、allow_url_include = Onを設定し、extension_dir = "ext"、extension=openssl、extension=zipの行のコメントを外します。Composer がパッケージをダウンロードする際にopensslが必要で、zipは 7‑Zip がインストールされていないかPATHにunzipコマンドがない場合に必要です。 -
Composer をインストールします。
-
Java をインストールし、
JAVA_HOME環境変数を Java のインストールフォルダーに設定します。これがないと Tomcat は起動しません。 -
コマンドプロンプトで Apache Tomcat 9 と PHP/Java Bridge をダウンロードし、Bridge の
JavaBridge.warを Tomcat のwebappsフォルダーに配置して Tomcat を起動します。Tomcat のスクリプトはCATALINA_HOME変数で Tomcat を検出するため、以降の手順は同じコマンドプロンプトウィンドウで続けてください。Tomcat は起動時に WAR ファイルをwebapps\JavaBridgeに展開します:cd %USERPROFILE% curl -fsSLO https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.122/bin/apache-tomcat-9.0.122-windows-x64.zip tar -xf apache-tomcat-9.0.122-windows-x64.zip set CATALINA_HOME=%USERPROFILE%\apache-tomcat-9.0.122 curl -fsSL -o php-java-bridge.zip "https://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_7.2.1/php-java-bridge_7.2.1_documentation.zip/download" tar -xf php-java-bridge.zip -C "%CATALINA_HOME%\webapps" JavaBridge.war "%CATALINA_HOME%\bin\startup.bat" -
プロジェクトフォルダーを作成し、Packagist から Aspose.Slides for PHP via Java をインストールします:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Tomcat を停止し、パッケージから Aspose.Slides の JAR ファイルを Bridge の
WEB-INF\libフォルダーにコピーし、パッケージに含まれる PHP 8 用のJava.incに置き換えてから Tomcat を再起動します:"%CATALINA_HOME%\bin\shutdown.bat" copy vendor\aspose\slides\jar\aspose-slides-*-php.jar "%CATALINA_HOME%\webapps\JavaBridge\WEB-INF\lib\" tar -xf vendor\aspose\slides\Java.inc.php8.zip -C "%CATALINA_HOME%\webapps\JavaBridge\java" "%CATALINA_HOME%\bin\startup.bat"PHP 7 を使用する場合は
Java.incの置き換えを省略してください。Tomcat の起動には数秒かかり、スクリプトが Aspose.Slides を使用するたびに実行中である必要があります。
インストールの確認
以下のスクリプトをプロジェクトフォルダーに hello.php として保存します。スクリプトはテキストボックスを 1 つ含むプレゼンテーションを作成し、スクリプトと同じフォルダーに保存します:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/ja/lib/aspose.slides.php");
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
$shape->getTextFrame()->setText("Hello, Aspose.Slides!");
$presentation->save(__DIR__ . "/hello.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
プロジェクトフォルダーから実行します:
php hello.php
スクリプトは hello.pptx を生成し、テキストボックスを含むスライドが 1 枚作成されます。ライセンスがない場合、スライドには評価用の透かしが表示されます。詳細は ライセンス を参照してください。
スクリプトは aspose.slides.php を直接インクルードしています。Composer のオートローダーはこれらのクラスをロードできません。これらのクラスはすべて同一ファイルに定義されているためです。また、save には絶対パスを渡しています。Aspose.Slides は Tomcat 内で実行され、相対パスは Tomcat の作業フォルダーに対して解決されるためです。
FAQ
Aspose.Slides が正しく統合されているかどうか、どのように確認できますか?
インストールの確認 のスクリプトを実行してください。エラーなく hello.pptx が生成されれば、PHP、PHP/Java Bridge、Aspose.Slides が正常に連携しています。
スクリプトが「Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’」で停止します。原因は何ですか?
Tomcat から Java.inc が読み込めません。エラーメッセージに http:// ラッパーが無効とある場合は、実行中の PHP が使用している php.ini で allow_url_include = On を設定してください。php --ini で使用中の設定ファイルを確認できます。メッセージが「Connection refused」の場合は Tomcat が起動していません。Tomcat を起動するか、起動完了まで数秒待ってから再度実行してください。
大容量のプレゼンテーションを処理する際のメモリ使用量を抑えるにはどうすればよいですか?
JVM のメモリ上限は必要最低限に設定し、Presentation インスタンスは finally ブロックで必ず close() してキャッシュを速やかに解放してください。これによりメモリ不足エラーを防ぎ、バッチ処理中のメモリ使用量を予測可能に保てます。
不要なエクスポート形式を除外して最終 JAR のサイズを小さくできますか?
現在の Aspose.Slides のリリースは単一のモノリシックライブラリとして配布されており、PDF や SVG など特定のエクスポート機能をビルド時に無効化することはできません。