การบีบอัด phar
phar เป็นไฟล์บีบอัดใน PHP ที่คล้ายกับ JAR คุณสามารถใช้ phar เพื่อบีบอัดโครงการ webman ของคุณเป็นไฟล์ phar เดียว ทำให้สะดวกต่อการปรับใช้
ขอขอบคุณอย่างมากต่อ fuzqing สำหรับ PR นะครับ
หมายเหตุ
ต้องปิดตัวเลือกการตั้งค่า phar ในphp.ini
โดยตั้งค่าphar.readonly = 0
ติดตั้งเครื่องมือบรรทัดคำสั่ง
composer require webman/console
การบีบอัด
ในไดเร็กทอรีหลักของโปรเจ็กต์ webman ให้ใช้คำสั่ง php webman build:phar
จะสร้างไฟล์ webman.phar
ในไดเร็กทอรี bulid
การตั้งค่าที่เกี่ยวข้องกับการบีบอัดอยู่ใน
config/plugin/webman/console/app.php
คำสั่งที่เกี่ยวข้องกับการเริ่มต้นและหยุด
เริ่มต้น
php webman.phar start
หรือ php webman.phar start -d
หยุด
php webman.phar stop
ตรวจสอบสถานะ
php webman.phar status
ตรวจสอบสถานะการเชื่อมต่อ
php webman.phar connections
รีสตาร์ท
php webman.phar restart
หรือ php webman.phar restart -d
คำอธิบาย
-
โครงการที่ถูกบีบอัดแล้วไม่สนับสนุนการรีโหลด การอัปเดตโค้ดต้องทำการรีสตาร์ท
-
เพื่อหลีกเลี่ยงขนาดไฟล์บีบอัดที่ใหญ่เกินไปซึ่งอาจใช้หน่วยความจำมากเกินไป คุณสามารถตั้งค่าใน
config/plugin/webman/console/app.php
ด้วยตัวเลือกexclude_pattern
และexclude_files
เพื่อไม่รวมไฟล์ที่ไม่จำเป็น -
หลังจากที่รัน webman.phar จะมีการสร้างไดเร็กทอรี runtime ในไดเร็กทอรีที่ webman.phar อยู่ เพื่อใช้ในการเก็บบันทึกและไฟล์ชั่วคราวอื่นๆ
-
หากโปรเจ็กต์ของคุณใช้ไฟล์ .env คุณต้องวางไฟล์ .env ไว้ในไดเร็กทอรีที่ webman.phar อยู่
-
หลีกเลี่ยงการเก็บไฟล์ที่ผู้ใช้อัปโหลดไว้ในไฟล์ phar เนื่องจากการเข้าถึงไฟล์ที่ผู้ใช้อัปโหลดด้วยโปรโตคอล
phar://
เป็นเรื่องที่อันตรายมาก (ช่องโหว่การไม่เป็นระเบียบของ phar) ไฟล์ที่ผู้ใช้อัปโหลดจะต้องถูกเก็บแยกต่างหากในดิสก์ที่อยู่นอกไฟล์ phar ดูรายละเอียดเพิ่มเติมด้านล่าง -
หากธุรกิจของคุณต้องการอัปโหลดไฟล์ไปยังไดเร็กทอรี public คุณต้องแยกไดเร็กทอรี public ออกมาเก็บในไดเร็กทอรีที่ webman.phar อยู่ ในกรณีนี้คุณต้องตั้งค่า
config/app.php
'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
ธุรกิจสามารถใช้ฟังก์ชันผู้ช่วย
public_path($ตำแหน่งไฟล์สัมพัทธ์)
เพื่อค้นหาตำแหน่งจริงของไดเร็กทอรี public -
โปรดทราบว่า webman.phar ไม่สนับสนุนการเปิดใช้งานกระบวนการที่กำหนดเองใน Windows