Apache + PHP不能从某个目录打开php脚本

我在/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