बाइनरी पैकिंग
Webman प्रोजेक्ट को एक बाइनरी फ़ाइल में पैक करने का समर्थन करता है, जिससे Webman बिना PHP वातावरण के Linux सिस्टम पर चल सकता है।
नोट
पैक की गई फ़ाइल इस समय केवल x86_64 आर्किटेक्चर के Linux सिस्टम पर चलने के लिए समर्थित है, Windows और Mac सिस्टम का समर्थन नहीं है।
आपकोphp.ini
की phar कॉन्फ़िगरेशन विकल्प को बंद करना होगा, अर्थातphar.readonly = 0
सेट करें।
कमांड लाइन टूल स्थापित करें
composer require webman/console
पैकिंग
कमांड चलाएं
php webman build:bin
आप यह भी निर्दिष्ट कर सकते हैं कि किस PHP संस्करण के साथ पैक किया जाए, जैसे
php webman build:bin 8.1
पैकिंग के बाद build
डायरेक्टरी में एक webman.bin
फ़ाइल उत्पन्न होगी।
प्रारंभ करें
webman.bin
को Linux सर्वर पर अपलोड करें, और ./webman.bin start
या ./webman.bin start -d
का उपयोग करके प्रारंभ करें।
सिद्धांत
- सबसे पहले, स्थानीय Webman प्रोजेक्ट को एक phar फ़ाइल में पैक किया जाएगा।
- फिर, php8.x.micro.sfx को स्थानीय रूप से डाउनलोड किया जाएगा।
- php8.x.micro.sfx और phar फ़ाइल को एक बाइनरी फ़ाइल के रूप में संयोजित करें।
ध्यान देने योग्य बातें
- स्थानीय PHP संस्करण और पैकिंग संस्करण का मेल होना महत्वपूर्ण है, जैसे कि स्थानीय PHP 8.1 है, पैकिंग भी PHP 8.1 का उपयोग करें, ताकि संगतता की समस्या से बचा जा सके।
- पैकिंग PHP8 के स्रोत कोड को डाउनलोड करेगी, लेकिन इसे स्थानीय रूप से स्थापित नहीं करेगी, जिससे स्थानीय PHP वातावरण पर कोई प्रभाव नहीं पड़ेगा।
webman.bin
इस समय केवल x86_64 आर्किटेक्चर के Linux सिस्टम पर चलने के लिए समर्थित है, Mac सिस्टम पर यह समर्थित नहीं है।- पैक की गई परियोजना
reload
का समर्थन नहीं करती है, कोड अपडेट करने के लिए आपकोrestart
करके पुनः प्रारंभ करना होगा। - डिफ़ॉल्ट रूप से env फ़ाइल पैक नहीं की जाएगी (
config/plugin/webman/console/app.php
में exclude_files द्वारा नियंत्रित), इसलिए प्रारंभ करते समय env फ़ाइल कोwebman.bin
के समान डायरेक्टरी में रखना चाहिए। - चलाने के दौरान
webman.bin
所在目录 में एकruntime
डायरेक्टरी उत्पन्न होगी, जिसका उपयोग लॉग फ़ाइलों को संग्रहीत करने के लिए किया जाएगा। - इस समय
webman.bin
बाहरी php.ini फ़ाइल को नहीं पढ़ेगा, यदि आपको अनुकूलित php.ini की आवश्यकता है, तो कृपया/config/plugin/webman/console/app.php
फ़ाइल में custom_ini में सेट करें। - कुछ फ़ाइलों को पैक करने की आवश्यकता नहीं है, आप
config/plugin/webman/console/app.php
में उन्हें छोड़ सकते हैं, जिससे पैक की गई फ़ाइल की आकार को कम किया जा सके। - बाइनरी पैकिंग में swoole सहकारिता का उपयोग समर्थन नहीं करता है।
- उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को बाइनरी पैक में संग्रहित नहीं करना चाहिए, क्योंकि
phar://
प्रोटोकॉल के अंतर्गत उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों का संचालन करना बहुत खतरनाक है (phar अनुक्रमणिका दोष)। उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को पैक के बाहर अलग से संग्रहीत किया जाना चाहिए। - यदि आपके व्यवसाय को public डायरेक्टरी में फ़ाइलें अपलोड करने की आवश्यकता है, तो आपको public डायरेक्टरी को वेबमैन.bin所在目录 में स्वतंत्र रूप से रखना होगा, इस समय आपको
config/app.php
को निम्नलिखित अनुसार कॉन्फ़िगर करना होगा और फिर से पैक करना होगा।'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
अलग से स्थिर PHP डाउनलोड करें
कभी-कभी, आप केवल PHP वातावरण को तैनात नहीं करना चाहते हैं, बल्कि केवल एक PHP निष्पादन योग्य फ़ाइल की आवश्यकता है, कृपया स्थिर php डाउनलोड के लिए यहां क्लिक करें।
संकेत
यदि स्थिर PHP को php.ini फ़ाइल निर्दिष्ट करने की आवश्यकता है, तो कृपया निम्नलिखित कमांड का उपयोग करेंphp -c /your/path/php.ini start.php start -d
समर्थित विस्तार
Core, date, libxml, openssl, pcre, sqlite3, zlib, amqp, apcu, bcmath, calendar, ctype, curl, dba, dom, sockets, event, hash, fileinfo, filter, gd, gettext, json, iconv, SPL, session, standard, mbstring, igbinary, imagick, exif, mongodb, msgpack, mysqlnd, mysqli, pcntl, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, readline, redis, Reflection, shmop, SimpleXML, soap, sodium, sqlsrv, sysvmsg, sysvsem, sysvshm, tokenizer, xlswriter, xml, xmlreader, xmlwriter, xsl, zip, memcache, Zend OPcache
प्रोजेक्ट स्रोत
https://github.com/crazywhalecc/static-php-cli
https://github.com/walkor/static-php-cli