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, ... などのユーザ名の箇所も適宜、変えてください。)
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起動時に自動起動させるための設定ファイルを作る:
[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 を選ぶ)
参考にさせていただいたリソース: