Làm cách nào để cấp quyền lưu trữ trong laravel?

Đặt quyền truy cập tệp thích hợp cho bất kỳ ứng dụng web nào là một phần quan trọng của lưu trữ web. Trong hướng dẫn này, bạn sẽ tìm hiểu cách định cấu hình đúng quyền truy cập tệp trên ứng dụng Laravel được lưu trữ trên máy chủ web Ubuntu

Trước hết, Xác định tên người dùng mà máy chủ web đang chạy. Trong Ubuntu, cả Apache và Nginx đều sử dụng tài khoản www-data

Bây giờ thay đổi chủ sở hữu và chủ sở hữu nhóm cho tất cả các tệp và thư mục theo cách đệ quy

sudo chown -R www-data:www-data /path/of/laravel-app

Bây giờ đặt quyền 644 cho tất cả các tệp và 755 cho tất cả các thư mục. Để đặt quyền, chỉ cần thực hiện lệnh sau

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;

Để làm cho Laravel hoạt động bình thường, bạn cần cấp quyền đọc và ghi cho máy chủ web để lưu trữ, bộ đệm và bất kỳ thư mục nào khác. Vì vậy, hãy chạy các lệnh sau

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 

Bây giờ, ứng dụng Laravel của bạn đã được bảo mật với các quyền phù hợp. Nhưng vì tất cả các tệp đều có chủ sở hữu và chủ sở hữu nhóm đối với máy chủ web, bạn có thể gặp sự cố khi thay đổi qua FTP/sFTP. Để giải quyết vấn đề này, hãy thêm người dùng của bạn vào nhóm người dùng máy chủ web

sudo usermod -a -G www-data ubuntu

Vậy là xong và bây giờ chúng ta đã cấu hình thành công các quyền thích hợp cho ứng dụng Laravel của mình

Về cơ bản có hai cách để thiết lập quyền sở hữu và quyền của bạn. Bạn tự trao quyền sở hữu hoặc đặt máy chủ web làm chủ sở hữu của tất cả các tệp

Máy chủ web với tư cách là chủ sở hữu [cách mà hầu hết mọi người làm]

Giả sử

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
08 là người dùng máy chủ web của bạn

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

Nếu bạn làm điều đó, máy chủ web sở hữu tất cả các tệp và cũng là nhóm và bạn sẽ gặp một số sự cố khi tải tệp lên hoặc làm việc với tệp qua FTP, vì ứng dụng khách FTP của bạn sẽ được đăng nhập với tư cách là bạn chứ không phải máy chủ web của bạn, vì vậy hãy thêm

sudo usermod -a -G www-data ubuntu

Tất nhiên, điều này giả định rằng máy chủ web của bạn đang chạy dưới tên ____208 [mặc định của Homestead] và người dùng của bạn là ____51 [thật mơ hồ nếu bạn đang sử dụng Homestead]

Sau đó, bạn đặt tất cả các thư mục của mình thành 755 và các tệp của bạn thành 644

SET quyền đối với tệp

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 644 {} \;

SET quyền thư mục

________số 8

Người dùng của bạn là chủ sở hữu

Tôi muốn sở hữu tất cả các thư mục và tệp [nó giúp làm việc với mọi thứ dễ dàng hơn nhiều], vì vậy tôi làm

sudo chown -R my-user:www-data /path/to/your/laravel/root/directory

Sau đó, tôi cấp cho cả bản thân và máy chủ web quyền

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
0

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
1

Sau đó cấp cho máy chủ web quyền đọc và ghi vào bộ nhớ và bộ đệm

Cho dù bạn thiết lập nó theo cách nào, thì bạn cần cấp quyền đọc và ghi cho máy chủ web đối với

sudo usermod -a -G www-data ubuntu
2,
sudo usermod -a -G www-data ubuntu
3 và bất kỳ thư mục nào khác mà máy chủ web cũng cần tải lên hoặc ghi [tùy thuộc vào tình huống của bạn], vì vậy hãy chạy các lệnh từ bashy ở trên

Laravel cung cấp khả năng trừu tượng hóa hệ thống tệp mạnh mẽ nhờ gói Flysystem PHP tuyệt vời của Frank de Jonge. Tích hợp Laravel Flysystem cung cấp các trình điều khiển đơn giản để làm việc với các hệ thống tệp cục bộ, SFTP và Amazon S3. Thậm chí tốt hơn, thật đơn giản để chuyển đổi giữa các tùy chọn lưu trữ này giữa máy phát triển cục bộ và máy chủ sản xuất của bạn vì API vẫn giữ nguyên cho mỗi hệ thống

Cấu hình

Tệp cấu hình hệ thống tệp của Laravel được đặt tại ________ 143. Trong tệp này, bạn có thể định cấu hình tất cả các "đĩa" hệ thống tệp của mình. Mỗi đĩa đại diện cho một trình điều khiển lưu trữ và vị trí lưu trữ cụ thể. Các cấu hình ví dụ cho từng trình điều khiển được hỗ trợ được bao gồm trong tệp cấu hình để bạn có thể sửa đổi cấu hình để phản ánh tùy chọn lưu trữ và thông tin xác thực của mình

Trình điều khiển

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44 tương tác với các tệp được lưu trữ cục bộ trên máy chủ chạy ứng dụng Laravel trong khi trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45 được sử dụng để ghi vào dịch vụ lưu trữ đám mây S3 của Amazon

Lưu ý Bạn có thể định cấu hình bao nhiêu đĩa tùy thích và thậm chí có thể có nhiều đĩa sử dụng cùng một trình điều khiển

Trình điều khiển địa phương

Khi sử dụng trình điều khiển

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44, tất cả các hoạt động của tệp đều liên quan đến thư mục
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
47 được xác định trong tệp cấu hình
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của bạn. Theo mặc định, giá trị này được đặt trong thư mục
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
49. Do đó, phương pháp sau đây sẽ ghi vào
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
10

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
2

đĩa công cộng

Đĩa

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11 có trong tệp cấu hình
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của ứng dụng của bạn dành cho các tệp sẽ được truy cập công khai. Theo mặc định, đĩa
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11 sử dụng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44 và lưu trữ các tệp của nó trong
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
15

Để làm cho các tệp này có thể truy cập được từ web, bạn nên tạo một liên kết tượng trưng từ

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
16 đến
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
15. Việc sử dụng quy ước thư mục này sẽ giữ các tệp có thể truy cập công khai của bạn trong một thư mục có thể dễ dàng chia sẻ qua các lần triển khai khi sử dụng các hệ thống triển khai không có thời gian ngừng hoạt động như Envoyer

Để tạo liên kết tượng trưng, ​​bạn có thể sử dụng lệnh Artisan

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
18

Khi tệp đã được lưu trữ và liên kết tượng trưng đã được tạo, bạn có thể tạo URL tới tệp bằng trình trợ giúp

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
19

sudo usermod -a -G www-data ubuntu
2

Bạn có thể định cấu hình các liên kết tượng trưng bổ sung trong tệp cấu hình

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của mình. Mỗi liên kết được định cấu hình sẽ được tạo khi bạn chạy lệnh
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
18

sudo usermod -a -G www-data ubuntu
5

Điều kiện tiên quyết của trình điều khiển

Cấu hình trình điều khiển S3

Trước khi sử dụng trình điều khiển S3, bạn sẽ cần cài đặt gói Flysystem S3 thông qua trình quản lý gói Composer

sudo usermod -a -G www-data ubuntu
6

Thông tin cấu hình trình điều khiển S3 nằm trong tệp cấu hình

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
43 của bạn. Tệp này chứa một mảng cấu hình ví dụ cho trình điều khiển S3. Bạn có thể tự do sửa đổi mảng này với thông tin đăng nhập và cấu hình S3 của riêng mình. Để thuận tiện, các biến môi trường này khớp với quy ước đặt tên mà AWS CLI sử dụng

Cấu hình trình điều khiển FTP

