ไม่สามารถสร้างไดเร็กทอรีแคช .. หรือไดเร็กทอรีไม่สามารถเขียนได้ กำลังดำเนินการโดยไม่มีแคชใน Laravel


127

ฉันสร้างโครงการ Laravel ใหม่ เมื่อฉันไปที่เทอร์มินัลเพื่อติดตั้งการอ้างอิงcomposerจะแสดงคำเตือนต่อไปนี้:

Cannot create cache directory /home/w3cert/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache.


ดูเหมือนว่าผู้แต่งจะไม่มีสิทธิ์เขียนใน /home/w3cert/.composer/cache/ โฟลเดอร์
Amir Bar

2
สิ่งนี้อาจเกิดขึ้นหากคุณใช้งานsudo composer self-updateบน Linux เนื่องจาก~/.composerไดเรกทอรีนี้จะเป็นของเจ้าของrootในภายหลัง
caw

คำตอบ:


214

เปลี่ยนสิทธิ์กลุ่มสำหรับโฟลเดอร์

sudo chown -R w3cert /home/w3cert/.composer/cache/repo/https---packagist.org

และโฟลเดอร์ไฟล์ด้วย

sudo chown -R w3cert /home/w3cert/.composer/cache/files/

ฉันสมมติว่า w3cert เป็นชื่อผู้ใช้ของคุณหากไม่เปลี่ยนพารามิเตอร์ที่ 4 เป็นชื่อผู้ใช้ของคุณ

หากปัญหายังคงมีอยู่ให้ลอง

sudo chown -R w3cert /home/w3cert/.composer

ตอนนี้มีโอกาสที่คุณจะไม่สามารถสร้างไดเรกทอรีแอปของคุณได้หากเกิดขึ้นให้ทำเช่นเดียวกันกับโฟลเดอร์ html ของคุณหรือโฟลเดอร์ที่คุณพยายามสร้างโปรเจ็กต์ laravel ของคุณ

หวังว่านี่จะช่วยได้


14
ฉันเคยพบสิ่งนี้สองสามครั้ง แต่เพิ่งตระหนักว่านี่อาจเป็นผลมาจากการรันการอัปเดตตัวเองในฐานะ root: $ sudo composer self-update ซึ่งอาจเป็นสาเหตุที่ทำให้โฟลเดอร์ ~ / .composer และทั้งหมด เนื้อหาเปลี่ยนเจ้าของ เพียงแค่เลือก -R your ~ / .composer กลับมาหาตัวเอง
andkrup

10
ฉันแน่ใจว่าปัญหานี้เริ่มเกิดขึ้นทันทีหลังจากที่ฉันทำsudo composer self-update
Pratik

4
BTW, chown เปลี่ยนเจ้าของ, เพื่อเปลี่ยนกลุ่มด้วย, คุณต้องทำw3cert:w3cert( [OWNER][:[GROUP]])
Pratik

สิ่งนี้ช่วยฉันในการสร้างโครงการ หลังจากดำเนินการสองคำสั่งแรกทุกอย่างก็เรียบร้อย
rahul

ฉันไปที่.composer/ไดเร็กทอรีและsudo chown $USER -R /cacheนั่นช่วยได้
saggzz

271

เมื่อคุณติดตั้งนักแต่งเพลงค่อนข้างแน่ใจว่าคุณใช้$ sudoคำสั่งเพราะ~/.composerโฟลเดอร์นั้นถูกสร้างขึ้นโดยราก

เรียกใช้สิ่งนี้เพื่อแก้ไขปัญหา:

$ sudo chown -R $USER $HOME/.composer

54
แทนที่$USERด้วย$USER:$USERเพื่อแก้ไขไม่เพียง แต่ผู้ใช้เท่านั้น แต่ยังรวมถึงกลุ่มของโฟลเดอร์และเนื้อหาด้วย
caw

4

ให้สิทธิ์เข้าถึง. composer แก่ผู้ใช้อย่างเต็มที่

sudo chown -R 'user-name' /home/'user-name'/.composer

หรือ

sudo chmod 777 -R /home/'user-name'/.composer

user-name คือชื่อผู้ใช้ระบบของคุณ

เพื่อรับชื่อผู้ใช้ประเภท "whoami" ในเทอร์มินัล:

ใส่คำอธิบายภาพที่นี่


3

ฉันมีปัญหาเดียวกันในวันนี้ ลองมัน!

sudo chown -R  [yourgroup]  /home/[youruser]/.composer/cache/repo/https---packagist.org/


sudo chown -R  [yourgroup]   /home/[youruser]/.composer/cache/files/


1

เมื่อเร็ว ๆ นี้ฉันมีปัญหาคล้ายกันและจำเป็นต้องเปลี่ยนสิทธิ์ของโฟลเดอร์ผู้ขายของฉัน

โดยรันคำสั่งต่อไปนี้:

  1. php artisan cache:clear
  2. chmod -R 777 storage vendor
  3. composer dump-autoload

ฉันต้องการให้สิทธิ์ทั้งหมดที่จำเป็นในการเปิดและเขียนไฟล์ผู้ขายเพื่อแก้ปัญหานี้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.