最近撸到手了一台永久免费的轻量服务器,除了做一些迷之上网操作,大部分资源都是空闲的,干点什么好呢?于是就想到了搭建一个自己的在线 Jupyter Notebook 服务。
这样随时可以在其他电脑上登录Jupyter做分析而且不必要求安装python,并且借助服务器的性能,在服务器上做分析,还可以解放本地计算机的CPU
下面以 Debian 系统和 Ubuntu 系统举例
1、linux 服务器系统内可能不会预装 pip,需要查看,如果没有 pip,需要安装
apt-get install pip
(如果无法安装,可以先更新源后在安装)
sudo apt-get update
2、安装 Jupyter Notebook
轻量服务器容量有限,可单独安装jupyter,如果服务器容量足够大,可安装Ananconda
pip install jupyter
3、生成 Jupyter Notebook 配置文件
这里需要记住系统返回的配置文件的路径,后边会用到
jupyter notebook --generate-config
4、设置 Jupyter Notebook 密码
先进入python3环境
from notebook.auth import passwd
passwd()
Enter password:
Verify password:
'这里是密码'
复制返回的加密密码,后边备用
5、设置服务器配置文件
编辑第3步生成的配置文件,可以用vim直接编辑,或者用文件管理下载到本地编辑
在末尾增加以下几行配置信息
# 使用“*”可以使所有的服务器的IP都能访问,若想只在特定ip访问,输入ip地址即可
c.NotebookApp.ip = '*'
# 将端口设置为自己喜欢的,默认是8888,我选择跟小米手机远程文件管理一样的端口2121
c.NotebookApp.port = 2121
# 因为并不想在服务器上直接打开Jupyter Notebook,所以设置成False
c.NotebookApp.open_browser = False
# 允许远程访问
c.NotebookApp.allow_remote_access = True
# 这里是设置Jupyter的根目录,若不设置将默认root的根目录,不安全(root),更改到其他文件夹
c.NotebookApp.notebook_dir = '/usr/jupyter_projects'
# 为了安全,Jupyter默认不允许以root权限启动jupyter,需要启用
c.NotebookApp.allow_root = True
# 这里是密码
c.NotebookApp.password = u'粘贴你的密码'
ps.这个密码只需要输入一次,以后任意时间都可以直接访问,想找找设置,更改一下,设置个自动退出,但是配置项太多了,没找到,如果有了解的同学,欢迎大家讨论
6、在服务器中创建上一步中指定的Jupyter的根目录
Jupyter的根目录一定要设置,不然会启动失败
7、启动
1)终端中直接启动
jupyter notebook
2)终端中新建窗口启动(可以后台运行,并且还能再次进入查看实时日志)
screen -U -S new_window
jupyter notebook
其中 -U代表使用utf-8编码,
退出当前窗口(后台运行): Ctrl+A D
关闭当前窗口(关闭窗口内执行的所有进程):Ctrl+A K
查看当前后台运行的窗口 PID:screen -ls
再次进入窗口查看日志:screen -U -r PID (因为刚刚创建窗口指定了编码方式,再次进入的时候也需要指定编码方式,否则中文乱码)
其他窗口操作命令大家自行发掘哈
3)后台启动
nohup jupyter notebook --allow-root > /jupyter/jupyter.log 2>&1 &
1) nohup 表示no hang up,不挂起,命令执行后即使终端退出,服务也不会停止。
2) 并指定日志文件路径为/jupyter/jupyter.log。