Ask Your Question

configure sage notebook to access apache server

asked 2012-01-29 23:37:47 +0100

this post is marked as community wiki

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Eight hours of trying to set up a sage apache server so that it can be accessed remotely via the internet has not lead to any fruitful results. So for my final attempt I hope that I can receive some advice.

edit retag flag offensive close merge delete


Did you use this instructions? I am not sure if you need apache - is the sage server itself not enough? For what purpose do you want remote access? - if it is just for your personal use you also can use ssh forwarding. Please give more information about the actual problem ;-)

Emil Widmann gravatar imageEmil Widmann ( 2012-01-30 06:52:51 +0100 )edit

I tried but I didn't have the the /etc/apache2/sites-available/sagenotebook directory so I had to stop at that step. Could it because I installed apache after installing sage? But I don't specifically need to run sage notebook on an apache server, just I didn't know until now about the sage server and I don't know how to configure it. As for my purposes, I'd like to access sage notebook via http from any computer with an internet connection. I'm new to networking, so I will have to first look into ssh forwading before I can try your suggestion.

mineswe gravatar imagemineswe ( 2012-01-30 15:42:29 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-01-31 01:49:44 +0100

Emil Widmann gravatar image

updated 2012-01-31 02:49:28 +0100

Well I reformulate as an answer. It might not be complete but I hope it contributes to a better understanding. I found the whole sage server story, while perfectly clear for the pros, is very confusing for real beginners (Took me some time to figure that out myself ).

Every time you start the notebook with

sage -notebook

you have the sage notebook server running, which is potentially enough to access it remotely. It listens to input and generates html output on port:8000 (so it doesn't need apache or another server for that - side note: the default port is going to change to 8080 in the upcomming sage 5.0 release).

if you want to access the server from another machine than you have to make sure that it is not blocked somewhere (firewall/router). In the beginning you can check if you can reach the server in your LAN. Get your machines local IP with the command ifconfig. It can look like (but will probably be different on your computer). Then try to access it from another machine on the LAN with this IP-adress: If it doesn't work check the firewall setting of the "sage server" machine.

If you want to access the machine from outside the LAN then you have to setup your network so that your Router/web access point forwards any incoming request on a specific port (e.g. 8000 of router to 8000 to your sage server). You can change the settings of most routers over a web login. Just google up the online doc for your model.

You can get the real IP-address from your network e.g. from the admin pannel of your router or just surf on a website like If it is a "static" address then you have no problems - it will not change. However if it is "dynamic" then this address gets reassigned once in a while. So how exactly do you go around this problem? You could use a DDNS server. (google "webhosting with dynamic IP" to learn more) or if you have access to your own webspace you could also send autoupdated IP info there (e.g make a cron job which checks if link has changed and if yes, rsync the link on your webserver)

If you setup the server in this way it is of course accesible by the public (although I think only 1 user can work at the same time, without further setup i.e. additional worker accounts on the sage server). The most basic measure to secure things up a bit are: set a sage admin password create accounts as needed (maybe you want to share the server with others) start the notebook with the following commandline options:

sage -notebook secure=true require_login=true accounts=false interface=''

secure=true will enable ssh encryption so you have to use the secure protokol https://IP.of.Sage.server:8000 ... (more)

edit flag offensive delete link more


Thank you for such a detailed answer. Have some network issues but I really want to patiently try your suggestions. At any rate, I have 100% confidence that you've provided a solution to my problem.

mineswe gravatar imagemineswe ( 2012-02-08 09:26:46 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-01-29 23:37:47 +0100

Seen: 2,637 times

Last updated: Jan 31 '12