Trước khi sử dụng trình điều khiển FTP, bạn cần cài đặt gói Flysystem FTP thông qua trình quản lý gói Composer

sudo usermod -a -G www-data ubuntu
8

Tích hợp Flysystem của Laravel hoạt động tốt với FTP; . Nếu bạn cần định cấu hình hệ thống tệp FTP, bạn có thể sử dụng ví dụ cấu hình bên dưới

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
4

Cấu hình trình điều khiển SFTP

Trước khi sử dụng trình điều khiển SFTP, bạn cần cài đặt gói Flysystem SFTP thông qua trình quản lý gói Composer

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
1

Tích hợp Flysystem của Laravel hoạt động tốt với SFTP; . Nếu bạn cần định cấu hình hệ thống tệp SFTP, bạn có thể sử dụng ví dụ cấu hình bên dưới

sudo usermod -a -G www-data ubuntu
9

Hệ thống tệp có phạm vi và chỉ đọc

Các đĩa có phạm vi cho phép bạn xác định một hệ thống tệp trong đó tất cả các đường dẫn được tự động thêm tiền tố vào một tiền tố đường dẫn nhất định. Trước khi tạo đĩa hệ thống tệp có phạm vi, bạn sẽ cần cài đặt gói Flysystem bổ sung thông qua trình quản lý gói Composer

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
4

Bạn có thể tạo một phiên bản có phạm vi đường dẫn của bất kỳ đĩa hệ thống tệp hiện có nào bằng cách xác định một đĩa sử dụng trình điều khiển

sudo usermod -a -G www-data ubuntu
95. Ví dụ: bạn có thể tạo một đĩa có phạm vi đĩa
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45 hiện có của bạn thành một tiền tố đường dẫn cụ thể, sau đó mọi thao tác tệp sử dụng đĩa được xác định phạm vi của bạn sẽ sử dụng tiền tố đã chỉ định

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
7

Đĩa "chỉ đọc" cho phép bạn tạo các đĩa hệ thống tệp không cho phép thao tác ghi. Trước khi sử dụng tùy chọn cấu hình

sudo usermod -a -G www-data ubuntu
97, bạn sẽ cần cài đặt gói Flysystem bổ sung thông qua trình quản lý gói Composer

sudo usermod -a -G www-data ubuntu
20

Tiếp theo, bạn có thể bao gồm tùy chọn cấu hình

sudo usermod -a -G www-data ubuntu
97 trong một hoặc nhiều mảng cấu hình của đĩa

Hệ thống tập tin tương thích Amazon S3

Theo mặc định, tệp cấu hình

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của ứng dụng chứa cấu hình đĩa cho đĩa
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45. Ngoài việc sử dụng đĩa này để tương tác với Amazon S3, bạn có thể sử dụng nó để tương tác với bất kỳ dịch vụ lưu trữ tệp tương thích với S3 nào, chẳng hạn như MinIO hoặc DigitalOcean Spaces

Thông thường, sau khi cập nhật thông tin đăng nhập của đĩa để khớp với thông tin đăng nhập của dịch vụ bạn định sử dụng, bạn chỉ cần cập nhật giá trị của tùy chọn cấu hình

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
41. Giá trị của tùy chọn này thường được xác định thông qua biến môi trường
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
42

sudo usermod -a -G www-data ubuntu
21

Lấy phiên bản đĩa

Mặt tiền

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43 có thể được sử dụng để tương tác với bất kỳ đĩa nào được định cấu hình của bạn. Ví dụ: bạn có thể sử dụng phương pháp
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44 trên mặt tiền để lưu hình đại diện trên đĩa mặc định. Nếu bạn gọi các phương thức trên mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43 mà không gọi phương thức
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
46 trước, thì phương thức đó sẽ tự động được chuyển vào đĩa mặc định

sudo usermod -a -G www-data ubuntu
22

Nếu ứng dụng của bạn tương tác với nhiều đĩa, bạn có thể sử dụng phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
46 trên mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43 để làm việc với các tệp trên một đĩa cụ thể

sudo usermod -a -G www-data ubuntu
23

