نصب
Overview
Aspose.Slides for PHP via Java در دو فرآیند اجرا میشود. اسکریپت PHP شما از کلاسهای PHP استفاده میکند که هر فراخوانی را از طریق PHP/Java Bridge به Aspose.Slides میفرستند؛ این کتابخانه روی Java داخل Apache Tomcat اجرا میشود. این مقاله نحوه پیکربندی هر دو طرف، نصب بسته با Composer و اجرای یک اسکریپت کوتاه برای تأیید نصب را توضیح میدهد.
Prerequisites
- PHP 7.0 تا 8.3، با
allow_url_include = Onدرphp.ini. اسکریپتهای شما کتابخانه مشتری پل،Java.incرا از Tomcat از طریق HTTP بارگذاری میکنند. در PHP 8.4 و بالاتر،Java.incبا خطای «end() expects exactly 1 argument» متوقف میشود هر زمان که افزونهxmlPHP بارگذاری شود و نسخههای ویندوز PHP همیشه آن را بارگذاری میکند. - Composer.
- Java 8 یا بالاتر. یک JRE کافی است.
- Apache Tomcat 9. PHP/Java Bridge بر پایه API
javax.servletساخته شده است؛ Tomcat 10 و بالاتر این API را ارائه نمیدهند، بنابراین پل در آنجا اجرا نمیشود. - PHP/Java Bridge 7.2.1، آخرین نسخه منتشر شده. برنامه وب آن،
JavaBridge.war، در Tomcat اجرا میشود.
این مقاله Tomcat و اسکریپتهای PHP شما را بر روی همان کامپیوتر اجرا میکند. Aspose.Slides فایلها را داخل Tomcat باز و ذخیره میکند، بنابراین هر مسیری که اسکریپتهای شما به آن میدهند باید در آنجا معتبر باشد.
Install on 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 را دانلود کنید،
JavaBridge.warپل را در پوشهٔwebappsTomcat قرار دهید و 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 -
یک پوشهٔ پروژه ایجاد کنید و Aspose.Slides for PHP via Java را از Packagist نصب کنید:
mkdir ~/hello-slides cd ~/hello-slides composer require aspose/slides -
Tomcat را متوقف کنید، فایل JAR Aspose.Slides را از بسته به پوشهٔ
WEB-INF/libپل کپی کنید،Java.incپل را با نسخهٔ PHP 8 موجود در بسته جایگزین کنید و دوباره Tomcat را راهاندازی کنید:~/apache-tomcat-9.0.122/bin/shutdown.sh cp vendor/aspose/slides/fa/jar/aspose-slides-*-php.jar ~/apache-tomcat-9.0.122/webapps/JavaBridge/WEB-INF/lib/ unzip -o vendor/aspose/slides/fa/Java.inc.php8.zip -d ~/apache-tomcat-9.0.122/webapps/JavaBridge/java/ ~/apache-tomcat-9.0.122/bin/startup.shدر PHP 7، جایگزینی
Java.incرا نادیده بگیرید. Tomcat چند ثانیه طول میکشد تا شروع شود و هر زمان که اسکریپتهای شما از Aspose.Slides استفاده میکنند باید در حال اجرا باشد.
Install on Windows
-
PHP 8.3 for Windows را نصب کنید و پوشهٔ آن را به متغیر محیطی
PATHاضافه کنید.php.ini-productionرا بهphp.iniدر همان پوشه کپی کنید. درphp.iniمقدارallow_url_include = Onرا تنظیم کنید و خطوطextension_dir = "ext",extension=openssl, وextension=zipرا از حالت کامنت خارج کنید. Composer برای دانلود بستهها بهopensslنیاز دارد و برای استخراج آنها بهzipیا 7‑Zip یا دستورunzipرویPATHنیاز است. -
Composer را نصب کنید.
-
Java را نصب کنید و متغیر محیطی
JAVA_HOMEرا به پوشهٔ آن تنظیم کنید. بدون این متغیر Tomcat راهاندازی نخواهد شد. -
در Command Prompt، Apache Tomcat 9 و PHP/Java Bridge را دانلود کنید،
JavaBridge.warپل را در پوشهٔwebappsTomcat قرار دهید و Tomcat را راهاندازی کنید. اسکریپتهای Tomcat مسیر Tomcat را از متغیرCATALINA_HOMEمیخوانند، بنابراین برای مراحل بعدی از همان پنجرهٔ Command Prompt استفاده کنید. 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" -
یک پوشهٔ پروژه ایجاد کنید و Aspose.Slides for PHP via Java را از Packagist نصب کنید:
mkdir %USERPROFILE%\hello-slides cd %USERPROFILE%\hello-slides composer require aspose/slides -
Tomcat را متوقف کنید، فایل JAR Aspose.Slides را از بسته به پوشهٔ
WEB-INF\libپل کپی کنید،Java.incپل را با نسخهٔ PHP 8 موجود در بسته جایگزین کنید و دوباره 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 استفاده میکنند در حال اجرا باشد.
Verify the Installation
این اسکریپت را با نام hello.php در پوشهٔ پروژه ذخیره کنید. یک ارائه با یک جعبهٔ متن ایجاد میکند و در کنار اسکریپت ذخیره میشود:
<?php
require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once(__DIR__ . "/vendor/aspose/slides/fa/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 را مینویسد؛ این فایل یک اسلاید دارد که جعبهٔ متن در آن قرار دارد. بدون لایسنس، اسلاید همچنین دارای واترمارک ارزیابی است؛ به Licensing مراجعه کنید.
اسکریپت aspose.slides.php را بهصورت مستقیم شامل میشود: بارگذاریکنندهٔ Composer قادر به بارگذاری این کلاسها نیست، زیرا همهٔ آنها در یک فایل تعریف شدهاند. همچنین مسیر مطلق به save منتقل میشود، زیرا Aspose.Slides داخل Tomcat اجرا میشود و مسیرهای نسبی را نسبت به پوشهٔ کاری Tomcat حل میکند، نه نسبت به اسکریپت شما.
FAQ
چگونه میتوانم تأیید کنم که Aspose.Slides بهدرستی ادغام شده است؟
اسکریپت در بخش Verify the Installation را اجرا کنید. اگر بدون خطا فایل hello.pptx تولید شد، PHP، PHP/Java Bridge و Aspose.Slides بهدرستی با هم کار میکنند.
چرا اسکریپتم با پیام «Failed opening required ‘http://localhost:8080/JavaBridge/java/Java.inc’» متوقف میشود؟
PHP نتوانست Java.inc را از Tomcat بارگذاری کند. اگر پیش از آن پیام میگوید wrapper http:// غیرفعال است، در فایلی که خط فرمان PHP شما بارگذاری میکند allow_url_include = On تنظیم کنید؛ php --ini نشان میدهد کدام فایل بارگذاری میشود. اگر پیام «Connection refused» را دریافت کردید، Tomcat هنوز کار نمیکند: آن را راهاندازی کنید یا چند ثانیه صبر کنید تا شروع شود.
چگونه میتوان مصرف حافظه را هنگام پردازش ارائههای بزرگ محدود کرد؟
حدود حافظهٔ JVM را فقط به اندازهٔ لازم افزایش دهید و هر نمونهٔ Presentation را در بلوک finally بستن تا کش بهسرعت آزاد شود. این کار از خطاهای «out‑of‑memory» جلوگیری میکند و مصرف کلی حافظه را در عملیات دستهای پیشبینیپذیر میسازد.
آیا میتوان فرمتهای خروجی ناخواسته را برای کوچک کردن اندازهٔ نهایی JAR حذف کرد؟
نسخههای فعلی Aspose.Slides بهصورت یک کتابخانهٔ تکپاره توزیع میشوند؛ بنابراین نمیتوانید هنگام ساخت، خروجیهای خاصی مانند PDF یا SVG را غیرفعال کنید.