Ubuntu 18.04에 설치하며, domain이 있는 경우에 한해서 설치하는 방법을 기술한다.
분명 1~2년 뒤에 ubuntu 갈아엎을 일이 생길텐데, 이 때 까먹어서 시간낭비하는 것을 방지하기 위해서 기록한다.
-
도메인을 구입한다.
- 나는 바보같이 http://hosting.kr 에서 비싼 돈 내고 구입했으나, 구글링을 하면 미국에서 아주 싸게 구입할 수 있다. 아무튼 구입은 해야 한다.
- IP주소 연결과 서브도메인 설정하기. 추가한 서브도메인은 www.ohmycarpenter.com 과 jpt.ohmycarpenter.com 이다.
- hosting.kr에서는 '네임서버(서브도메인) 설정 관리' 메뉴로 들어가서 설정해야 한다.
- 나는 ohmycarpenter.com, www.ohmycarpenter, jpt.ohmycarpenter.com 모두 같은 IP로 밀어넣었다.
-
Let's Encrypt 를 설치한다.
- apt로 설치한다.
sudo -H ./letsencrypt-auto certonly --apache -d ohmycarpenter.com -d www.ohmycarpenter -d jpt.ohmycarpenter.com sudo add-apt-repository ppa:certbot/certbot sudo apt-get install certbot sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096 ## pem 파일들 권한 조정한다.
- 다음 명령어로 letsencrypt 인증서를 매월 1일마다 갱신하게 만든다.
sudo crontab -e # 다음 줄을 추가한다. 0 0 1 * * /bin/bash -l -c "certbot renew --quiet"
- apt로 설치한다.
-
Apache2 서버 설정을 한다.
- 다음 명령어로 apache2 설치
sudo apt install apache2
-
/etc/apache2/sites-available에 다음과 같이 네 개의 파일을 생성
# file: http.jpt.ohmycarpenter.com.conf <VirtualHost *:80> ServerName jpt.ohmycarpenter.com Redirect / https://jpt.ohmycarpenter.com/ ServerAlias jpt.ohmycarpenter.com </VirtualHost>
# file: https.jpt.ohmycarpenter.com.conf <IfModule mod_ssl.c> <VirtualHost *:443> ServerName jpt.ohmycarpenter.com ServerAlias jpt.ohmycarpenter.com # configure SSL SSLEngine on SSLCertificateFile /some/where/ohmycarpenter.com/full_chain.pem SSLCertificateKeyFile /some/where/ohmycarpenter.com/priv_key.pem SSLProtocol All -SSLv2 -SSLv3 SSLOpenSSLConfCmd DHParameters /etc/ssl/certs/dhparam.pem SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH # Use RewriteEngine to handle websocket connection upgrades RewriteEngine On RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /(.*) ws://127.0.0.1:8000/\ [P,L] <Location "/"> # preserve Host header to avoid cross-origin problems ProxyPreserveHost on # proxy to JupyterHub ProxyPass http://127.0.0.1:8000/ ProxyPassReverse http://127.0.0.1:8000/ </Location> </VirtualHost> </IfModule>
# file: http.www.ohmycarpenter.com.conf <VirtualHost *:80> ServerName www.ohmycarpenter.com ServerAlias www.ohmycarpenter.com ohmycarpenter.com ServerAdmin webmaster@localhost Redirect / https://www.ohmycarpenter.com/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
# file: https.www.ohmycarpenter.com.conf <IfModule mod_ssl.c> # <VirtualHost _default_:443> <VirtualHost *:443> ServerAdmin webmaster@localhost DocumentRoot /home2/www/wordpress ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /some/where/ohmycarpenter.com/cert1.pem SSLCertificateKeyFile /some/where/ohmycarpenter.com/priv_key.pem SSLCertificateChainFile /some/where/ohmycarpenter.com/chain1.pem SSLProtocol All -SSLv2 -SSLv3 SSLOpenSSLConfCmd DHParameters /etc/ssl/certs/dhparam.pem SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH ServerAdmin oh.donghyun77@gmail.com ServerName ohmycarpenter.com ServerAlias www.ohmycarpenter.com <Directory /home2/www/wordpress/> AllowOverride All </Directory> <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
#위 네개의 파일에 대해 symbolic link를 만든다. ln -s /etc/apache2/sites-available/http.www.ohmycarpenter.com /etc/apache2/sites-enabled/http.www.ohmycarpenter.com ln -s /etc/apache2/sites-available/https.www.ohmycarpenter.com /etc/apache2/sites-enabled/https.www.ohmycarpenter.com ln -s /etc/apache2/sites-available/http.jpt.ohmycarpenter.com /etc/apache2/sites-enabled/httpjpt.ohmycarpenter.com ln -s /etc/apache2/sites-available/https.jpt.ohmycarpenter.com /etc/apache2/sites-enabled/https.jpt.ohmycarpenter.com
- 다음 명령어로 apache2 설치
-
wordpress 를 설치한다.
- 웹사이트 돌아다니면서 가장 간단하게 설명해 놓은 것을 참조해서 설치한다.
- wordpress 루트 디렉토리를 www-data user, group으로 한정 및 755로 권한 조정하고, wp-config.php 파일은 640으로 권한 조정
- 필수 설치 플러그인: all in one wp security, cc-syntax-highlight, easy updates manager, jetpack, really simple ssl (돈 안 내도 됨), 고전 편집기, WP Githuber MD
- All In One WP Security로 보안 테스트 및 설정한다.
-
JupyterHub를 설치한다.
- 다음 명령어로 TLJH를 설치한다.
sudo apt install python3 python3-dev git curl sudo adduser jpthub_admin_id curl https://raw.githubusercontent.com/jupyterhub/the-littlest-jupyterhub/master/bootstrap/bootstrap.py | sudo -E python3 - --admin jpthub_admin_id
- 다음 명령어로 아파치 서버와 jupyterhub를 시작한다.
sudo systemctl start apache2
- 다음 명령어로 jupyterhub 설정을 한다.
sudo tljh-config set https.tls.key /some/where//ohmycarpenter.com/priv_key.pem sudo tljh-config set https.tls.cert /some/where/ohmycarpenter.com/chain.pem sudo tljh-config reload proxy sudo tljh-config set user_environment.default_app jupyterlab sudo tljh-config set limits.memory 40G sudo tljh-config add-item users.admin another_admin_id_existed_in_ubuntu sudo tljh-config reload
- 다음 명령어로 TLJH를 설치한다.
-
Tensorflow 설치를 한다.
- NVIDIA GPU driver 410, CUDA toolkit 10.0, cuDNN 7.4 를 매뉴얼을 따라서 설치한다. Tensorflow 버전마다 지원하는 CUDA가 다른 듯 하니 버전을 잘 살펴가면서 설치해야 할 듯. 참고 사이트: https://www.tensorflow.org/install/gpu
apt로 cuda-10-0, cudnn-7-4-2, nvidia-driver-410 설치하면 tensorflow-2.0.0 설치 가능 - pip로 tensorflow-gpu를 설치한다.
sudo apt-get -y install python3-pip sudo pip3 install tensorflow-gpu==2.0.0 # 2.0.0 버전 설치 명기
- NVIDIA GPU driver 410, CUDA toolkit 10.0, cuDNN 7.4 를 매뉴얼을 따라서 설치한다. Tensorflow 버전마다 지원하는 CUDA가 다른 듯 하니 버전을 잘 살펴가면서 설치해야 할 듯. 참고 사이트: https://www.tensorflow.org/install/gpu
-
Jupyterhub에 jpt_admin_id로 로긴을 하고 python 필수 패키지들과 Anaconda, iRkernel을 설치한다.
- New -> Terminal로 들어가서 다음 명령어로 python 패키지들 설치
sudo -E pip3 install packages # keras, coffee, pandas, etc.
- 다음 명령어로 Anaconda3 설치: 이미 R이 설치도어 있으면, 사실 iRKernel 설치하는데 Anaconda는 필요하지 않은 듯
cd ~/tmp curl -O https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh bash Anaconda3-2019.10-Linux-x86_64.sh conda update --all
- 다음 명령어로 R에서 다음 명령어를 넣어서 iRKernel을 설치
install.packages('IRkernel') IRkernel::installspec() ## remove unnecessary environment settings in $HOME/.Rprofile, such as options(device = "x11").
- New -> Terminal로 들어가서 다음 명령어로 python 패키지들 설치
-
JupyterHub에서 admin -> user 관리는 메뉴가 뜨기도 했다가 안 뜨기도 했다가 하는 듯. 나중에 버전 업데이트 되면서 고쳐지면 좋을 듯 하다.