Đĩa theo yêu cầu

Đôi khi bạn có thể muốn tạo một đĩa trong thời gian chạy bằng cách sử dụng một cấu hình nhất định mà không có cấu hình đó thực sự có trong tệp cấu hình

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của ứng dụng của bạn. Để thực hiện điều này, bạn có thể truyền một mảng cấu hình cho phương thức
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
71 của mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43

sudo usermod -a -G www-data ubuntu
24

Truy xuất tệp

Phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
72 có thể được sử dụng để truy xuất nội dung của tệp. Nội dung chuỗi thô của tệp sẽ được phương thức trả về. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" của đĩa

sudo usermod -a -G www-data ubuntu
25

Phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
73 có thể được sử dụng để xác định xem tệp có tồn tại trên đĩa không

sudo usermod -a -G www-data ubuntu
26

Phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
74 có thể được sử dụng để xác định xem một tệp có bị thiếu trong đĩa không

sudo usermod -a -G www-data ubuntu
27

Tải tập tin

Phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
75 có thể được sử dụng để tạo phản hồi buộc trình duyệt của người dùng tải xuống tệp tại đường dẫn đã cho. Phương thức
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
75 chấp nhận tên tệp làm đối số thứ hai cho phương thức, sẽ xác định tên tệp mà người dùng tải xuống tệp nhìn thấy. Cuối cùng, bạn có thể chuyển một mảng các tiêu đề HTTP làm đối số thứ ba cho phương thức

sudo usermod -a -G www-data ubuntu
28

URL tệp

Bạn có thể sử dụng phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
77 để lấy URL cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44, trình điều khiển này thường sẽ chỉ thêm
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
79 vào trước đường dẫn đã cho và trả về một URL tương đối cho tệp. Nếu bạn đang sử dụng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45, URL từ xa đủ điều kiện sẽ được trả về

sudo usermod -a -G www-data ubuntu
29

Khi sử dụng trình điều khiển

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44, tất cả các tệp có thể truy cập công khai phải được đặt trong thư mục
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
15. Hơn nữa, bạn nên tại
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
16 trỏ đến thư mục
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
15

Cảnh báo
Khi sử dụng trình điều khiển

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44, giá trị trả về của
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
77 không phải là mã hóa URL. Vì lý do này, chúng tôi khuyên bạn nên luôn lưu trữ các tệp của mình bằng các tên sẽ tạo URL hợp lệ.

URL tạm thời

Sử dụng phương pháp

sudo usermod -a -G www-data ubuntu
207, bạn có thể tạo các URL tạm thời cho các tệp được lưu trữ bằng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45. Phương thức này chấp nhận một đường dẫn và một phiên bản
sudo usermod -a -G www-data ubuntu
209 chỉ định khi nào URL sẽ hết hạn

sudo usermod -a -G www-data ubuntu
50

Nếu bạn cần chỉ định bổ sung, bạn có thể chuyển mảng tham số yêu cầu làm đối số thứ ba cho phương thức

sudo usermod -a -G www-data ubuntu
207

sudo usermod -a -G www-data ubuntu
51

Nếu bạn cần tùy chỉnh cách tạo các URL tạm thời cho một ổ đĩa lưu trữ cụ thể, bạn có thể sử dụng phương pháp

sudo usermod -a -G www-data ubuntu
211. Ví dụ: điều này có thể hữu ích nếu bạn có bộ điều khiển cho phép bạn tải xuống các tệp được lưu trữ qua đĩa thường không hỗ trợ URL tạm thời. Thông thường, phương thức này nên được gọi từ phương thức
sudo usermod -a -G www-data ubuntu
212 của nhà cung cấp dịch vụ

sudo usermod -a -G www-data ubuntu
52

Tùy chỉnh máy chủ URL

Nếu bạn muốn xác định trước máy chủ lưu trữ cho các URL được tạo bằng cách sử dụng mặt tiền ________ 443, bạn có thể thêm tùy chọn ________ 477 vào mảng cấu hình của đĩa

