本文目录一览:
- 1、安装phpstudy 测试出现403错误 Forbidden You don't have permission to access / on this server. 跪求解
- 2、php 403 forbidden nginx怎么解决
- 3、如何更改php网站源码显示403页面
- 4、PHP问题提示403错误怎么回事????
- 5、PHP Curl出现403错误怎么办
安装phpstudy 测试出现403错误 Forbidden You don't have permission to access / on this server. 跪求解
安装phpstudy测试出现403错误是表示你没有访问权限,解决方法如下:
在C:\Windows\System32\drivers\etc下的hosts文件下添加 ,注意前面不要加#号,那是注释。
找到Apache 下的httpd.conf 文件 打开,去掉171行前边的#
在apache的配置文件vhosts.conf中,配置以下内容。
重启Apache就可,以。。。。域名配好了。。此时又有问题了。
浏览器出这样的页面但是当你输入时就可以访问index.php的程序需要写完整路径,此时将第三步中的18行注释掉 或把options后面的两个单词前面加上 + , 再重启Apache就可以直接访问。
php 403 forbidden nginx怎么解决
1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。
2.访问禁止目录浏览的目录,例:设置autoindex off后访问目录。
3.用户访问只能被内网访问的文件。
1.权限配置不正确
这个是nginx出现403 forbidden最常见的原因。
为了保证文件能正确执行,nginx既需要文件的读权限,又需要文件所有父目录的可执行权限。
例如,当访问/usr/local/nginx/html/image.jpg时,nginx既需要image.jpg文件的可读权限,也需要/,
/usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以执行权限。
解决办法:设置所有父目录为755权限,设置文件为644权限可以避免权限不正确。
2.目录索引设置错误(index指令配置)
网站根目录不包含index指令设置的文件。
例如,运行PHP的网站,通常像这样配置index
index index.html index.htm index.php;
当访问该网站的时,nginx 会按照 index.html,index.htm ,index.php 的先后顺序在根目录中查找文件。如果这三个文件都不存在,那么nginx就会返回403 Forbidden。-php403跳转
如果index中不定义 index.php ,nginx直接返回403 Forbidden而不会去检查index.php是否存在。
同样对于如果运行jsp, py时也需要添加index.jsp,index.py到目录索引指令index中。
解决办法:添加首页文件到index指令,常见的是index.php,index.jsp,index.jsp或者自定义首页文件。
如何更改php网站源码显示403页面
对403、404等错误显示特定网页,不是PHP的范畴,这与你的WEB服务器有关,在WEB服务器里面设置,例如APACHE服务器修改httpd.conf文件:
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
PHP问题提示403错误怎么回事????
4xx - 客户端错误
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。 ·400 - 错误的请求。
·401 - 访问被拒绝。IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: ·401.1 - 登录失败。
·401.2 - 服务器配置导致登录失败。
·401.3 - 由于 ACL 对资源的限制而未获得授权。
·401.4 - 筛选器授权失败。
·401.5 - ISAPI/CGI 应用程序授权失败。
·401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。
·403 - 禁止访问:IIS 定义了许多不同的 403 错误,它们指明更为具体的错误原因: ·403.1 - 执行访问被禁止。
·403.2 - 读访问被禁止。
·403.3 - 写访问被禁止。
·403.4 - 要求 SSL。
·403.5 - 要求 SSL 128。
·403.6 - IP 地址被拒绝。
·403.7 - 要求客户端证书。
·403.8 - 站点访问被拒绝。
·403.9 - 用户数过多。
·403.10 - 配置无效。
·403.11 - 密码更改。
·403.12 - 拒绝访问映射表。
·403.13 - 客户端证书被吊销。
·403.14 - 拒绝目录列表。
·403.15 - 超出客户端访问许可。
·403.16 - 客户端证书不受信任或无效。
·403.17 - 客户端证书已过期或尚未生效。
·403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。
·403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。
·403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。
·404 - 未找到。 ·404.0 -(无) – 没有找到文件或目录。
·404.1 - 无法在所请求的端口上访问 Web 站点。
·404.2 - Web 服务扩展锁定策略阻止本请求。
·404.3 - MIME 映射策略阻止本请求。
·405 - 用来访问本页面的 HTTP 谓词不被允许(方法不被允许)
·406 - 客户端浏览器不接受所请求页面的 MIME 类型。
·407 - 要求进行代理身份验证。
·412 - 前提条件失败。
·413 – 请求实体太大。
·414 - 请求 URI 太长。
·415 – 不支持的媒体类型。
·416 – 所请求的范围无法满足。
·417 – 执行失败。
·423 – 锁定的错误。
PHP Curl出现403错误怎么办
使用curl抓网页下来处理,为了穿墙方便,使用Privoxy作为代理,便于选择哪些网站使用proxy、哪些不用。但今天却遇到了奇怪的问题,访问google baidu这些网站居然都返回403错误,而访问其他的一些网站没事,如果设置为不使用proxy则都能正常访问。-php403跳转
难道google baidu就不让用proxy连接么?显然不可能,所以打开curl的信息输出(curl_setopt($this-mSh, CURLOPT_VERBOSE, 1);)看看,得到以下结果:-php403跳转
. 代码如下:
* Trying 127.0.0.1... * connected
* Connected to 127.0.0.1 (127.0.0.1) port 8118 (#0)
* Establish HTTP proxy tunnel to
CONNECT HTTP/1.0
Host:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Proxy-Connection: Keep-Alive
HTTP/1.0 403 Connection not allowable
X-Hint: If you read this message interactively, then you know why this happens ,-)
* The requested URL returned error: 403
* Received HTTP code 403 from proxy after CONNECT
* Closing connection #0
... Failed.
可以看到proxy服务器工作正常,的确是baidu返回了403错误,但原因肯定还在我这边。终于,从网上(1of2, 2of2)得到了点启发──我使用的是proxytunnel而非proxy。
在代码中,有这么一句:
. 代码如下:
curl_setopt($this-mSh, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($this-mSh, CURLOPT_PROXY, $phost);
php文档中没有详细说明,不过man curl中有详细解释,两者都是代理,proxytunnel(-p参数)允许其他协议通过http代理传输,而proxy(-x参数)则只能走http协议。所以我猜测,google baidu的服务器和curl的proxytunnel不和,所以返回403。-php403跳转
禁用掉上面2行代码的第一句后,curl访问恢复正常。
比较奇怪的是,几种操作系统下还不一样,一台MAC OSX就要显式的禁用proxytunnel才可以,curl版本:
. 代码如下:
$ curl --version
curl 7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz
而另外一台ubuntu则完全不受影响,怎么都能用,curl版本:
. 代码如下:
$ curl --version
curl 7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.10
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
MT主机上的centos也没事,curl版本:
. 代码如下:
$ curl --version
curl 7.15.5 (i686-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
看来不完全是curl版本问题,MAC OSX的确与众不同啊。
还有一个原因也会导致curl返回403错误,如果设置了:
. 代码如下:
curl_setopt($ch, CURLOPT_NOBODY, true);
则需要紧跟着设置:
. 代码如下:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
不然会因为http服务器不允许 HEAD 命令而返回403错误。参考:Trouble with a cURL request in PHP(forums.devshed.com/php-development-5/trouble-with-a-curl-request-in-php-445222.html)。MAC OSX上curl之所以特殊,也不排除是这种原因-php403跳转