Quyền truy cập tập tin Laravel cho apache


1

Tôi đang cài đặt ứng dụng Laravel trên bản phân phối Centos 7. Tôi đang sử dụng PHP 7.2 và tôi đã cài đặt thành công apache và dự án của tôi.

Tôi đã có thể hiển thị trang giật gân Apache để hiển thị nhưng ngay khi tôi trỏ máy chủ ảo của mình vào thư mục công cộng laravel của tôi, tôi nhận được lỗi cấp phép tệp trong nhật ký apache2.

Tôi đã làm cho cả thư mục lưu trữ công cộng và lưu trữ của mình đều đọc / ghi / thực thi được trong một thời gian ngắn và tôi vẫn đang gặp lỗi.

Máy chủ ảo của tôi:

<VirtualHost *:80>

DocumentRoot /var/www/html/checkers/public

<Directory /var/www/html/checkers/public>
    Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

</VirtualHost>

Quyền của tôi (sau chmod 777 tạm thời trên công khai và bootstrap):

drwxr-xr-x. 13 root root   4096 Jul  6 03:16 .
drwxr-xr-x.  3 root root     22 Jul  6 03:16 ..
drwxr-xr-x.  6 root root    106 Jul  6 03:16 app
-rw-r--r--.  1 root root   1686 Jul  6 03:16 artisan
drwxrwxrwx.  3 root root     34 Jul  6 03:16 bootstrap
-rw-r--r--.  1 root root   1477 Jul  6 03:16 composer.json
-rw-r--r--.  1 root root 143918 Jul  6 03:16 composer.lock
drwxr-xr-x.  2 root root    247 Jul  6 03:16 config
drwxr-xr-x.  5 root root     72 Jul  6 03:16 database
-rw-r--r--.  1 root root    651 Jul  6 03:16 .env.example
drwxr-xr-x.  8 root root    198 Jul  6 03:22 .git
-rw-r--r--.  1 root root    111 Jul  6 03:16 .gitattributes
-rw-r--r--.  1 root root    155 Jul  6 03:16 .gitignore
-rw-r--r--.  1 root root   1022 Jul  6 03:16 package.json
-rw-r--r--.  1 root root   1134 Jul  6 03:16 phpunit.xml
drwxrwxrwx.  4 root root    116 Jul  6 03:16 public
-rw-r--r--.  1 root root   3675 Jul  6 03:16 readme.md
drwxr-xr-x.  5 root root     45 Jul  6 03:16 resources
drwxr-xr-x.  2 root root     75 Jul  6 03:16 routes
-rw-r--r--.  1 root root    563 Jul  6 03:16 server.php
drwxr-xr-x.  5 root root     46 Jul  6 03:16 storage
drwxr-xr-x.  4 root root     83 Jul  6 03:16 tests
drwxr-xr-x. 37 root root   4096 Jul  6 03:22 vendor
-rw-r--r--.  1 root root    549 Jul  6 03:16 webpack.mix.js

Các lỗi trong / etc / httpd / log / error_log:

[php7:error] [pid 9120] [client 192.168.10.1:46658] PHP Fatal error: 
Uncaught ErrorException:
file_put_contents(/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php):
failed to open stream: Permission denied in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122\nStack
trace:\n#0 [internal function]:
Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2,
'file_put_conten...', '/var/www/html/c...', 122, Array)\n#1
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122):
file_put_contents('/var/www/html/c...', '<?php $__env->s...', 0)\n#2
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122):
Illuminate\\Filesystem\\Filesystem->put('/var/www/html/c...', '<?php
$__env->s...')\n#3
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51):
Illuminate\\View\\Compilers\\BladeCompiler->compile('/var/www/html/c...')\n#4
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Vi in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
on line 122 
[Fri Jul 06 03:41:01.295172 2018] [php7:error] [pid 9120]
[client 192.168.10.1:46658] PHP Fatal error:  Uncaught ErrorException:
file_put_contents(/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php):
failed to open stream: Permission denied in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122\nStack
trace:\n#0 [internal function]:
Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2,
'file_put_conten...', '/var/www/html/c...', 122, Array)\n#1
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122):
file_put_contents('/var/www/html/c...', '<?php $__env->s...', 0)\n#2
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122):
Illuminate\\Filesystem\\Filesystem->put('/var/www/html/c...', '<?php
$__env->s...')\n#3
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51):
Illuminate\\View\\Compilers\\BladeCompiler->compile('/var/www/html/c...')\n#4
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Vi in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
on line 122

Chỉnh sửa: Tôi đã sudo chmod -R 777 / var / (tạm thời) và tôi vẫn nhận được các lỗi cấp phép này.


Vui lòng gửi văn bản dưới dạng văn bản, không phải là ảnh chụp màn hình.
Scott

@Scott Cảm ơn vì tiền boa; Tôi đã chỉnh sửa bài viết của mình.
mRhouse

Câu trả lời:


0

Các tập tin của bạn được sở hữu bởi root. Hy vọng rằng máy chủ web của bạn không chạy bằng root. Giả sử CentOS giống như nhiều người khác sử dụng dữ liệu www dưới dạng nhóm và người dùng cho các tệp có thể truy cập máy chủ web mà bạn có thể thử như sau:

chown -R www-data:www-data /var/www/html/laravel
chmod -R 755 /var/www/html/laravel/storage

Xem thêm tài liệu laravel 5.6 / 4.2 tại sao cái sau có ý nghĩa. Bạn cũng có thể cần phải làm tương tự cho thư mục bộ đệm của bạn.


Tôi đã thử các hướng dẫn này và các lỗi vẫn còn.
mRhouse

0

Laravel yêu cầu một số thư mục có thể ghi được cho người dùng máy chủ web. Bạn có thể sử dụng các lệnh này trong dự án của bạn:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

-1

Cảm ơn bạn vì sự giúp đỡ. Hóa ra tôi đã thiết lập quyền thành công nhưng chúng đã bị Centos ghi đè.

sudo setenforce 0

Ở trên làm việc cho tôi.


1
Về mặt kỹ thuật, đó là một câu trả lời - anh ấy đã tắt selinux, thay vì đặt nhãn thích hợp vào thư mục.
Journeyman Geek
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.