sudo usermod -a -G www-data ubuntu
53

Siêu dữ liệu tệp

Ngoài việc đọc và ghi tệp, Laravel cũng có thể cung cấp thông tin về chính tệp. Ví dụ: phương pháp

sudo usermod -a -G www-data ubuntu
215 có thể được sử dụng để lấy kích thước của tệp theo byte

sudo usermod -a -G www-data ubuntu
54

Phương thức

sudo usermod -a -G www-data ubuntu
216 trả về dấu thời gian UNIX của lần cuối cùng tệp được sửa đổi

sudo usermod -a -G www-data ubuntu
55

Đường dẫn tệp

Bạn có thể sử dụng phương pháp

sudo usermod -a -G www-data ubuntu
217 để lấy đường dẫn cho một tệp nhất định. Nếu bạn đang sử dụng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44, điều này sẽ trả về đường dẫn tuyệt đối tới tệp. Nếu bạn đang sử dụng trình điều khiển
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
45, phương thức này sẽ trả về đường dẫn tương đối tới tệp trong bộ chứa S3

sudo usermod -a -G www-data ubuntu
56

Lưu trữ tập tin

Phương pháp

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44 có thể được sử dụng để lưu trữ nội dung tệp trên đĩa. Bạn cũng có thể chuyển một PHP
sudo usermod -a -G www-data ubuntu
221 cho phương thức
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44, phương thức này sẽ sử dụng hỗ trợ luồng cơ bản của Flysystem. Hãy nhớ rằng, tất cả các đường dẫn tệp phải được chỉ định tương ứng với vị trí "gốc" được định cấu hình cho đĩa

sudo usermod -a -G www-data ubuntu
57

Viết không thành công

Nếu phương thức

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44 [hoặc các thao tác "ghi"] không thể ghi tệp vào đĩa, thì sẽ trả về
sudo usermod -a -G www-data ubuntu
224

sudo usermod -a -G www-data ubuntu
58

Nếu muốn, bạn có thể xác định tùy chọn

sudo usermod -a -G www-data ubuntu
225 trong mảng cấu hình của đĩa hệ thống tệp của mình. Khi tùy chọn này được xác định là
sudo usermod -a -G www-data ubuntu
226, các phương thức "ghi" chẳng hạn như
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44 sẽ đưa ra một phiên bản của
sudo usermod -a -G www-data ubuntu
228 khi thao tác ghi không thành công

Chuẩn bị và thêm vào tệp

Các phương thức

sudo usermod -a -G www-data ubuntu
229 và
sudo usermod -a -G www-data ubuntu
230 cho phép bạn ghi vào đầu hoặc cuối tệp

sudo usermod -a -G www-data ubuntu
59

Sao chép & Di chuyển tệp

Phương pháp

sudo usermod -a -G www-data ubuntu
231 có thể được sử dụng để sao chép tệp hiện có sang vị trí mới trên đĩa, trong khi phương pháp
sudo usermod -a -G www-data ubuntu
232 có thể được sử dụng để đổi tên hoặc di chuyển tệp hiện có sang vị trí mới

sudo usermod -a -G www-data ubuntu
60

Truyền phát tự động

Truyền tệp đến bộ lưu trữ giúp giảm đáng kể mức sử dụng bộ nhớ. Nếu bạn muốn Laravel tự động quản lý truyền trực tuyến một tệp nhất định đến vị trí lưu trữ của mình, bạn có thể sử dụng phương thức

sudo usermod -a -G www-data ubuntu
233 hoặc
sudo usermod -a -G www-data ubuntu
234. Phương pháp này chấp nhận phiên bản
sudo usermod -a -G www-data ubuntu
235 hoặc
sudo usermod -a -G www-data ubuntu
236 và sẽ tự động truyền tệp đến vị trí mong muốn của bạn

sudo usermod -a -G www-data ubuntu
61

Có một vài điều quan trọng cần lưu ý về phương pháp

sudo usermod -a -G www-data ubuntu
233. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục chứ không phải tên tệp. Theo mặc định, phương thức
sudo usermod -a -G www-data ubuntu
233 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức
sudo usermod -a -G www-data ubuntu
233 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mình

