Curl and wget return error 500 for helloworld.php on new install but browser is fine

ぐ巨炮叔叔 提交于 2019-12-25 08:17:16

问题


I have no .htaccess file. I have index.php which has the following content and works beautifully in a browser like Chrome, or Safari:

<?php print "hello world"; ?>

When I load it in a browser I get: hello world. When I try any of the following I get ERROR 500: Internal Server Error.

  • /usr/bin/wget http://example.com/index.php
  • /usr/bin/wget -nv -t 5 --connect-timeout=4 -w 4 --connect-timeout=20 -nd --no-cache --no-cookies http://example.com/index.pp
  • /usr/bin/wget --content-on-error http://example.com/index.php
  • /usr/bin/wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"
  • curl http://example.com/index.php

I checked all apache log files and can see nothing there at all except for when I load it in a webrowser.

This is Ubuntu 16.04 php7.0 Apache2. All freshly installed and updated and the laest version as of Nov 3rd 2016

I tried reinstalling wget. I tried wget from other machines and the local machine.

I have tried putting varnish on port 80 and apache on port 8080 behind varnish... that didn't change anything.

Wget outpus the following with debug:

root@one:~# wget --debug http://example.com/index.php
DEBUG output created by Wget 1.17.1 on linux-gnu.

Reading HSTS entries from /root/.wget-hsts
URI encoding = ‘UTF-8’
--2016-11-03 07:51:27--  http://example.com/index.php
Resolving example.com (example.com)... 207.158.37.70
Caching example.com =207.158.37.70
Connecting to example.com (example.com)|207.158.37.70|:80... connected.
Created socket 3.
Releasing 0x0000561eeda0d190 (new refcount 1).

---request begin---
GET /index.php HTTP/1.1
User-Agent: Wget/1.17.1 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... 
---response begin---
HTTP/1.1 500 Internal Server Error
Server: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.20 OpenSSL/1.0.1f mod_perl/2.0.8 Perl/v5.18.2
Content-Type: text/html; charset=iso-8859-1
Content-Length: 538
Accept-Ranges: bytes
Date: Thu, 03 Nov 2016 14:49:42 GMT
X-Varnish: 2177415129
Age: 0
Via: 1.1 varnish
Connection: keep-alive

---response end---
500 Internal Server Error
Registered socket 3 for persistent reuse.
URI content encoding = ‘iso-8859-1’
Skipping 538 bytes of body: [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at 
 voztechnologies@gmail.com to inform them of the time this error occurred,
 and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server erroSkipping 26 bytes of body: [r log.</p>
</body></html>
] done.
2016-11-03 07:51:27 ERROR 500: Internal Server Error.

Saving HSTS entries to /root/.wget-hsts
root@one:~# 

回答1:


It can happen that your apache is not accepting any useragent from curl or wget. This can be configured from httpd.conf file (or may be some other place, not have much experience on that).

If you use the useragent of your browser with wget or curl, it should work with you. For example:

wget -U "Opera 11.0" http://www.test.com/
curl -A "Opera 11.0" http://www.test.com/



回答2:


I noticed another domain name on the server worked. So, I copied the vhost, reloaded apache and it still was not working. I made everything exact. In the end I saw DNS was pointed to my dev server which was not listening for my domain name and returning an error 500.

Updated DNS and the show is back on. Thanks for working me through things with ideas!



来源:https://stackoverflow.com/questions/40403871/curl-and-wget-return-error-500-for-helloworld-php-on-new-install-but-browser-is

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!