Подтвердить что ты не робот

Apache + php не открывает PHP скрипт из определенного каталога

У меня есть две директории в /var/www:

[email protected]:/var/www# ls -l
drwxrwxrwx 2 root root      4096 Июл 14 17:59 first
drwxrwxrwx 2 root root      4096 Июл 14 18:00 second

с точно такими же скриптами php:

[email protected]:/var/www# ls -l first/
-rwxrwxrwx 1 root root 20 Июл 14 16:37 info.php

[email protected]:/var/www# ls -l second/
-rwxrwxrwx 1 root root 20 Июл 14 16:37 info.php

info.php:

<?php
phpinfo();
?>

Но из каталога first/ Apache открывает script, из second/ pulls error:

( ! ) Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0

( ! ) Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0

( ! ) Fatal error: Unknown: Failed opening required '/var/www/second/info.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

Что может быть причиной?

Конфигурация каталога:

DocumentRoot "/var/www"

<Directory "/var/www">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>
4b9b3361

Ответ 1

Вам нужно изменить владельца двух папок с "root" на apache.

Попробуйте sudo chown -R [имя пользователя]: www-data/var/www

Это должно помочь.

Ответ 2

Попробуйте следующее:

sudo chmod -R 755 /var/www

Ответ 3

Есть несколько вещей, которые можно попробовать здесь 1) В какой папке находится ваш .htaccess? 2) В сообщении об ошибке указывается, что php будет искать скрипты в include_path = '.: /Usr/share/php: /usr/share/pear' Это указывает на то, что скрипт должен присутствовать только в следующих путях. 3) Вы можете проверить, может ли ls -Z выявить разницу в контексте безопасности каталогов.

Ответ 4

Иногда SeLinux Context - это то, что вам нужно установить. В этом случае:

ls -lZ

если у вас есть что-то вроде

rw-r--r--. root root unconfined_u:object_r:etc_t:s0 

ИЛИ

 drwxr-xr-x. root root system_u:object_r:etc_t:s0 

Вам нужно бежать

chcon -R -t httpd_sys_content_t /var/www

Тогда у тебя будет

drwxr-xr-x  root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/

Как-то так

Ответ 5

sudo chown -R www-data:www-data /var/www/

sudo service apache2 restart

Группа - это root, возможно, проблема

Ответ 6

Вы также можете попробовать:

sudo chown -R apache:apache /var/www