Các phương thức

sudo usermod -a -G www-data ubuntu
233 và
sudo usermod -a -G www-data ubuntu
234 cũng chấp nhận một đối số để chỉ định "khả năng hiển thị" của tệp được lưu trữ. Điều này đặc biệt hữu ích nếu bạn đang lưu trữ tệp trên ổ đĩa đám mây như Amazon S3 và muốn tệp có thể truy cập công khai thông qua các URL được tạo

sudo usermod -a -G www-data ubuntu
62

Tải lên tệp

Trong các ứng dụng web, một trong những trường hợp sử dụng phổ biến nhất để lưu trữ tệp là lưu trữ các tệp do người dùng tải lên như ảnh và tài liệu. Laravel giúp dễ dàng lưu trữ các tệp đã tải lên bằng cách sử dụng phương thức

sudo usermod -a -G www-data ubuntu
242 trên một phiên bản tệp đã tải lên. Gọi phương thức
sudo usermod -a -G www-data ubuntu
242 với đường dẫn mà bạn muốn lưu trữ tệp đã tải lên

sudo usermod -a -G www-data ubuntu
63

Có một vài điều quan trọng cần lưu ý về ví dụ này. Lưu ý rằng chúng tôi chỉ chỉ định tên thư mục, không phải tên tệp. Theo mặc định, phương thức

sudo usermod -a -G www-data ubuntu
242 sẽ tạo một ID duy nhất để dùng làm tên tệp. Phần mở rộng của tệp sẽ được xác định bằng cách kiểm tra loại MIME của tệp. Đường dẫn đến tệp sẽ được trả về bằng phương thức
sudo usermod -a -G www-data ubuntu
242 để bạn có thể lưu trữ đường dẫn, bao gồm tên tệp đã tạo, trong cơ sở dữ liệu của mình

Bạn cũng có thể gọi phương thức

sudo usermod -a -G www-data ubuntu
233 trên mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43 để thực hiện thao tác lưu trữ tệp tương tự như ví dụ trên

sudo usermod -a -G www-data ubuntu
64

Chỉ định tên tệp

Nếu bạn không muốn tên tệp được gán tự động cho tệp được lưu trữ của mình, bạn có thể sử dụng phương thức

sudo usermod -a -G www-data ubuntu
248, phương thức này nhận đường dẫn, tên tệp và đĩa [tùy chọn] làm đối số của nó

sudo usermod -a -G www-data ubuntu
65

Bạn cũng có thể sử dụng phương thức

sudo usermod -a -G www-data ubuntu
234 trên mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43, phương thức này sẽ thực hiện thao tác lưu trữ tệp giống như ví dụ trên

sudo usermod -a -G www-data ubuntu
66

Cảnh báo
Các ký tự unicode không in được và không hợp lệ sẽ tự động bị xóa khỏi đường dẫn tệp. Do đó, bạn có thể muốn làm sạch đường dẫn tệp của mình trước khi chuyển chúng sang các phương thức lưu trữ tệp của Laravel. Đường dẫn tệp được chuẩn hóa bằng phương pháp

sudo usermod -a -G www-data ubuntu
251.

Chỉ định một đĩa

Theo mặc định, phương pháp

sudo usermod -a -G www-data ubuntu
242 của tệp đã tải lên này sẽ sử dụng đĩa mặc định của bạn. Nếu bạn muốn chỉ định một đĩa khác, hãy chuyển tên đĩa làm đối số thứ hai cho phương thức
sudo usermod -a -G www-data ubuntu
242

sudo usermod -a -G www-data ubuntu
67

Nếu bạn đang sử dụng phương thức

sudo usermod -a -G www-data ubuntu
248, bạn có thể chuyển tên đĩa làm đối số thứ ba cho phương thức

sudo usermod -a -G www-data ubuntu
68

Thông tin tệp đã tải lên khác

