私の勉強の環境は、ローカルネットワーク上にcentosのサーバーがあって、sshでアクセスして使っているのですが、今回はjupyter notebookはサーバーの中にあるので、どうやったらブラウザでアクセスできるんだ?と思って色々作業した結果を記録しています。検索で調べても、すぐに答えにたどり着かなかったので、一応。
configファイルを作成する
jupyter notebookのためのconfigファイルを作成します
# jupyter notebook --generate-config
Writing default config to: /XXXXXXX/.jupyter/jupyter_notebook_config.py
ふむ。作ってくれたようです。できた場所も記載してくれてますね。
で、このファイルに設定を色々やるといいらしいですよ。
jupyter notebookに入るためのパスワードを先につくる
設定ファイルに入れる項目にパスワードがあるのですが、そのパスワードはハッシュ化しておく必要があるので、以下でパスワードを作っておくといいらしいです。
ipythonを使ってささっと作ります。
# ipython
※ここから対話モードで実行できる
>from notebook.auth import passwd
>passwd()
※ここでパスワードを入力、確認入力が実行される
'sha1:XXXXXXXXXXXXX'
※こんなのが出てくる。これを設定のパスワードで使う
ちゃんと出てきたらOKです。
jupyter_notebook_config.py を変更する
変更する項目は以下のとおりです。
c.NotebookApp.ip = ‘0.0.0.0’
※どこからでもアクセス可能になる
c.NotebookApp.open_browser = False
※自動でブラウザを立ち上がらせない
c.NotebookApp.port = 8888
※ポート番号を指定。
c.NotebookApp.password = ‘xxx’
※パスワードを入れるこんな感じ
c.NotebookApp.password = u’sha1:XXX’
で終わったら、サーバーのip+portでアクセス
例:http://192.168.1.1:8888
それでもアクセスできない場合
私の場合、これでもアクセスできませんでした。。。たぶん、firewalldのせいでしょう。
以下を実行しました
# firewall-cmd --add-port=8888/tcp --zone=public --permanent
success
# firewall-cmd --reload
success
で、再度アクセスしたらアクセスできました。よかった。