加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Apache不会在Raspberry Pi上打开页面

发布时间:2020-12-13 21:51:22 所属栏目:PHP教程 来源:网络整理
导读:我已经在我的Raspberry Pi上安装了 Apache 2 PHP,当我请求index.php它加载正常,但是当我尝试请求任何子文件夹或任何其他文件时(strandsort.csin这个例子 – 也可以是anything.txt,只是没有要解析的HTML / PHP),我得到403拒绝访问,但是当我请求应该被解析的文
我已经在我的Raspberry Pi上安装了 Apache 2 PHP,当我请求index.php它加载正常,但是当我尝试请求任何子文件夹或任何其他文件时(strandsort.csin这个例子 – 也可以是anything.txt,只是没有要解析的HTML / PHP),我得到403拒绝访问,但是当我请求应该被解析的文件(i2.php)时,我得到一个空白页面.

也许值得注意的是,phpmyadmin似乎工作正常.

我配置了以下配置:

/etc/apache2/sites-enabled/000-default

并将AllowOverride设置为ALL.

这是错误:

PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0,referer: http://raspberryIP/
PHP Fatal error:  Unknown: Failed opening required '/var/www/i2.php' (include_path='.:/usr/share/php$http://raspberryIP/

其中“RaspberryIP”是设备的IP地址.

解决方法

错误是:

PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0,referer: http://raspberryIP/
PHP Fatal error:  Unknown: Failed opening required '/var/www/i2.php' (include_path='.:/usr/share/php$http://raspberryIP/

所以这似乎是文件/var/www/i2.php的权限问题.用户拥有该文件的内容是什么? Apache能够读取该文件吗?如果从命令行运行此命令,输出结果是什么:

ls -la /var/www/i2.php

另外,Apache错误日志说了什么?它们应位于:

/var/log/apache2/access.log
/var/log/apache2/error.log

您可以使用尾部跟踪他们的输出:

sudo tail -f -n 200 /var/log/apache2/access.log
sudo tail -f -n 200 /var/log/apache2/error.log

这些路径基于标准的Ubuntu 12.04安装,但对于CentOS和Linux应该是相同的.你在Raspberry PI中使用的Debian变体.

您知道,这个问题对于Raspberry PI设置并不特殊,但实际上是标准的Linux Apache服务问题.因此,用于成熟服务器的调试技术也可以在这里工作.

另外,/ etc / apache2 / sites-available / default文件的内容是什么?这是/ etc / apache2 / sites-enabled / 000-default只是一个符号链接的真实文件.默认的Apache默认文件可能令人困惑&包含许多冗余命令.这是我在Ubuntu中设置Apache时要使用的精简版本:

<VirtualHost *:80>
  DocumentRoot /var/www

  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ErrorLog ${APACHE_LOG_DIR}/error.log

  # Possible values include: debug,info,notice,warn,error,crit,alert,emerg.
  LogLevel warn

</VirtualHost>

请注意,此处没有AllowOverride All. AllowOverride的全部目的是允许解析.htaccess文件&在这个阶段,这应该不是一个因素.如果您认为需要,可以将其添加到此配置中,如下所示:

<VirtualHost *:80>
  DocumentRoot /var/www

  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ErrorLog ${APACHE_LOG_DIR}/error.log

  # Possible values include: debug,emerg.
  LogLevel warn

  <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

</VirtualHost>

编辑:原始海报张贴了ls -la输出,如下:

-rw------- 1 pi www-data 21 May  1 14:10 /var/www/i2.php

这似乎是正确的,但我建议至少尝试调整权限,以便所有人都能读取这样的文件:

sudo chmod a+r /var/www/i2.php

此外,在Apache access.log中 – 原始海报也在评论中提供 – 它说:

[Sun May 04 18:00:02 2014] [error] [client 127.0.0.1] PHP Fatal error:  Unknown: Failed opening required '/var/www/i2.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0

这让我觉得i2.php中的PHP编码有错误?你能检查那里的内容吗?也许只是创建一个简单的PHP文件,只有以下内容,看看会发生什么:

<?php
echo "Hello world!";
?>

所有这些,也许最好是调整整个/ var / www /目录的权限.

sudo chmod -R 755 /var/www/

755将应用读,写和amp;执行所有者的权限,并阅读&执行该组的权限&其他. -R标志表示这应该通过整个/ var / www /目录&子文件夹.

另一个编辑:查看原始海报的access.log似乎可能存在直接连接到.htaccess的权限问题:

[Sun May 04 17:46:10 2014] [crit] [client 192.168.1.2] (13)Permission denied: /var/www/js/.htaccess pcfg_openfile: unable to check htaccess file,ensure it is readable
[Sun May 04 17:46:11 2014] [crit] [client 192.168.1.2] (13)Permission denied: /var/www/js/.htaccess pcfg_openfile: unable to check htaccess file,ensure it is readable
[Sun May 04 17:46:12 2014] [crit] [client 192.168.1.2] (13)Permission denied: /var/www/js/.htaccess pcfg_openfile: unable to check htaccess file,ensure it is readable

因此,在对/ var / www /进行一揽子权限更改时解决了问题,或许权限问题可能基于/var/www/js/.htaccess甚至父/ var / www / js /目录?我指出这一点的原因是一揽子权限更改,如sudo chmod -R 755 / var / www /可以解决问题,但有时最好知道确切的问题来自哪里,这样你就不会对什么感到困惑真的发生了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读