我在/var/www
有两个目录:
root@user:/var/www# ls -l drwxrwxrwx 2 root root 4096 Июл 14 17:59 first drwxrwxrwx 2 root root 4096 Июл 14 18:00 second
与完全相同的PHP脚本:
root@user:/var/www# ls -l first/ -rwxrwxrwx 1 root root 20 Июл 14 16:37 info.php root@user:/var/www# ls -l second/ -rwxrwxrwx 1 root root 20 Июл 14 16:37 info.php
info.php的:
<?php phpinfo(); ?>
但从第first/
目录Apache打开脚本,从second/
拉错误:
( ! ) 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
什么可能是一个原因?
目录configuration:
DocumentRoot "/var/www" <Directory "/var/www"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
您需要将两个文件夹的所有者从“root”更改为apache。
试试sudo chown -R [yourusername] :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上下文是你需要设置的东西。 在这种情况下:
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
这个组织根本可能就是这个问题
你也可以尝试:
sudo chown -R apache:apache /var/www