使用云服务器从0开始搭建云端Jupyter Lab|Notebook
0、购买云服务器
购买服务器我只推荐硅云,因为香港服务器免备案!而且25岁以下仅需10元每月,至少可买3年!每年享有多次原价续费机会,可补价升级配置。
硅云服务器首页://www.vpsor.cn?userCode=qh1dc78
VPS购买页://www.vpsor.cn/activity/cloudsite?userCode=qh1dc78
1、安装宝塔面板
Centos安装脚本
yum install -y wget && wget -O install.sh //download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
Ubuntu/Deepin安装脚本
wget -O install.sh //download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
宝塔面板7.9.2开心版[不是很必要]
功能介绍:
系统工具:日志清理工具 增加 2.0版本!
宝塔插件:堡塔网站加速 增加 4.2版本!
专业版插件:网站监控报表 增加 6.8版本!
企业版插件:堡塔防提权 改名 堡塔防入侵!
企业版插件:堡塔限制访问型证书-Linux版 增加 1.2版本!
第三方插件:Nginx免费防火墙 更新 6.3版本!
第三方插件:百度网盘 更新 3.9版本!
部分第三方插件已经全部更新同步官方!
修复第三方插件百度网盘无法使用问题!
修复已知道的一些插件到期的问题!
修复第一次安装脚本,需要退出登录重登才能安装插件的逻辑问题!
修复部分用户登录虚拟账户无法获取列表 authlist空白 的问题!
修复 危险级别:特高 去除宝塔因为账户跟宝塔不匹配封 ban用户ip风险的问题(导致恢复免费版也无法使用,只能降级7.7.0 才能使用)!
已支持 Arm 架构!!!
一键脚本代码:
curl //www.ddayun.cn/bt/update6.sh|bash
ps:安装宝塔面板仅仅是为了操作文件更加方便!
宝塔面板安装完成后,你会获得登录网址和账户密码
2、配置python环境
鉴于python学习进阶需要使用多个不同版本的Python虚拟环境来实现不同项目的部署,我建议安装Anaconda3来进行Python环境管理。
这里可以选择自己想要的anaconda版本,不同版本自带的python版本也不相同,此处我选择2021.04
官网镜像://repo.anaconda.com/archive/
清华镜像://repo.continuum.io/archi
首先安装curl方法:
yum update -y && yum install curl -y
或者wget方法:
yum -y install wget
curl和wget的区别://www.cnblogs.com/lsdb/p/7171779.html
下载安装包:
curl //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh
#或者
wget //repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh
使用bash命令安装anaconda(名字要对应):
bash Anaconda3-2021.04-Linux-x86_64.sh
按照安装提示,键入回车:
Please, press ENTER to continue
>>> ENTER
同意安装协议:
安装此版本时,会强制用户看完整个协议,直接一路回车就行,直到看到确认信息
# 输入yes,表示同意安装协议
Do you accept the license terms? [yes|no][no]
>>> yes
确认安装路径(可修改,也可以使用自定义):
#使用默认路径,直接键入回车,使用自定义路径,直接输入安装路径
#此处使用 /opt/anaconda3作为安装路径
Anaconda3 will now be installed into this location:
/root/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/root/anaconda3] >>> /opt/anaconda3
环境变量初始化:
#此处询问是否初始化conda的环境,直接输入yes
Do you wish the installer to initialize Anaconda3
by running conda init?
[yes|no][no] >>> yes
初始化时,anaconda将配置写入了~/.bashrc 文件,直接执行:
source ~/.bashrc
后即可正常使用了。
安装完成后,如果是手动选择的路径,那么最好手动添加环境变量,
export PATH=/你的安装路径/anaconda3/bin:$PATH
下一步我们建立Tensorflow环境,供以后使用
conda create -n tensorflow python=3.5
source activeate tensorflow
conda install -c conda-forge tensorflow
3.配置Jupyter
3.1配置Jupyter Notebook
然后我们就可以开始配置Jupyter Notebook了,
我直接使用root用户安装(若服务器有重要价值的话十分不推荐使用此方法,创建用户方法可参考文末的引用文章)
生成Notebook密码:
#进入python环境
python
>>> from notebook.auth import passwd
>>> passwd()
控制台会提示输入密码两次,并生成一段sha1加密码,请复制并保留它,稍后会用到,
Enter password:
Verify password:
'argon2:a52.....'
#退出python环境
>>>quit()
然后我们要生成Jupyter Notebook配置文件,并使用vim命令修改
jupyter notebook --generate-config
vim ~/.jupyter/jupyter_notebook_config.py
在配置文件末尾添加如下内容:
# 允许通过任意绑定服务器的ip访问
c.NotebookApp.ip = '*'
# 用于访问的端口
c.NotebookApp.port = 80
# 不自动打开浏览器
c.NotebookApp.open_browser = False
# 设置登录密码
c.NotebookApp.password = 刚刚生成的sha1密码
我不喜欢vim这个垃*F**k文本编辑器,所以我在宝塔改好,直接上传。
*后期我打算直接绑定二级域名,因此使用80端口(出于安全考虑,不建议,但想要域名不用加端口号,最方便的是80端口)
*还可以在配置文件中绑定SSL证书,待补充
配置文件修改完成后,因为我使用的是80端口,需要关闭CentOS内置的httpd服务以免端口冲突。
service httpd stop
调试阶段直接用:
#退出ssh终端则停止运行,--allow root允许管理员账户
jupyter notebook --allow-root
最后用nohup命令启动notebook,确保ssh终端关闭后服务在后台继续运行:
#no hang up不需要终端挂起
nohup jupyter notebook --allow-root
最后我还将子域名”nb.我的域名”的DNS指向VPS地址,我就可以通过”nb.我的域名”直接访问Notebook了!
3.2配置jupyter lab
安装jupyter lab:
#pip安装 (base)
pip install jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 安装中文界面
#conda安装
conda install -y -c conda-forge jupyterlab==3
pip install jupyterlab-language-pack-zh-CN # 使用pip安装中文界面
在Jupyter Lab的网页中,点击:
Settings→Language→Chinese (simplified, china) (中文 (简体,中国))
JupyterLab 可以通过conda
,pip
,pipenv
ordocker
的方式安装。
# conda
conda install -c conda-forge jupyterlab
# pip
pip install jupyterlab
安裝 nb_conda_kernels*
nb_conda_kernels 是一个 Jupyter 的扩展功能(extension),可以管理多个 Conda 环境下的 Jupyter 核心(kernels),整合多 Conda 环境中各种不同版本的 Python 或 R 等语言。
nb_conda_kernels 必须安装在在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 环境中,可以直接放在 base
环境中,或是另外建立独立的 Conda 环境亦可。
这里我们建立一哥新的 Conda 环境,专门用于放置 JupyterLab:
# 建立 Conda 环境,并安裝 JupyterLab
conda create --name jupyterlab python=3.7 jupyterlab
在此 Conda 环境加装 nb_conda_kernels 扩展功能套件:
# 安装 nb_conda_kernels 扩展功能套件
conda install --name jupyterlab nb_conda_kernels
安装 Jupyter Kernels*
所有需要在 Jupyter 中透过nb_conda_kernels
来使用 Conda 环境,都需要安装对应语言的的 Jupyter 核心(kernels)。
建立一个 Python 2.7 的 Conda 环境:
# 建立 Python 2.7 的 Conda 环境
conda create --name Python2 python=2.7.18
# 安装 Python 的 Jupyter 核心
conda install --name Python ipykernel
建立一个 R-4.0.2 的 Conda 环境:
# 建立 R 4.0.2 的 Conda 环境
conda create --name R-4.0.2 --channel r r-essentials=4.0.2 r-base=4.0.2
# 安装 R 的 Jupyter 核心
conda install --name R-4.0.2 --channel r r-irkernel
配置jupyter lab
生成 jupyterlab 配置文件
使用--generate-config
参数,生成 jupyterlab 配置文件。
$ jupyter lab --generate-config
将之前notebook的配置文件那几行复制一下,写入jupyter_lab_config.py
启动
安装好所有的 Conda 环境以及对应的 Jupyter 核心之后,就可以依照一般的方式启动 JupyterLab环境:
# 载入 Jupyter 的 Conda 环境(下面两种方式都可以激活)*
$ conda activate jupyterlab
$ source activate jupyterlab
# 载入 Conda 的 Base 环境*
$ conda activate base
$ source activate base
启动 JupyterLab
如果想同时实现notebook和lab两种python工具,那么运行jupyter lab就可以了!
#最终只需要运行下面的命令
#退出终端则停止(调试)
$ jupyter lab --allow-root
#挂起
$ nohup jupyter lab --allow-root
附:如果登录jupyter密码错误,则需要修改jupyter_notebook_config.json密码
#jupyter_notebook_config.json has higher priority
$ jupyter notebook password
#结果
[JupyterPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_server_config.json
4.域名代理及计划任务
由于我们使用了80端口,那么解析域名就很简单了。
我使用的是DnsPod来解析,主机记录指的是二级域名
即将jupyter指向nb.你的域名
完成这一步就可以通过域名访问你的云端jupyter服务了。
最后我们再宝塔添加一个计划任务,防止进程中断
#!/bin/bash
kill $(lsof -t -i:80)
export PATH=/root/anaconda3/bin:$PATH
#执行任务
nohup jupyter lab --allow-root
从日志来看,我们已经成功添加定时任务:
原创作者:孤飞-博客园
原文地址://www.cnblogs.com/ranxi169/p/16531863.html