Nếu bạn muốn lấy tên gốc và phần mở rộng của tệp đã tải lên, bạn có thể làm như vậy bằng cách sử dụng phương thức

sudo usermod -a -G www-data ubuntu
255 và
sudo usermod -a -G www-data ubuntu
256

sudo usermod -a -G www-data ubuntu
69

Tuy nhiên, hãy nhớ rằng các phương pháp

sudo usermod -a -G www-data ubuntu
255 và
sudo usermod -a -G www-data ubuntu
256 được coi là không an toàn, vì tên tệp và phần mở rộng có thể bị giả mạo bởi người dùng ác ý. Vì lý do này, bạn thường nên sử dụng các phương thức
sudo usermod -a -G www-data ubuntu
259 và
sudo usermod -a -G www-data ubuntu
260 để lấy tên và phần mở rộng cho tệp đã tải lên

sudo usermod -a -G www-data ubuntu
80

Hiển thị tệp

Trong tích hợp Flysystem của Laravel, "khả năng hiển thị" là sự trừu tượng hóa các quyền đối với tệp trên nhiều nền tảng. Các tệp có thể được khai báo

cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11 hoặc
sudo usermod -a -G www-data ubuntu
262. Khi một tệp được khai báo là
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11, bạn đang chỉ ra rằng những người khác thường có thể truy cập tệp đó. Ví dụ: khi sử dụng trình điều khiển S3, bạn có thể truy xuất URL cho tệp
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11

Bạn có thể đặt chế độ hiển thị khi ghi tệp qua phương thức

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
44

sudo usermod -a -G www-data ubuntu
81

Nếu tệp đã được lưu trữ, khả năng hiển thị của tệp có thể được truy xuất và đặt thông qua các phương thức

sudo usermod -a -G www-data ubuntu
266 và
sudo usermod -a -G www-data ubuntu
267

sudo usermod -a -G www-data ubuntu
82

Khi tương tác với các tệp đã tải lên, bạn có thể sử dụng các phương pháp

sudo usermod -a -G www-data ubuntu
268 và
sudo usermod -a -G www-data ubuntu
269 để lưu trữ tệp đã tải lên với khả năng hiển thị
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11

sudo usermod -a -G www-data ubuntu
83

Tệp cục bộ & Khả năng hiển thị

Khi sử dụng trình điều khiển

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
44,
cd /path/of/laravel-app
sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache 
11 chuyển thành quyền
sudo usermod -a -G www-data ubuntu
273 đối với thư mục và quyền
sudo usermod -a -G www-data ubuntu
274 đối với tệp. Bạn có thể sửa đổi ánh xạ quyền trong tệp cấu hình
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
48 của ứng dụng của mình

sudo usermod -a -G www-data ubuntu
84

Xóa tập tin

Phương thức

sudo usermod -a -G www-data ubuntu
276 chấp nhận một tên tệp hoặc một mảng tệp để xóa

sudo usermod -a -G www-data ubuntu
85

Nếu cần, bạn có thể chỉ định đĩa mà tệp sẽ bị xóa khỏi đó

sudo usermod -a -G www-data ubuntu
86

thư mục

Nhận tất cả các tệp trong một thư mục

Phương thức

sudo usermod -a -G www-data ubuntu
277 trả về một mảng gồm tất cả các tệp trong một thư mục nhất định. Nếu bạn muốn truy xuất danh sách tất cả các tệp trong một thư mục nhất định bao gồm tất cả các thư mục con, bạn có thể sử dụng phương thức
sudo usermod -a -G www-data ubuntu
278

sudo usermod -a -G www-data ubuntu
87

Nhận tất cả các thư mục trong một thư mục

Phương thức

sudo usermod -a -G www-data ubuntu
279 trả về một mảng gồm tất cả các thư mục trong một thư mục nhất định. Ngoài ra, bạn có thể sử dụng phương pháp
sudo usermod -a -G www-data ubuntu
280 để lấy danh sách tất cả các thư mục trong một thư mục nhất định và tất cả các thư mục con của nó

sudo usermod -a -G www-data ubuntu
88

Tạo một thư mục

