Telepítés
Áttekintés
Az Aspose.Slides for PHP via Java két folyamatban fut. A PHP szkriptje PHP osztályokat használ, amelyek minden hívást a PHP/Java Bridge-en keresztül az Aspose.Slides-nek továbbítanak, amely Java alatt fut az Apache Tomcaton belül. Ez a cikk elmagyarázza, hogyan állítsa be mindkét oldalt, hogyan telepítse a csomagot a Composerrel, és hogyan futtasson egy rövid szkriptet a telepítés ellenőrzéséhez.
Előfeltételek
- PHP 7.0‑tól 8.3‑ig,
allow_url_include = Onbeállítással aphp.ini‑ban. A szkriptek a bridge klienskönyvtárát, aJava.inc‑t töltik be a Tomcat‑ról HTTP‑n keresztül. PHP 8.4‑től és újabb verzióknál aJava.incleáll a “end() expects exactly 1 argument” hibaüzenettel, ha a PHPxmlkiterjesztése be van töltve, és a Windows‑os PHP‑k mindig betöltik azt. - Composer
- Java 8 vagy újabb. A JRE elegendő.
- Apache Tomcat 9. A PHP/Java Bridge a
javax.servletAPI-ra épül, amelyet a Tomcat 10 és újabb verziók már nem biztosítanak, ezért a bridge ott nem indul el. - PHP/Java Bridge 7.2.1, a legújabb kiadás. A webalkalmazása, a
JavaBridge.war, a Tomcatban fut.
Ez a cikk a Tomcatot és a PHP szkripteket ugyanazon a számítógépen futtatja. Az Aspose.Slides a Tomcaton belül nyit és ment fájlokat, ezért minden útvonalnak, amelyet a szkriptek átadnak neki, érvényesnek kell lennie ott.
Telepítés Linuxon
Ezek a parancsok mindent a saját home könyvtárába telepítenek Ubuntu 24.04-en. Más disztribúciókon a csomagok telepítése a disztribúció csomagkezelőjével történik.
-
Telepítse a PHP‑t, a Composer‑t, a Javat és a letöltő eszközöket, majd kapcsolja be az
allow_url_includebeállítást a PHP parancssorhoz: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();')" -
Töltse le az Apache Tomcat 9‑et és a PHP/Java Bridge‑et, helyezze a bridge
JavaBridge.warfájlját a Tomcatwebappsmappájába, és indítsa el a Tomcatot. A Tomcat a WAR fájlt awebapps/JavaBridgemappába csomagolja ki indításkor: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 -
Hozzon létre egy projekt mappát, és telepítse az Aspose.Slides for PHP via Java‑t a Packagist oldalról:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Állítsa le a Tomcatot, másolja az Aspose.Slides JAR fájlt a csomagból a bridge
WEB-INF/libmappájába, cserélje le a bridgeJava.incfájlját a csomag PHP 8 verziójára, majd indítsa újra a Tomcatot:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/hu/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/hu/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shPHP 7‑nél hagyja ki a
Java.inccseréjét. A Tomcat néhány másodperc alatt elindul, és futnia kell, amikor a szkriptek az Aspose.Slides‑t használják.
Telepítés Windowson
-
Telepítse a PHP 8.3 for Windows verziót, és adja hozzá a mappáját a
PATHkörnyezeti változóhoz. Másolja aphp.ini-productionfájltphp.ini‑ra ugyanabban a mappában. Aphp.ini‑ban állítsa be azallow_url_include = Onértéket, és kommentálja ki aextension_dir = "ext",extension=opensslésextension=zipsorokat. A Composernek szüksége van azopenssl‑re a csomagok letöltéséhez, valamint azip‑re a kicsomagoláshoz, hacsak nincs telepítve 7‑Zip vagy nincsunzipparancs aPATH‑ban. -
Telepítse a Composer‑t.
-
Telepítse a Javat, és állítsa be a
JAVA_HOMEkörnyezeti változót a telepítési mappájára. A Tomcat enélkül nem indul el. -
A Parancssorban töltse le az Apache Tomcat 9‑et és a PHP/Java Bridge‑et, helyezze a bridge
JavaBridge.warfájlját a Tomcatwebappsmappájába, és indítsa el a Tomcatot. A Tomcat szkriptek aCATALINA_HOMEváltozón keresztül találják meg a Tomcatot, ezért a következő lépésekhez használja ugyanazt a Parancssor ablakot. A Tomcat a WAR fájlt awebapps\JavaBridgemappába csomagolja ki indításkor: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" -
Hozzon létre egy projekt mappát, és telepítse az Aspose.Slides for PHP via Java‑t a Packagist oldalról:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Állítsa le a Tomcatot, másolja az Aspose.Slides JAR fájlt a csomagból a bridge
WEB-INF\libmappájába, cserélje le a bridgeJava.incfájlját a csomag PHP 8 verziójára, majd indítsa újra a Tomcatot:"%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‑nél hagyja ki a
Java.inccseréjét. A Tomcat néhány másodperc alatt elindul, és futnia kell, amikor a szkriptek az Aspose.Slides‑t használják.
A telepítés ellenőrzése
Mentse el ezt a szkriptet hello.php néven a projekt mappában. Egy prezentációt hoz létre egy szövegdobozzal, és a szkript mellé menti azt:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/hu/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();
}
Futtassa a projekt mappából:
php hello.php
A szkript hello.pptx‑t ír ki, egy diával, amely a szövegdobozt tartalmazza. Licenc nélkül a dia egy értékelő vízjelet is visel; lásd a Licencelés oldalt.
A szkript közvetlenül tartalmazza a aspose.slides.php‑t: a Composer automatikus betöltője nem tudja betölteni ezeket az osztályokat, mivel mindegyik egyetlen fájlban van definiálva. Emellett abszolút útvonalat ad át a save metódusnak, mivel az Aspose.Slides a Tomcaton belül fut, és a relatív útvonalat a Tomcat munkakönyvtára ellenőrzéséhez oldja fel, nem a szkriptétől.
GYIK
Hogyan ellenőrizhetem, hogy az Aspose.Slides megfelelően integrálva van?
Futtassa a szkriptet a A telepítés ellenőrzése szekcióban leírtak szerint. Ha hello.pptx fájlt ír ki hiba nélkül, a PHP, a PHP/Java Bridge és az Aspose.Slides együttműködnek.
Miért áll le a szkript a „Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’” hibaüzenettel?
A PHP nem tudta betölteni a Java.inc fájlt a Tomcat‑ról. Ha az üzenet előtt azt jelzi, hogy a http:// wrapper le van tiltva, állítsa be az allow_url_include = On értéket abban a php.ini‑ban, amelyet a PHP parancssora használ; a php --ini megmutatja, melyik fájl az. Ha a hiba „Connection refused”, a Tomcat még nem fut: indítsa el, vagy várjon néhány másodpercet, amíg elindul.
Hogyan korlátozhatom a memóriafogyasztást nagy prezentációk feldolgozása közben?
Emelje csak annyira a JVM memória korlátját, amennyire szükség van, és minden Presentation példányt zárjon le egy finally blokkban a gyors gyorsítótár felszabadításáért. Ez megakadályozza a memória‑elfogyási hibákat, és a kötegelt műveletek során előre látható memóriahasználatot biztosít.
Kizárhatok-e nem kívánt exportformátumokat a végső JAR méretének csökkentése érdekében?
Az aktuális Aspose.Slides kiadások egyetlen monolitikus könyvtárként kerülnek szállításra, így nem lehet egyes exportereket, például a PDF‑et vagy az SVG‑t letiltani fordításkor.