Jupyter notebook是由ipython notebook演变而来,jupyter notebook在数据分析时使用非常的方便,花了一晚上时间,详细看了下Jupyter notebook在服务器上的部署,下面详细介绍每一步。我是在centos7.1上部署的,不同的Linux发行版可能会有差异,详情请参考官方
的安装指南。
centos7.1 Python版本还是Python 2.7.5,版本太低,这里推荐安装Anaconda
从官网现在Anaconda Linux版本,下载到本地
bash Anaconda3-4.0.0-Linux-x86_64.sh
安装过程需要选择安装路径,可以输入yes选择默认位置root/anaconda2/
在/etc/profile
里添加:
export PATH=/root/anaconda2/bin:$PATH
[root@biostacs ~]# python -V
Python 2.7.11 :: Anaconda custom (64-bit)
使用openssl生成验证文件
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
设置过程中要输入国家,地区,机构,邮箱等信息,记住mycert.pem位置
打开ipython , 设置密码
In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:7467b7351f12:79fc65998**************3003b87f3'
设置过程中要设置用于远程登录的密码,要记住sha1
值,后面设置要用。
终端输入:
jupyter notebook --generate-config
以上将会在 ~/.jupyter/ 下创建默认config 文件: jupyter_notebook_config.py
在 ~/.jupyter/ 下 jupyter_notebook_config.py里添加如下内容
# Configuration file for jupyter-notebook.
c = get_config()
# Kernel config
c.IPKernelApp.pylab = 'inline'
# Notebook config
c.NotebookApp.certfile = u'/mycert.pem'#你自己的mycert.pem位置
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:209f151dcd7f:a730a81fd00********3ec0a6aa31'#设置密码的时候生成的sha1
# It is a good idea to put it on a known, fixed port
c.NotebookApp.port = 8888# 设置未被使用的端口
为了让apache2能自然的访问到8888端口,我们配置下.htaccess文件。打开网站根目录下的.htaccess文件,添加下面的语句:
RewriteCond %{HTTP_HOST} ^ipython\.mythsman.com$ [NC]
RewriteCond %{REQUEST_URI} ^/(.*)$ [NC]
RewriteRule ^(.*)$ http://ipython.mythsman.com:8888/%1 [R=301,L]
没有.htaccess文件就自己新建一个,这就是个文本文件。
修改/etc/sysconfig/iptables文件,增加如下一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
service iptables restart
本地浏览器输入:
https:\\服务器ip:8888