Phương thức

sudo usermod -a -G www-data ubuntu
281 sẽ tạo thư mục đã cho, bao gồm mọi thư mục con cần thiết

sudo usermod -a -G www-data ubuntu
89

Xóa một thư mục

Cuối cùng, phương pháp

sudo usermod -a -G www-data ubuntu
282 có thể được sử dụng để xóa một thư mục và tất cả các tệp của nó

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
40

Hệ thống tập tin tùy chỉnh

Tích hợp Flysystem của Laravel cung cấp hỗ trợ cho một số "trình điều khiển" sẵn có; . Bạn có thể tạo trình điều khiển tùy chỉnh nếu bạn muốn sử dụng một trong những bộ điều hợp bổ sung này trong ứng dụng Laravel của mình

Để xác định hệ thống tệp tùy chỉnh, bạn sẽ cần bộ điều hợp Flysystem. Hãy thêm bộ điều hợp Dropbox do cộng đồng duy trì vào dự án của chúng ta

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
41

Tiếp theo, bạn có thể đăng ký trình điều khiển theo phương pháp

sudo usermod -a -G www-data ubuntu
212 của một trong những nhà cung cấp dịch vụ ứng dụng của bạn. Để thực hiện điều này, bạn nên sử dụng phương pháp
sudo usermod -a -G www-data ubuntu
284 của mặt tiền
sudo chown -R www-data:www-data /path/to/your/laravel/root/directory
43

sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
42

Đối số đầu tiên của phương thức

sudo usermod -a -G www-data ubuntu
284 là tên của trình điều khiển và đối số thứ hai là một bao đóng nhận các biến
sudo usermod -a -G www-data ubuntu
287 và
sudo usermod -a -G www-data ubuntu
288. Việc đóng cửa phải trả về một thể hiện của
sudo usermod -a -G www-data ubuntu
289. Biến
sudo usermod -a -G www-data ubuntu
288 chứa các giá trị được xác định trong
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
43 cho đĩa được chỉ định

Khi bạn đã tạo và đăng ký nhà cung cấp dịch vụ của tiện ích mở rộng, bạn có thể sử dụng trình điều khiển

sudo usermod -a -G www-data ubuntu
292 trong tệp cấu hình
sudo find /path/of/laravel-app -type f -exec chmod 644 {} \;
sudo find /path/of/laravel-app -type d -exec chmod 755 {} \;
43 của mình

Làm cách nào để cấp quyền lưu trữ trong laravel?

Thay đổi tất cả các quyền đối với tệp thành 644 . Thay đổi tất cả các quyền thư mục thành 755. Đối với bộ nhớ cache và bootstrap cache [các thư mục đặc biệt được laravel sử dụng để tạo và thực thi các tệp, không có sẵn từ bên ngoài], hãy đặt quyền thành 777, cho mọi thứ bên trong.

Làm cách nào để thay đổi quyền truy cập tệp laravel env từ 666 thành 777?

Đối với Windows, bạn cần phải nhấp chuột phải vào tệp và có một tab nơi bạn có thể sửa đổi các quyền . @aynber, dự án laravel của nó. Trong quá trình cài đặt, nó viết. chi tiết tệp env thông qua trình cài đặt cho cái này, nó đang yêu cầu thay đổi quyền thành 777, hãy đọc đúng và loại bỏ.

3 loại quyền là gì?

Các loại quyền . đọc, viết và thực thi . Người có quyền đọc có thể đọc nội dung của tệp hoặc liệt kê nội dung của thư mục.

Làm cách nào tôi có thể cấp quyền cho một thư mục trong PHP?

Hàm chmod[] PHP .
// Đọc và viết cho chủ sở hữu, không có gì cho những người khác. chmod["kiểm tra. txt",0600];
// Đọc và viết cho chủ sở hữu, đọc cho mọi người khác. chmod["kiểm tra. txt",0644];
// Mọi thứ cho chủ sở hữu, đọc và thực hiện cho mọi người khác. chmod["kiểm tra. txt",0755];

Chủ Đề