Cài đặt
Tổng quan
Aspose.Slides for PHP via Java chạy trong hai tiến trình. Kịch bản PHP của bạn sử dụng các lớp PHP chuyển mọi lời gọi qua PHP/Java Bridge tới Aspose.Slides, chạy trên Java bên trong Apache Tomcat. Bài viết này giải thích cách thiết lập cả hai phía, cài đặt gói bằng Composer và chạy một kịch bản ngắn để xác nhận việc cài đặt.
Yêu cầu trước
- PHP 7.0 đến 8.3, với
allow_url_include = Ontrongphp.ini. Các kịch bản của bạn tải thư viện khách hàng của bridge,Java.inc, từ Tomcat qua HTTP. Trên PHP 8.4 trở lên,Java.incdừng lại với lỗi “end() expects exactly 1 argument” mỗi khi phần mở rộngxmlcủa PHP được tải, và bản dựng Windows của PHP luôn tải nó. - Composer.
- Java 8 hoặc mới hơn. Một JRE là đủ.
- Apache Tomcat 9. PHP/Java Bridge được xây dựng trên API
javax.servlet, mà Tomcat 10 trở lên không còn cung cấp, vì vậy bridge không khởi động được trên đó. - PHP/Java Bridge 7.2.1, bản phát hành mới nhất. Ứng dụng web của nó,
JavaBridge.war, chạy trong Tomcat.
Bài viết này chạy Tomcat và các kịch bản PHP của bạn trên cùng một máy tính. Aspose.Slides mở và lưu tệp bên trong Tomcat, vì vậy mọi đường dẫn mà kịch bản của bạn truyền cho nó đều phải hợp lệ ở đó.
Cài đặt trên Linux
Các lệnh này cài đặt mọi thứ trong thư mục home của bạn trên Ubuntu 24.04. Trên các bản phân phối khác, cài đặt các gói tương tự bằng trình quản lý gói của bản phân phối.
-
Cài đặt PHP, Composer, Java và các công cụ tải xuống, sau đó bật
allow_url_includecho dòng lệnh 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();')" -
Tải Apache Tomcat 9 và PHP/Java Bridge, đặt
JavaBridge.warcủa bridge vào thư mụcwebappscủa Tomcat, và khởi động Tomcat. Tomcat giải nén file WAR vàowebapps/JavaBridgekhi khởi động: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 -
Tạo thư mục dự án và cài đặt Aspose.Slides for PHP via Java từ Packagist:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Dừng Tomcat, sao chép file JAR Aspose.Slides từ gói vào thư mục
WEB-INF/libcủa bridge, thay thếJava.inccủa bridge bằng phiên bản PHP 8 từ gói, và khởi động lại Tomcat:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/vi/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/vi/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shTrên PHP 7, bỏ qua việc thay thế
Java.inc. Tomcat mất vài giây để khởi động, và nó phải chạy mỗi khi các kịch bản của bạn sử dụng Aspose.Slides.
Cài đặt trên Windows
-
Cài đặt PHP 8.3 cho Windows và thêm thư mục của nó vào biến môi trường
PATH. Sao chépphp.ini-productionthànhphp.initrong cùng thư mục. Trongphp.ini, đặtallow_url_include = Onvà bỏ chú thích các dòngextension_dir = "ext",extension=openssl, vàextension=zip. Composer cầnopensslđể tải gói, vàzipđể giải nén trừ khi đã cài đặt 7‑Zip hoặc có lệnhunziptrongPATH. -
Cài đặt Composer.
-
Cài đặt Java và đặt biến môi trường
JAVA_HOMEtrỏ tới thư mục của nó. Tomcat không khởi động nếu không có biến này. -
Trong Command Prompt, tải Apache Tomcat 9 và PHP/Java Bridge, đặt
JavaBridge.warcủa bridge vào thư mụcwebappscủa Tomcat, và khởi động Tomcat. Các script của Tomcat tìm Tomcat thông qua biếnCATALINA_HOME, vì vậy hãy tiếp tục dùng cùng một cửa sổ Command Prompt cho các bước tiếp theo. Tomcat giải nén file WAR vàowebapps\JavaBridgekhi khởi động: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" -
Tạo thư mục dự án và cài đặt Aspose.Slides for PHP via Java từ Packagist:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Dừng Tomcat, sao chép file JAR Aspose.Slides từ gói vào thư mục
WEB-INF\libcủa bridge, thay thếJava.inccủa bridge bằng phiên bản PHP 8 từ gói, và khởi động lại 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"Trên PHP 7, bỏ qua việc thay thế
Java.inc. Tomcat mất vài giây để khởi động, và nó phải chạy mỗi khi các kịch bản của bạn sử dụng Aspose.Slides.
Xác minh việc cài đặt
Lưu kịch bản này dưới tên hello.php trong thư mục dự án. Nó tạo một bản trình chiếu với một hộp văn bản và lưu nó bên cạnh kịch bản:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/vi/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();
}
Chạy nó từ thư mục dự án:
php hello.php
Kịch bản sẽ ghi hello.pptx, với một slide chứa hộp văn bản. Khi không có giấy phép, slide cũng sẽ hiển thị watermark đánh giá; xem Licensing.
Kịch bản bao gồm trực tiếp aspose.slides.php: trình tự động tải của Composer không thể tải các lớp này, vì chúng đều được định nghĩa trong một file duy nhất. Nó cũng truyền một đường dẫn tuyệt đối tới save, vì Aspose.Slides chạy bên trong Tomcat và giải quyết đường dẫn tương đối dựa trên thư mục làm việc của Tomcat, không phải của kịch bản của bạn.
Câu hỏi thường gặp
Làm sao tôi có thể xác minh rằng Aspose.Slides đã được tích hợp đúng?
Chạy kịch bản trong Xác minh việc cài đặt. Nếu nó ghi hello.pptx mà không có lỗi, PHP, PHP/Java Bridge và Aspose.Slides đang hoạt động cùng nhau.
Tại sao kịch bản của tôi dừng lại với lỗi “Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’”?
PHP không thể tải Java.inc từ Tomcat. Nếu thông báo trước đó cho biết trình bao http:// bị tắt, hãy đặt allow_url_include = On trong file php.ini mà dòng lệnh PHP của bạn tải; php --ini sẽ cho biết file đó là nào. Nếu thông báo là “Connection refused”, Tomcat chưa chạy: hãy khởi động nó, hoặc chờ vài giây cho đến khi nó sẵn sàng.
Làm sao tôi có thể giới hạn tiêu thụ bộ nhớ khi xử lý các bản trình chiếu lớn?
Tăng giới hạn bộ nhớ JVM chỉ lên mức cần thiết, và đóng mỗi đối tượng Presentation trong khối finally để giải phóng bộ nhớ cache kịp thời. Điều này ngăn lỗi hết bộ nhớ và giữ mức tiêu thụ bộ nhớ tổng thể ổn định trong các thao tác batch.
Tôi có thể loại bỏ các định dạng xuất không cần thiết để giảm kích thước JAR cuối cùng không?
Các phiên bản hiện tại của Aspose.Slides được phát hành dưới dạng một thư viện đơn khối, vì vậy bạn không thể tắt các trình xuất cụ thể như PDF hoặc SVG ở thời điểm biên dịch.