Reputation: 2607
After cding to my folder I enter
python -m SimpleHTTPServer
and get
Serving HTTP on 0.0.0.0 port 8000 ...
in reply. But when I hit http://0.0.0.0:8000/test.html
I get a page not found error.
I've also tried
pushd /path/you/want/to/serve; python -m SimpleHTTPServer; popd
taken from this question
When I hit ls I can see the file and the directory. Anyone know what I'm doing wrong?
Upvotes: 23
Views: 81665
Reputation: 114
Try to host over localhost may it help you instead of trying it on http://0.0.0.0/
like this way: python -m http.server 8000 --bind 127.0.0.1
Upvotes: 2
Reputation: 35
This worked for me on Windows 8. Did not download any software!
In cmd:
python -m SimpleHTTPServer
Now, find out your system name. For Windows 8: Control Panel -> System. You will see the computer name here. Let's say it is "Abhinav".
Your local server will be hosted at "Abhinav.local:8000".
Upvotes: 0
Reputation: 3
this worked for me,replacing your machine name with
http://localhost:x000
Upvotes: 0
Reputation: 39
Sometimes the same port number is used by some other service. So we can try with some other port like
python -m SimpleHTTPServer 9090
And then simply hit http://{your system IP}:9090/
this works for me.
Upvotes: 0
Reputation: 31
try this in python3
python -m http.server 8000 --bind 127.0.0.1
and in your browser this url:
http://127.0.0.1:8000/
Upvotes: 0
Reputation: 13715
Run ifconfig
on Linux or ipconfig
on Windows to find the ip address of the server.
$ sudo ifconfig
wlan0 Link encap:Ethernet HWaddr 30:3a:64:b3:be:6a
inet addr:192.168.1.103 Bcast:192.168.1.255 Mask:255.255.255.0
Here in case the url would be:
http://192.168.1.103:8000/test.html
Upvotes: 0
Reputation: 530
mkdir HTTPServer_dir
cd HTTPServer_dir
python -m SimpleHTTPSever 8000
(or the port you want)http://127.0.0.1:8000/
Done !!!
You could make a simple index.html page inside the HTTPServer_dir so you can see an html page instead of directory listing
Upvotes: 1
Reputation: 41
You must type in the ip-address of the computer your connecting to for example 192.168.0.2:8000 Change that to the ip-address of your server.
Upvotes: 4
Reputation: 865
I think the other two answers are trying to make it clear that 0.0.0.0 is not the URL you should be visiting. When a Python web server (like cherrypy for instance) says it is serving on 0.0.0.0 it means it is listening for all TCP traffic that ends up at that machine no matter the hostname or IP that was requested. But, if you change it such that the socket listens on 127.0.0.1 or 'localhost', then unless the request was specifically to that IP/hostname, it won't respond to the request. For example, many times you can use your machine name instead of localhost (ubuntu allows this for example). If your machine name is 'brian' and you have a server listening on 0.0.0.0:8080, you should be able to reach that server with http://brian:8080. But if that server is listening on 'localhost', even though 'brian' is set to point to 'localhost', the server won't receive the message.
You also need to be sure the file really is in the directory you are running the command from. Otherwise, the 404 response is actually correct :)
Good luck!
Upvotes: 43
Reputation: 2626
Try browsing to http://localhost:8000/test.html or http://127.0.0.1:8000/test.html (those two should be exactly the same thing as long as your hosts file isn't all crazy-like).
0.0.0.0 is usually used by Windows as the "Not connected" IP, and can also be used as a sort of wildcard for when dealing with IPs. I am a bit confused at why your HTTP server is trying to host on 0.0.0.0, though. You may need to edit some config files and set that to 'localhost' or '127.0.0.1'.
Upvotes: 2