เมื่อคุณเรียกใช้composer update
ระบบปฏิบัติการจะตรวจสอบเส้นทางที่กำหนดค่าไว้และพยายามค้นหาไฟล์ปฏิบัติการที่มีชื่อนั้น
เมื่อทำงานphp composer update
ที่composer
สตริงจะถือว่าเป็นพารามิเตอร์เพื่อ PHP, ซึ่งไม่ได้ค้นหาในเส้นทางใด ๆ คุณต้องระบุเส้นทางแบบเต็มเพื่อเรียกใช้
การรันwhich composer
จะบอกให้คุณทราบว่าระบบปฏิบัติการพบตัวประมวลผลที่สามารถเรียกใช้งานได้จากที่ใดจากนั้นคุณเพียงแค่ใช้เส้นทางแบบเต็มในคำสั่ง PHP:
$>which composer
/usr/local/bin/composer
$>php -d memory_limit=512M /usr/local/bin/composer update
...
โปรดทราบว่า 512MB อาจน้อยเกินไป ความเข้าใจของฉันคือใช้เวลา 1GB ขึ้นไปอย่างมีความสุขขึ้นอยู่กับจำนวนการอ้างอิงที่คุณใช้และความหลากหลายของเวอร์ชันที่คุณอนุญาตในทางทฤษฎีกล่าวคือหากคุณอนุญาตให้ใช้ Symfony ~2.3
คุณจะทำให้ Composer จัดการกับเวอร์ชันที่เป็นไปได้มากกว่าเมื่อเทียบกับการใช้~2.7
.
โปรดทราบว่าการเรียกใช้ Composer บนเครื่องการผลิตไม่ใช่ความคิดที่ดีที่สุด คุณจะต้องมีสิทธิ์เข้าถึง Github อาจให้ข้อมูลรับรองการเข้าถึงติดตั้งเครื่องมือ VCS และคุณจะทำลายไซต์ของคุณได้อย่างง่ายดายหากเซิร์ฟเวอร์โฮสต์ระยะไกลออฟไลน์ระหว่างการอัปเดตของคุณ เป็นความคิดที่ดีกว่าในการใช้ Composer บนระบบการปรับใช้ที่ดำเนินการเตรียมการทั้งหมดจากนั้นย้ายไฟล์ทั้งหมดไปยังเซิร์ฟเวอร์ที่ใช้งานจริง
อัปเดต
ตอนนี้เป็นปี 2020 แล้วและวิธีการจัดการหน่วยความจำของ Composer ก็เปลี่ยนไปไม่น้อย สิ่งที่สำคัญที่สุดคือ Composer จะเพิ่มขีด จำกัด หน่วยความจำด้วยตัวเองหากพบว่าขีด จำกัด ที่ตั้งไว้ต่ำเกินไป อย่างไรก็ตามสิ่งนี้ทำให้เกิดปัญหาหน่วยความจำในเครื่องที่ติดตั้งหน่วยความจำน้อยเกินไปในทันที คุณสามารถทำให้ Composer ใช้หน่วยความจำน้อยลงได้โดยตั้งค่าตัวแปรสภาพแวดล้อมเช่นCOMPOSER_MEMORY_LIMIT=512M
นี้ แต่จะสร้างปัญหาหาก Composer ต้องการหน่วยความจำเพิ่มเติมเพื่อให้ทำงานได้อย่างถูกต้อง
ประเด็นหลักของฉันยังคงเป็นจริง: อย่าเรียกใช้ Composer บนเครื่องที่ติดตั้งหน่วยความจำน้อยเกินไป คุณอาจต้องการหน่วยความจำว่าง 1.5 GB เพื่ออัปเดตทุกอย่าง
composer install
ก็เพียงพอแล้ว ในกรณีของคุณในขณะที่ใช้โฮสติ้งที่ใช้ร่วมกันฉันคิดว่าคุณจะไม่composer update
ทำงานดังนั้นวิธีเดียวคือซื้อโฮสติ้ง VPS เช่น Digital Ocean, Linode