Instalacja
Przegląd
Aspose.Slides for PHP via Java działa w dwóch procesach. Twój skrypt PHP używa klas PHP, które przekazują każde wywołanie przez PHP/Java Bridge do Aspose.Slides, które działa na Javie w Apache Tomcat. Ten artykuł wyjaśnia, jak skonfigurować obie strony, zainstalować pakiet przy pomocy Composer i uruchomić krótki skrypt w celu weryfikacji instalacji.
Wymagania wstępne
- PHP 7.0 do 8.3, z
allow_url_include = Onwphp.ini. Twoje skrypty ładują bibliotekę kliencką mostuJava.incz Tomcata przez HTTP. W PHP 8.4 i nowszychJava.incprzestaje działać z błędem “end() expects exactly 1 argument”, gdy załadowane jest rozszerzeniexmlPHP, a wersje Windows PHP zawsze je ładują. - Composer.
- Java 8 lub późniejsza. Wystarczy JRE.
- Apache Tomcat 9. PHP/Java Bridge jest zbudowany na API
javax.servlet, którego Tomcat 10 i nowsze już nie zapewniają, więc most nie uruchamia się na nich. - PHP/Java Bridge 7.2.1, najnowsze wydanie. Jego aplikacja webowa
JavaBridge.wardziała w Tomcat.
Ten artykuł uruchamia Tomcat i Twoje skrypty PHP na tym samym komputerze. Aspose.Slides otwiera i zapisuje pliki wewnątrz Tomcata, więc każda ścieżka przekazywana przez Twoje skrypty musi być tam prawidłowa.
Instalacja w systemie Linux
Poniższe polecenia instalują wszystko w Twoim katalogu domowym na Ubuntu 24.04. Na innych dystrybucjach zainstaluj te same pakiety przy użyciu menedżera pakietów danej dystrybucji.
-
Zainstaluj PHP, Composer, Javę i narzędzia pobierania, a następnie włącz
allow_url_includedla wiersza poleceń PHP: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();')" -
Pobierz Apache Tomcat 9 i PHP/Java Bridge, umieść plik
JavaBridge.warmostu w kataloguwebappsTomcata i uruchom Tomcat. Tomcat rozpakowuje plik WAR dowebapps/JavaBridgepodczas uruchamiania: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 -
Utwórz katalog projektu i zainstaluj Aspose.Slides for PHP via Java z Packagist:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Zatrzymaj Tomcat, skopiuj plik JAR Aspose.Slides z pakietu do katalogu
WEB-INF/libmostu, zamieńJava.incmostu na wersję PHP 8 z pakietu i uruchom Tomcat ponownie:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/pl/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/pl/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shW PHP 7 pomiń zamianę
Java.inc. Tomcat potrzebuje kilka sekund na uruchomienie i musi być uruchomiony za każdym razem, gdy Twoje skrypty używają Aspose.Slides.
Instalacja w systemie Windows
-
Zainstaluj PHP 8.3 dla Windows i dodaj jego folder do zmiennej środowiskowej
PATH. Skopiujphp.ini-productiondophp.iniw tym samym folderze. Wphp.iniustawallow_url_include = Onoraz odkomentuj linieextension_dir = "ext",extension=openssliextension=zip. Composer potrzebujeopenssldo pobierania pakietów izipdo ich rozpakowywania, chyba że zainstalowano 7‑Zip lub dostępna jest komendaunzipwPATH. -
Zainstaluj Composer.
-
Zainstaluj Javę i ustaw zmienną środowiskową
JAVA_HOMEna jej katalog. Tomcat nie uruchomi się bez niej. -
W wierszu poleceń pobierz Apache Tomcat 9 i PHP/Java Bridge, umieść plik
JavaBridge.warmostu w kataloguwebappsTomcata i uruchom Tomcat. Skrypty Tomcata znajdują Tomcat poprzez zmiennąCATALINA_HOME, więc używaj tego samego okna wiersza poleceń w kolejnych krokach. Tomcat rozpakowuje plik WAR dowebapps\JavaBridgepodczas uruchamiania: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" -
Utwórz katalog projektu i zainstaluj Aspose.Slides for PHP via Java z Packagist:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Zatrzymaj Tomcat, skopiuj plik JAR Aspose.Slides z pakietu do katalogu
WEB-INF\libmostu, zamieńJava.incmostu na wersję PHP 8 z pakietu i uruchom Tomcat ponownie:"%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"W PHP 7 pomiń zamianę
Java.inc. Tomcat potrzebuje kilka sekund na uruchomienie i musi być uruchomiony za każdym razem, gdy Twoje skrypty używają Aspose.Slides.
Weryfikacja instalacji
Zapisz ten skrypt jako hello.php w katalogu projektu. Tworzy on prezentację z jednym polem tekstowym i zapisuje ją obok skryptu:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/pl/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();
}
Uruchom go z katalogu projektu:
php hello.php
Skrypt zapisuje hello.pptx z jedną slajdem zawierającym pole tekstowe. Bez licencji slajd zawiera znak wodny oceny; zobacz Licencjonowanie.
Skrypt ładuje aspose.slides.php bezpośrednio: autoloader Composer nie może załadować tych klas, ponieważ wszystkie są zdefiniowane w jednym pliku. Przekazuje on także ścieżkę bezwzględną do save, ponieważ Aspose.Slides działa w Tomcat i rozwiązuje ścieżkę względną względem katalogu roboczego Tomcata, a nie Twojego skryptu.
FAQ
Jak mogę zweryfikować, czy Aspose.Slides jest poprawnie zintegrowany?
Uruchom skrypt w Zweryfikuj instalację. Jeśli zapisze hello.pptx bez błędów, PHP, PHP/Java Bridge i Aspose.Slides działają razem.
Dlaczego mój skrypt przerywa z komunikatem “Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’”?
PHP nie mógł załadować Java.inc z Tomcata. Jeśli poprzednia wiadomość mówi, że wrapper http:// jest wyłączony, ustaw allow_url_include = On w pliku php.ini, który jest ładowany przez Twoją linię poleceń PHP; php --ini pokaże, który to plik. Jeśli pojawia się “Connection refused”, Tomcat jeszcze nie działa: uruchom go lub poczekaj kilka sekund, aż się uruchomi.
Jak mogę ograniczyć zużycie pamięci przy przetwarzaniu dużych prezentacji?
Podnoś limity pamięci JVM tylko tak wysoko, jak jest to potrzebne, i zamykaj każdą instancję Prezentacji w bloku finally, aby szybko zwolnić pamięć podręczną. Zapobiega to błędom „out‑of‑memory” i utrzymuje przewidywalne zużycie pamięci podczas operacji wsadowych.
Czy mogę wykluczyć niepotrzebne formaty eksportu, aby zmniejszyć ostateczny rozmiar JAR?
Obecne wydania Aspose.Slides są dystrybuowane jako jedna monolityczna biblioteka, więc nie możesz wyłączyć konkretnych eksporterów, takich jak PDF czy SVG, w czasie budowania.