Ответ 1
Вам нужно изменить владельца двух папок с "root" на apache.
Попробуйте sudo chown -R [имя пользователя]: www-data/var/www
Это должно помочь.
У меня есть две директории в /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>
Вам нужно изменить владельца двух папок с "root" на apache.
Попробуйте sudo chown -R [имя пользователя]: www-data/var/www
Это должно помочь.
Попробуйте следующее:
sudo chmod -R 755 /var/www
Есть несколько вещей, которые можно попробовать здесь
1) В какой папке находится ваш .htaccess
?
2) В сообщении об ошибке указывается, что php будет искать скрипты в include_path = '.: /Usr/share/php: /usr/share/pear'
Это указывает на то, что скрипт должен присутствовать только в следующих путях.
3) Вы можете проверить, может ли ls -Z выявить разницу в контексте безопасности каталогов.
Иногда 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/
Как-то так
sudo chown -R www-data:www-data /var/www/
sudo service apache2 restart
Группа - это root, возможно, проблема
Вы также можете попробовать:
sudo chown -R apache:apache /var/www