我使用家用计算机向特定站点编写了 PHP 脚本进行调试。当我在家用计算机上测试它时,脚本运行正常。当我在服务器(CentOS)上部署脚本时,该脚本已停止工作。
我认为我在编写脚本时犯了一个错误,并创建了这个问题。
马川建议网站管理封锁服务器IP。我写信给管理员,他们说他们不会封锁IP。
我的问题是我无法使用服务器访问该网站。我尝试了几种工具来获取网站的 html。
我尝试过使用浏览器。我部署在我的服务器上这个脚本并以真实用户的身份访问该网站。当我使用浏览器访问该网站时,出现错误(http 代码 403)。
我已经
curl
从命令行尝试过。server:~# curl http://4pda.ru/ <html> <head><title>403 Forbidden</title></head> <body bgcolor="white"> <center><h1>403 Forbidden</h1></center> <hr><center>nginx</center> </body> </html>
我尝试了该实用程序
wget
。server:~# wget http://4pda.ru --quiet -O - server:~#
我现在不知道该怎么办。我欢迎任何建议。
答案1
403 forbidden
意味着网络服务器被配置为不允许您执行您想要执行的操作。在大多数情况下,它是以下任一情况:
- 该脚本在服务器上没有执行权限(即使用 -rw-r--r-- 上传,而不是 -rwxr-xr-x,或者可能是 -rwx------
- 由于目录/文件权限,该脚本位于服务器无权访问的目录中
- 服务器配置为不允许访问该目录中的文件(在这种情况下,您需要查看服务器的
httpd.conf
)
编辑还有另一个潜在原因
另一个原因可能是服务器配置了 mod_security,这可能需要完整的 HTTP 标头集。这是针对脚本小子经常使用的大量破解/DOS 攻击的保护措施。如果是这种情况,请确保您的脚本发送 HTTP 标头
User-Agent: A suitable name for your script
如果这没有帮助,您需要向服务器管理员询问导致脚本失败的站点,并询问他们的 HTTP 日志内容。
答案2
使用所需的 URL 尝试此操作(我以 google 为例):
wget --header="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/8.0 Safari/600.1.17" 'https://www.google.es'