Không thể tạo thư mục bộ nhớ cache .. hoặc thư mục không thể ghi. Tiếp tục mà không có bộ nhớ cache trong Laravel


127

Tôi đã tạo một dự án Laravel mới. Khi tôi đi đến thiết bị đầu cuối để cài đặt các tệp phụ thuộc composersẽ hiển thị cảnh báo sau:

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


có vẻ như nhà soạn nhạc không có quyền ghi trong thư mục /home/w3cert/.composer/cache/
Amir Bar

2
Điều này cũng có thể xảy ra nếu bạn chạy sudo composer self-updatetrên Linux, vì ~/.composerthư mục sẽ thuộc quyền sở hữu rootsau đó.
caw

Câu trả lời:


214

Thay đổi quyền nhóm cho thư mục

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

và cả thư mục Tệp nữa

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

Tôi giả sử w3cert là tên người dùng của bạn, nếu không thay đổi tham số thứ 4 thành tên người dùng của bạn.

Nếu sự cố vẫn tiếp diễn, hãy thử

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

Bây giờ, có khả năng là bạn sẽ không thể tạo thư mục ứng dụng của mình, nếu điều đó xảy ra, hãy làm tương tự cho thư mục html của bạn hoặc thư mục bạn đang cố gắng tạo dự án laravel của mình.

Hi vọng điêu nay co ich.


14
Tôi đã gặp phải điều này một vài lần, nhưng chỉ nhận ra rằng đây có thể là hệ quả của việc chạy tự cập nhật dưới dạng root: $ sudo composer self-update, có thể là nguyên nhân tại sao thư mục ~ / .composer và tất cả nội dung của nó thay đổi chủ sở hữu. Chỉ cần cắt -R ~ / .composer của bạn trở lại với chính bạn
vàkrup

10
Tôi chắc chắn vấn đề này bắt đầu để tạo ra ngay sau khi tôi đã làmsudo composer self-update
Pratik

4
BTW, chown thay đổi chủ sở hữu, nhóm thay đổi quá, bạn phải làm w3cert:w3cert( [OWNER][:[GROUP]])
Pratik

Điều này đã giúp tôi trong việc tạo dự án. Sau khi thực hiện hai lệnh đầu tiên, mọi thứ diễn ra tốt đẹp.
rahul

Tôi đã vào .composer/thư mục và sudo chown $USER -R /cacheđiều đó đã giúp.
saggzz

270

Khi bạn cài đặt composer, chắc chắn bạn đã sử dụng $ sudolệnh vì ~/.composerthư mục được tạo bởi root.

Chạy cái này để khắc phục sự cố:

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

53
Thay thế $USERbằng $USER:$USERđể sửa không chỉ người dùng mà còn cả nhóm của thư mục và nội dung của nó.
caw

4

Cấp toàn quyền truy cập .composer cho người dùng.

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

hoặc là

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

user-name là tên người dùng hệ thống của bạn.

để nhận loại tên người dùng "whoami" trong terminal:

nhập mô tả hình ảnh ở đây


3

Tôi đã có cùng một vấn đề ngày hôm nay. Thử nó!

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


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

1

Sử dụng lệnh này:

sudo chown -R $USER ~/.composer/

1

Gần đây tôi đã gặp sự cố tương tự và cần thay đổi quyền của thư mục nhà cung cấp của mình

Bằng cách chạy các lệnh sau:

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

Tôi cần cung cấp tất cả các quyền cần thiết để mở và ghi tệp của nhà cung cấp để giải quyết vấn đề này


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.