Права доступа к файлам Laravel для Apache - PullRequest
0 голосов
/ 06 июля 2018

Я устанавливаю приложение Laravel на дистрибутив Centos 7. Я использую PHP 7.2 и я успешно установил apache и мой проект.

Мне удалось отобразить заставку Apache, но как только я указываю своему виртуальному хосту на мою общую папку laravel, я получаю ошибки разрешения файлов в журналах apache2.

Я на короткое время сделал все свои общие и папки хранения для чтения / записи / выполнения, и я все еще получаю ошибки.

Мой виртуальный хост:

<VirtualHost *:80>

DocumentRoot /var/www/html/checkers/public

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

Мои разрешения (после временного chmod 777 для публичной и начальной загрузки):

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

Ошибки в / etc / httpd / logs / error_log:

[php7: error] [pid 9120] [client 192.168.10.1:46658] Неустранимая ошибка PHP: Uncaught ErrorException: file_put_contents (/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php): не удалось открыть поток: в доступе отказано /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122\nStack трассировка: \ n # 0 [внутренняя функция]: Осветить \ 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 ...', 's ...', 0) \ n # 2 /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122): Подсветка \ Файловая система \ Файловая система-> put ('/ var / www / html / c ...', 's ...') \ n # 3 /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51): Осветить \ View \ Составители \ BladeCompiler-> компиляции ( '/ вар / WWW / HTML / с ...') \ п # 4 / var / www / html / checkers / vendor / laravel / framework / src / Illuminate / Vi in /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php на линии 122 [Пт Июл 06 03: 41: 01.295172 2018] [php7: error] [pid 9120] [клиент 192.168.10.1:46658] Неустранимая ошибка PHP: Uncaught ErrorException: file_put_contents (/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php): не удалось открыть поток: в доступе отказано /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122\nStack трассировка: \ n # 0 [внутренняя функция]: Осветить \ 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 ...', 's ...', 0) \ n # 2 /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122): Подсветка \ Файловая система \ Файловая система-> put ('/ var / www / html / c ...', 's ...') \ n # 3 /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51): Осветить \ View \ Составители \ BladeCompiler-> компиляции ( '/ вар / WWW / HTML / с ...') \ п # 4 / var / www / html / checkers / vendor / laravel / framework / src / Illuminate / Vi in /var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php по линии 122

Редактировать: У меня sudo chmod -R 777 / var / (временно), и я все еще получаю эти ошибки разрешения.

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

Вы рекурсивно изменили разрешения?

попробовать:

chmod -R 777 /var/www/html/checkers/storage
chmod -R 777 /var/www/html/checkers/bootstrap
0 голосов
/ 07 июля 2018

Спасибо за помощь. Оказывается, я успешно устанавливал разрешения, но они были переопределены Centos.

sudo setenforce 0

Вышеуказанное сработало для меня.

0 голосов
/ 06 июля 2018

Назначьте владельца для всех каталогов с вашим именем пользователя и группы для www-data. Предполагая, что ваша группа apache www-data и my-user - ваше имя пользователя

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

Затем измените права доступа к файлу и каталогу следующим образом:

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

Подробности вы можете проверить здесь Права доступа к файлам для Laravel 5 (и других)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...