การบีบอัด 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