私の勉強の環境は、ローカルネットワーク上に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

で、再度アクセスしたらアクセスできました。よかった。

コメント