0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JupyterHub(Python, PHP)のセットアップ(Ubuntu20.04サーバ上)

Last updated at Posted at 2021-12-24

ubuntu 20.04 サーバを (ConoHa や AWSなどで)セットアップしておいてください。

最初に、update, upgrade しておきます:

sudo apt -y update; sudo apt -y upgrade; 

php をインストール:

sudo apt -y install php7.4 php7.4-cli composer php-zmq

apache などがもし動いていれば停止しておく:

sudo systemctl disable apache2.service 
sudo systemctl stop apache2.service 

サーバのホスト名が無い場合は、サーバ名を DNS 登録して、ホスト名でアクセスできるようにしておいてください。
(以下では、そのホスト名が your.host.name であるとしています。)

その後、letsencrypt で SSL証明書を取得:
(your.host.name は自分のホスト名に, your@mail.address は実際のメールアドレスに差し替えてください)

sudo snap install --classic certbot
sudo certbot certonly -n --standalone -d your.host.name -m your@mail.address --agree-tos

https://www.anaconda.com/products/individual#Downloads へ行き、Linux用の
64-Bit (x86) Installer の最新版のURLを確認して、サーバ上で wget を用いてダウンロードしてAnaconda をインストール:

wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh
sudo chmod +x Anaconda3-2021.11-Linux-x86_64.sh
sudo ./Anaconda3-2021.11-Linux-x86_64.sh -b -p /opt/anaconda3

Anaconda のコマンドへの path を通すため、以下のように /etc/profile.d/anaconda.sh を作る:

sudo echo 'export PATH="$PATH:/opt/anaconda3/bin"' | sudo tee /etc/profile.d/anaconda.sh

一旦、再起動。

sudo reboot

その後、jupyterhub をインストール:

sudo /opt/anaconda3/bin/conda install -c conda-forge jupyterhub

(Proceed ([y]/n)? と聞かれたら ENTERキーを押す)

日本語化パッケージをインストール:

sudo /opt/anaconda3/bin/pip install jupyterlab-language-pack-ja-JP

設定ファイル用のディレクトリを作っておく:

sudo mkdir -p /etc/jupyterhub/ /srv/jupyterhub/

設定ファイルを作る:
(以下の your.host.name の部分は、自分のサーバのホスト名に置き換えてください。
user00, user01, ... などのユーザ名の箇所も適宜、変えてください。)

/etc/jupyterhub/jupyterhub_config.py
c = get_config()

# Allows multiple single-server per user
c.JupyterHub.allow_named_servers = True

c.JupyterHub.port = 443
c.JupyterHub.ssl_key =  '/etc/letsencrypt/live/your.host.name/privkey.pem'
c.JupyterHub.ssl_cert = '/etc/letsencrypt/live/your.host.name/fullchain.pem'

c.JupyterHub.cookie_secret_file = '/srv/jupyterhub/jupyterhub_cookie_secret';
# c.JupyterHub.db_url = '/srv/jupyterhub/jupyterhub.sqlite';

# create system users that don't exist yet
c.LocalAuthenticator.create_system_users = True

# specify users and admin
c.Authenticator.allowed_users = {'user00', 'user01', 'user02', 'user03'}
c.Authenticator.admin_users = {'user00'}

OS起動時に自動起動させるための設定ファイルを作る:

/etc/systemd/system/jupyterhub.service
[Unit]
Description=Jupyterhub
After=syslog.target network.target

[Service]
User=root
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/anaconda3/bin"
ExecStart=/opt/anaconda3/bin/jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
WorkingDirectory=/etc/jupyterhub

[Install]
WantedBy=multi-user.target

JupyterHubを自動起動するように設定し、起動する:

sudo systemctl enable jupyterhub.service 
sudo systemctl start  jupyterhub.service 

起動すると JupyterHubによって、user00, user01,.. などのユーザが作成される。

user00 などのパスワードを設定:

sudo passwd user00
...

JupyterLab 上で Python だけでなく PHP も使いたい場合は、以下のように psysh と Jupyter-PHP をインストール:

wget https://psysh.org/psysh
sudo chmod +x psysh
sudo mv psysh /usr/local/bin/
wget https://litipk.github.io/Jupyter-PHP-Installer/dist/jupyter-php-installer.phar
sudo php jupyter-php-installer.phar install

これで、 https://your.host.name/ で user00, user01, などでログインできるはずです。
(表示を日本語化するには、ログイン後のメニューの Settings - Language で Japanese を選ぶ)

参考にさせていただいたリソース:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?