使用雲服務器從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