40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築
40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]
Filter by Category
40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]
生産効率を上げる方法について筆者が利用している環境を紹介する。前提として、生産効率を高める最も単純な方法はマウスを使わないことだ。したがって、マウスを使わない環境を整備することがまず求められる。次に導入する4つそれぞれの […]
OpenCVで複数の動画を連結する 複数の動画素材を結合したり、GoProで長時間撮影した時に約4GB毎に分割される動画ファイルを結合して一つの動画を書き出す方法です。 コードはGitHubリポジトリにあげています。 開 […]
MEDぐんま 2021に出展しました 2021年5月9日(日)にMEDぐんま 2021に出展しました。 開催概要 ◆MEDぐんま 2021会期: 2021年5月9日(日)会場: 群馬会館
2021年ゴールデンウィーク休業のお知らせ 平素は格別のお引立てを賜り、厚く御礼申し上げます。 誠に勝手ながら、弊社では下記日程をゴールデンウィーク休業とさせて頂きます。 2021年4月29日(木)~ 2021年5月 […]
SDGsぐんまビジネスプラクティスに選定されました 介護現場での「人とテクノロジーの協業」が業務時間の節約や精神的なゆとりの創出につながり、さらには利用者やスタッフ間の豊かなコミュニケーションを生み出し、全ての利用者が本 […]
2021年 長期インターン募集のお知らせ 概要2021年度の長期インターン採用の募集を開始しました。 募集職種・インフラエンジニア・ウェブアプリケーションエンジニア・UI/UXデザイナー・グラフィックデザイナー 想定給与 […]
Pythonでファイルをアップロードする 画像をPOSTして結果を返すプログラムやファイルをアップロードして機械学習の推論を試す時に、ブラウザからFormを使ってアップロードすることもできますが、Pythonでファイルの […]
django-import-exportで管理画面からCSVをインポート 情報を登録する際に一件づつ入力せずにCSVからまとめてインポートして登録が行えるので初期情報を登録する時などに便利な方法です。 コードはGitHu […]
OSError: No translation files found for default language このエラーはDjangoで設定言語が間違ってる時に発生するエラーです。 settings.py setti […]
前回の内容が古くなってしまったので2021年版に更新します。 Dockerを使ってシンプルなDjangoとPostgreSQLの開発環境を構築する方法の2021年版です。以下の点が前回より変わった点です。・Volumeを […]
Pythonのrandomモジュールでランダムな小数・整数を生成 Pythonで乱数(ランダムな小数や整数)が生成できる、randomモジュールの使い方を説明します。 開発環境 float型の乱数を生成(1) float […]
NameError: name ‘os’ is not definedが表示される Djangoの開発を始める時に最初のstartappする前に以下のエラーが出る時があります。これは初期段階でse […]
Pythonのdatetimeで日付、時間の計算(2) 前回からの続きです。 今回は、曜日を取得したり、特定の曜日の日付を取得します。後半は文字列とdatetimeの変換について説明します。 開発環境 本日の曜日を取得 […]
会社説明動画をYouTubeで公開しました 昨年より続く世界規模の環境変化で、イベントをはじめとするオフラインのイベントが中止を余儀なくされています。そのため企業説明会や会社訪問で会うことができなかった多くの方に向けて、 […]
2020年の冬季休業のお知らせ 誠に勝手ながら、弊社では下記日程を冬季休業とさせていただきます。 冬季休業期間 2020年12月26日(土)~2021年1月11日(月) 期間中にいただきましたお問い合わせにつきましては、 […]
群馬県立大泉高等学校で弊社代表の石井が講演しました 2020年11月5日(木)に群馬県立大泉高等学校で弊社代表の石井が講演しました。
Pythonのdatetimeで日付、時間の計算(1) Pythonには日付や日時を扱うdatetimeモジュールがありますが、日付の取得・計算にはtimedeltaを使います。 開発環境 現在の日付、時刻を取得 日付の […]
Pythonのdatetimeで日付や時刻を扱う Pythonには日付や日時を扱うdatetimeモジュールがあります。今回はこのdatetimeモジュールを解説します。 開発環境 現在の日付を取得 現在の時刻を取得 現 […]
Djangoでマイグレーションをやり直す Djangoで開発中にマイグレーションを元に戻したり(ロールバック)、やり直したくなった時の方法です。部分的に戻す方法と初期化したい方法の2パターンを紹介します。 開発環境 まず […]
ssh ubuntu@133.125.51.105
ubuntu@133.125.51.105's password:
sudo apt update
apt list --upgradable
sudo su -
adduser vpsadmin
New password: Retype new password: passwd: password updated successfully Changing the user information for vpsadmin Enter the new value, or press ENTER for the default Full Name []: VPS Admin Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
新しく追加したユーザーにsudo権限を持たせ、sudo権限を持ったユーザーを表示して確認します。
gpasswd -a vpsadmin sudo
cat /etc/group | grep sud
追加したユーザがsudo権限を持つことが確認できました。
sudo:x:27:ubuntu,vpsadmin
ssh vpsadmin@133.125.51.105
vpsadmin@133.125.51.105's password:
mkdir ~/.ssh
chmod 700 ~/.ssh
ls -la
cd .ssh
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/nobukazuishii/.ssh/id_rsa):
sakura_vps
Enter passphrase (empty for no passphrase):
sakura_vps
Enter same passphrase again:
sakura_vps
Generating public/private rsa key pair. Enter file in which to save the key (/Users/nobukazuishii/.ssh/id_rsa): sakura_vps Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in sakura_vps. Your public key has been saved in sakura_vps.pub. The key fingerprint is: SHA256:MFVLyulTj/GKQKX34pxNM8AyHM4h9WcLrP55KPYrlww nobukazuishii@MBA.local The key's randomart image is: +---[RSA 3072]----+ | ..+ o.o | | = @ + . | | @ @ * | | . O B * | | o S B o | | .E+ B + | | .o=oo | | +.=.. | | . ==o | +----[SHA256]-----+
scp sakura_vps.pub vpsadmin@133.125.51.105:/home/vpsadmin/.ssh/authorized_keys
vpsadmin@133.125.51.105's password:
sakura_vps.pub 100% 577 23.2KB/s 00:00
ssh vpsadmin@133.125.51.105
sudo vim /etc/ssh/sshd_config
Port 12322
PermitRootLogin no
PubkeyAuthentication yes コメントアウト
PasswordAuthentication no
:wq
sudo service sshd restart
sudo ufw enable
y
sudo ufw allow 12322
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 8000
sudo ufw status verbose
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
To Action From
12322 ALLOW IN Anywhere
80 ALLOW IN Anywhere
443 ALLOW IN Anywhere
8000 ALLOW IN Anywhere
12322 (v6) ALLOW IN Anywhere (v6)
80 (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
8000 (v6) ALLOW IN Anywhere (v6)
sudo ufw reload
.ssh/configにショートカット用の設定を追記
vim .ssh/config
Host vpstest
HostName 133.125.51.105
User vpsadmin
Port 12322
IdentityFile ~/.ssh/sakura_vps
ssh vpstest
sudo apt install nginx -y
sudo vim /etc/nginx/sites-available/testvps
server {
server_name 133.125.51.105;
root /var/www/testvps/;
location / {
proxy_pass <http://unix>:/run/gunicorn/socket;
}
location /static/ {
alias /var/www/testvps/static/;
}
}
sudo ln -s /etc/nginx/sites-available/testvps /etc/nginx/sites-enabled
sudo /etc/init.d/nginx restart
sudo apt install postgresql
psql -V
psql (PostgreSQL) 12.4 (Ubuntu 12.4-0ubuntu0.20.04.1)
which psql
/usr/bin/psql
sudo -u postgres psql
CREATE DATABASE djangodeploy;
CREATE USER djangoadmin WITH PASSWORD 'password1234';
ALTER ROLE djangoadmin SET client_encoding TO 'utf8';
ALTER ROLE djangoadmin SET default_transaction_isolation TO 'read committed';
ALTER ROLE djangoadmin SET timezone TO 'Asia/Tokyo';
GRANT ALL PRIVILEGES ON DATABASE djangodeploy TO djangoadmin;
ctrl + d
sudo /etc/init.d/postgresql restart
cd /etc/postgresql/12/main
sudo vim pg_hba.conf
# "local" is for Unix domain socket connections only
local all all peer >>> local all all md5
:wq
sudo vim postgresql.conf
#listen_addresses = 'localhost' >>> listen_addresses = '*'
:wq
sudo service postgresql restart
cd
sudo apt install -y python3-pip
sudo apt -y install git
mkdir /var/www/testvps
cd /var/www/
sudo chown vpsadmin testvps
cd testvps
sudo git init
sudo git remote add origin https://github.com/nobnov/deploy_django.git
sudo git pull origin master
sudo apt-get install python3-venv
python3 -m venv venv
pip install -r requirements.txt
sudo vim /etc/systemd/system/gunicorn.socket
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn/socket
[Install]
WantedBy=sockets.target
sudo vim /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
WorkingDirectory=/var/www/testvps
ExecStart=/var/www/testvps/venv/bin/gunicorn --workers 2 --bind unix:/run/gunicorn/socket deploy_django.wsgi:application
[Install]
WantedBy=multi-user.target
sudo /etc/init.d/nginx configtest
sudo systemctl enable --now gunicorn.socket
sudo systemctl start gunicorn.service
python manage.py makemigrations
python manage.py migrate
python manage.py collectstatic
python manage.py createsuperuser
Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Selenium Sentry slack tqdm uWSGI venv Vue.js youtube
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments