use*_*068 3 php apache http-status-code-403 raspberry-pi
我已经在我的Raspberry Pi上安装了Apache 2,并且当我请求index.php
它加载时,但是当我尝试请求任何子文件夹或任何其他文件时(strandsort.cs
在这个例子中 - 也可以是anything.txt,只是不是HTML /要得到解析的PHP),403 access denied
但是当我请求应该解析的文件时(i2.php
)我得到一个空白页面.
也许值得注意,phpmyadmin
似乎工作正常.
我配置了以下配置:
/etc/apache2/sites-enabled/000-default
Run Code Online (Sandbox Code Playgroud)
并设置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/
Run Code Online (Sandbox Code Playgroud)
其中"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/
Run Code Online (Sandbox Code Playgroud)
所以这似乎是文件的权限问题/var/www/i2.php
.用户拥有该文件的内容是什么?Apache能够读取该文件吗?如果从命令行运行此命令,输出结果是什么:
ls -la /var/www/i2.php
Run Code Online (Sandbox Code Playgroud)
另外,Apache错误日志说了什么?它们应位于:
/var/log/apache2/access.log
/var/log/apache2/error.log
Run Code Online (Sandbox Code Playgroud)
你可以tail
像这样跟随他们的输出:
sudo tail -f -n 200 /var/log/apache2/access.log
sudo tail -f -n 200 /var/log/apache2/error.log
Run Code Online (Sandbox Code Playgroud)
这些路径基于标准的Ubuntu 12.04安装,但对于CentOS以及您在Raspberry PI中使用的任何Debian变体应该是相同的.
您知道,这个问题对于Raspberry PI设置并不特殊,但实际上是标准的Linux Apache服务问题.因此,用于成熟服务器的调试技术也可以在这里工作.
另外,您的/etc/apache2/sites-available/default
文件内容是什么?这是真正的文件,/etc/apache2/sites-enabled/000-default
只是一个符号链接.默认的Apache default
文件可能会令人困惑并包含大量冗余命令.这是我在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>
Run Code Online (Sandbox Code Playgroud)
注意这里没有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, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
编辑:原始海报发布的ls -la
输出如下:
-rw------- 1 pi www-data 21 May 1 14:10 /var/www/i2.php
Run Code Online (Sandbox Code Playgroud)
这似乎是正确的,但我建议至少尝试调整权限,以便所有人都能读取这样的文件:
sudo chmod a+r /var/www/i2.php
Run Code Online (Sandbox Code Playgroud)
此外,在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
Run Code Online (Sandbox Code Playgroud)
这让我觉得PHP编码中存在错误i2.php
?你能检查那里的内容吗?可能只是创建一个简单的PHP文件,只有以下内容才能看到会发生什么:
<?php
echo "Hello world!";
?>
Run Code Online (Sandbox Code Playgroud)
所有这一切,也许最好是调整整个 /var/www/
目录的权限,就像这样.
sudo chmod -R 755 /var/www/
Run Code Online (Sandbox Code Playgroud)
在755
适用的读,写和为业主执行权限和读取和执行本集团及其他权限.该-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: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: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
[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
[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
Run Code Online (Sandbox Code Playgroud)
因此,在进行一揽子权限更改/var/www/
解决问题的同时,也许权限问题基于/var/www/js/.htaccess
甚至是父/var/www/js/
目录?我指出这一点的原因是sudo chmod -R 755 /var/www/
可以解决问题的一揽子权限更改,但有时最好知道确切问题的来源,以便您不会对实际发生的事情感到困惑.
归档时间: |
|
查看次数: |
8378 次 |
最近记录: |