Installation
Översikt
Aspose.Slides för PHP via Java körs i två processer. Ditt PHP‑script använder PHP‑klasser som skickar varje anrop via PHP/Java Bridge till Aspose.Slides, som körs på Java inne i Apache Tomcat. Denna artikel förklarar hur du konfigurerar båda sidorna, installerar paketet med Composer och kör ett kort skript för att verifiera installationen.
Förutsättningar
- PHP 7.0 to 8.3, med
allow_url_include = Oniphp.ini. Dina skript laddar broens klientbibliotek,Java.inc, från Tomcat via HTTP. På PHP 8.4 och senare avbryterJava.incmed felet ”end() expects exactly 1 argument” när PHP:sxml‑tillägg är laddat, och Windows‑byggnader av PHP laddar det alltid. - Composer.
- Java 8 or later. En JRE räcker.
- Apache Tomcat 9. PHP/Java Bridge är byggt på
javax.servlet‑API‑et, som Tomcat 10 och senare inte längre tillhandahåller, så bron startar inte där. - PHP/Java Bridge 7.2.1, den senaste releasen. Dess webbapplikation,
JavaBridge.war, körs i Tomcat.
Denna artikel kör Tomcat och dina PHP‑skript på samma dator. Aspose.Slides öppnar och sparar filer inuti Tomcat, så varje sökväg som dina skript skickar till den måste vara giltig där.
Installera på Linux
-
Installera PHP, Composer, Java och nedladdningsverktygen, och sätt sedan på
allow_url_includeför PHP‑kommandoraden: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();')" -
Hämta Apache Tomcat 9 och PHP/Java Bridge, placera broens
JavaBridge.wari Tomcatswebapps‑mapp och starta Tomcat. Tomcat packar upp WAR‑filen tillwebapps/JavaBridgenär den startas: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 -
Skapa en projektmapp och installera Aspose.Slides for PHP via Java från Packagist:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Stoppa Tomcat, kopiera Aspose.Slides‑JAR‑filen från paketet till broens
WEB-INF/lib‑mapp, ersätt broensJava.incmed PHP 8‑versionen från paketet och starta Tomcat igen:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/sv/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/sv/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shPå PHP 7 hoppar du över ersättningen av
Java.inc. Tomcat tar några sekunder att starta och måste vara igång när dina skript använder Aspose.Slides.
Installera på Windows
-
Installera PHP 8.3 för Windows och lägg till dess katalog i
PATH‑miljövariabeln. Kopieraphp.ini-productiontillphp.inii samma katalog. Iphp.ini, sättallow_url_include = Onoch avkommentera radernaextension_dir = "ext",extension=opensslochextension=zip. Composer behöveropensslför att hämta paket ochzipför att packa upp dem, såvida inte 7‑Zip är installerat eller ettunzip‑kommando finns iPATH. -
Installera Composer.
-
Installera Java och sätt
JAVA_HOME‑miljövariabeln till dess katalog. Tomcat startar inte utan den. -
I Kommandotolken, hämta Apache Tomcat 9 och PHP/Java Bridge, placera broens
JavaBridge.wari Tomcatswebapps‑mapp och starta Tomcat. Tomcats skript hittar Tomcat via variabelnCATALINA_HOME, så fortsätt använda samma Kommandotolks‑fönster för nästa steg. Tomcat packar upp WAR‑filen tillwebapps\JavaBridgenär den startas: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" -
Skapa en projektmapp och installera Aspose.Slides for PHP via Java från Packagist:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Stoppa Tomcat, kopiera Aspose.Slides‑JAR‑filen från paketet till broens
WEB-INF\lib‑mapp, ersätt broensJava.incmed PHP 8‑versionen från paketet och starta Tomcat igen:"%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"På PHP 7 hoppar du över ersättningen av
Java.inc. Tomcat tar några sekunder att starta och måste vara igång när dina skript använder Aspose.Slides.
Verifiera installationen
Spara detta skript som hello.php i projektmappen. Det skapar en presentation med en textruta och sparar den bredvid skriptet:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/sv/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();
}
Kör det från projektmappen:
php hello.php
Skriptet skriver hello.pptx, med en bild som innehåller textrutan. Utan licens visas dessutom en utvärderingsvattenstämpel; se Licensing.
Skriptet inkluderar aspose.slides.php direkt: Composers autoloader kan inte ladda dessa klasser, eftersom de alla definieras i den en enda filen. Det skickar även en absolut sökväg till save, eftersom Aspose.Slides körs inne i Tomcat och löser en relativ sökväg mot Tomcats arbetskatalog, inte ditt skripts.
FAQ
Hur kan jag verifiera att Aspose.Slides är korrekt integrerat?
Kör skriptet i Verifiera installationen. Om det skriver hello.pptx utan fel, fungerar PHP, PHP/Java Bridge och Aspose.Slides ihop.
Varför stoppar mitt skript med ”Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’”?
PHP kunde inte läsa in Java.inc från Tomcat. Om meddelandet före detta säger att http://‑omslaget är inaktiverat, sätt allow_url_include = On i den php.ini‑fil som ditt PHP‑kommandorad använder; php --ini visar vilken fil det är. Om det står ”Connection refused”, är Tomcat ännu inte igång: starta den eller vänta några sekunder tills den har startat.
Hur kan jag begränsa minnesförbrukningen när jag bearbetar stora presentationer?
Öka JVM‑minnesgränsen bara så mycket som behövs, och stäng varje Presentation‑instans i ett finally‑block för att snabbt frigöra cachen. Detta förhindrar out‑of‑memory‑fel och håller den totala minnesanvändningen förutsägbar under batch‑operationer.
Kan jag utesluta oönskade exportformat för att minska den slutgiltiga JAR‑storleken?
Aktuella Aspose.Slides‑releaser levereras som ett enda monolitiskt bibliotek, så du kan inte inaktivera specifika exporterare som PDF eller SVG vid byggtiden.