Djangoの開発環境を作成した時の備忘録。
2020年2月17日にコピペでCentOS7の初期設定、PythonインストールからMySQLサーバーにログインまでできることを確認。
作成する環境
OS : CentOS7
Database : MySQL
フレームワーク:Django
言語:Python3.7
使用ツール
Vagrnat
仮想環境を管理するためのツールです。
Vagrantfileを用意すると、ファイルの内容に沿ったコマンドが自動で実行されるため、このファイルを共有するだけで、同じ環境を簡単に用意することができます。
Virtual Box
仮想化ソフトウェア・パッケージの一つ。仮想環境を用意するために必要なツールです。
Python環境は、Ubuntu仮想環境の上に構築します。
仮想環境の構築
現時点で、Cent OSのVagrant Boxファイルがインストールできているかを確認します。できていない場合は、各自でインストールをしてください。
1 2 |
>>> vagrant box list centos/7 (virtualbox, 1905.1) |
次に、以下のコマンドでVagrantfileを作成します。これが仮想マシーンの鋳型のような物になります。
1 |
vagrant init <マシーン名> |
出来上がった、Vagrantfileを開き、以下のような行を追加します。
1 |
config.vm.synced_folder "./workspace", "/home/vagrant/django_rest_framework" |
これで、PCのVagrantfileと同じディレクトリ の
ディレクトリ が同期されます。この辺りは各自のセンスで命名しましょう。workspace
`フォルダと仮想マシーンの
`django_rest_framework
これで準備は全て整ったので、仮想マシーンを起動させていきます。
1 2 3 4 |
# ファイル共有のためのプラグイン vagrant plugin install vagrant-vbguest # 起動 vagrant up |
で仮想マシーンを起動させ
1 |
vagrant status |
runnningになっていることを確認したら。
1 |
vagrant ssh |
仮想環境に接続します。
これで仮想環境の構築までは完了!
基本設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# yumをアップデート sudo yum update -y # gitをインストール sudo yum install git -y # 必要なライブラリを入れておく sudo yum install libffi-devel zlib-devel bzip2 bzip2-devel readline-devel openssl-devel python-devel mysql-devel gcc -y yum install wget # firewalldは切っておく systemctl stop firewalld # firewalld自動起動停止 systemctl disable firewalld # SELinixの確認 getenforce # もし Enforcingの場合は、 以下で編集しSELINUX=enforcingをSELINUX=disabledに書き換える。 sudo vi /etc/selinux/config # 設定を反映させるためにマシンを一旦シャットダウン sudo shutdown -r now # 僕の場合は、何故かDisableにならずにParmissiveになった getenforce |
パスワードを聞かれた場合は
と入力します。vagrant
Python環境を整える
今回は、仮想マシーン上でpyenvを使うことにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile source ~/.bash_profile exec $SHELL -l pyenv -v pyenv install -l pyenv install 3.7.0 pyenv versions pyenv global 3.7.0 pyenv versions pip install django pip install djangorestframework pip install django-filter pip install djangorestframework-jwt pip install djoser # pip install PyMySQL # mysqlclient採用 pip install mysqlclient pip install uwsgi # MySQLをインストール sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm sudo yum info mysql-community-server sudo yum install -y mysql-community-server |
MySQLインストール参考
How to Install MySQL on CentOS 7
MySQL5.7の初期設定はこちら
CentOS7にMySQLをインストールした時の備忘録
MySQLの初期設定は別記事にまとめました。
DjangoとMySQLの接続設定備忘録
Djangoプロジェクトを作成
まず、PCとvファイル共有しているディレクトリ へ移動します。
1 2 3 |
[vagrant@localhost ~]$ cd django_rest_framework/ [vagrant@localhost django_rest_framework]$ pwd /home/vagrant/django_rest_framework |
できたら、以下のコマンドでプロジェクトを作成
1 |
[vagrant@localhost ~]$ django-admin startproject <アプリ名> |
これで作業が始められそうです。
1 2 3 4 5 6 7 8 9 |
. └── diary_app ├── diary_app │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py |
仮想環境をシャットダウンする
で仮想環境から抜けます。exit
1 2 3 |
[vagrant@localhost django_rest_framework]$ exit ログアウト Connection to 127.0.0.1 closed. |
最後に
で仮想環境をシャットダウンして作業終了です。vagrant halt
⬇️現在、Djangoで作成中のアプリケーション
【GitHub】日記アプリハマったエラー
vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Leave a Reply