2017年8月28日Vgrant(CentOS7)にAnaconda+Django+Apache環境を作る(MariaDBのインストール・設定)PythonVagrantで作ったCentOS7環境にAnaconda・Djangoをインストールします。最終的にApacheで動かしたいと思います。次回ApacheでDjangoを動かすには?Apacheは、ウェブサーバの中で一番使われてます。デフォルトではPythonを解釈する機能が付いていません。mod_WSGIを使って、別途カスタマイズする必要があります。mod_wsgiとは?wsgiはウィズギーと読みます。Apacheのモジュールの1つで、Pythonを実行できるようにしてくれます。準備Vagrantでゲスト環境(仮想環境)を作ります。1Virtualboxをインストールします。Virtualboxのインストールまでで結構です。Ubuntu2Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。UbuntuVagrantのcentos7環境の詳細を調べる場合は以下のように確認します。→VagrantのCentOS7の環境を確認(lsb_releaseコマンドなど)3バージョン管理ツールのpyenvインストールします。Anacondaインストールに使います。→VagrantのCentOS7にバージョン管理ツールをインストール(pyenv)4Anaconda・Djangoインストールします。7.1.1503pyenv1.1.3-5-g7dae197Anaconda3-4.3.0MariaDB5.5.52-1.el7Apache2.4.6mod_wsgi4.5.14Vagrantへログイン1【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。vagrant/django_apps/2【ホスト環境】仮想マシンを起動します。up3【ホスト環境】ログインします。sshpyenvでpythonをインストールする1rootにログインします。-パスワード:vagrant2Pythonをインストール、設定します。新規インストール後、このコマンドを実行する必要があるそうです。anaconda3-4.3.0MariaDBをインストール1MariaDBをインストールしていきます。mariadb-devel2「/etc/my.cnf」を編集します。/etc/my.cnf[mysqld]の下に以下を追記。utf8sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES一番下の行に以下を追記。utf83MariaDBをPythonプログラムから操作するため、mysqlclientをインストールします。mysqlclient成功すると、以下のようなメッセージが表示されます。mysqlclient-1.3.104MariaDBを起動します。mariadb5MariaDBにrootユーザでログインします。root6新規にデータベースを作成します。ここでは、「app1_db」という名前のデータベースを作成します。sec)7作成したデータベースにアクセスできるユーザを作成します。ユーザとパスワードを設定します。sec)8MySQLプロンプトを終了します。exit9正常にデータベースとユーザが作成されたか確認するために、新しく作成したユーザでログインします。-papp1_passwd10データベースの一覧を表示します。DATABASES;app1_dbが正常に作成されたことを確認することができました。sec)Djangoを使っていると、直接、MariaDBコマンドを叩く機会は多くはありません。Mapping)機能を利用することでModels.pyという設定ファイルに書かれた内容を元に、動的にデータベースが反映されていきます。11mariaDBのバージョンを確認する場合は、以下のコマンドで確認します。mariadbデータベースを初期化1データベースを初期化するため以下のコマンドを実行します。実行するとSQL文が発行され、データベース「app1_db」に管理用テーブルが生成されます。migrate2管理者ユーザを追加します。下記コマンドを実行することで対話モードを実行することができます。createsuperuserここで入力したidとパスワードを覚えておきましょう。3MariaDBにログインして確認します。データベースの中にDjango用テーブルが作成されていることが確認できます。MySQLにログインします。-papp1_passwdテーブルを一覧表示します。sec)4簡易サーバを起動します。0.0.0.0:80005ホスト環境のブラウザから、以下のURLを入力します。http://192.168.33.15:8000/admin/6以下の管理サイトが表示されます。72で入力した管理者情報(ここではID:admin)を入力すると、管理サイトに入ることができます。依存パッケージのインストールAapche、Django、MariaDB連携の依存パッケージをインストールします。1PyMySQLをインストールします。version」で確認するバージョンと表示がずれている場合があるので、「cryptography」をアップグレードします。pycparser-2.18Apacheインストールサーバにapacheをインストールします。httpd念のためブラウザにIPアドレス打ってapacheが動いているか確認しましょう。ホスト環境のブラウザから、以下のURLを入力します。http://192.168.33.15mod_WSGIのインストールインストール時にPythonとmod_WSGIを紐付ける必要があります。pyenvを使っている場合はそれを伝えないといけません。1以下のディレクトリに移動します。/usr/local/src/2mod_wsgiをダウンロードして解凍します。mod_wsgi-4.5.143自分がプロジェクトで使いたいPythonのパスを指定します。以下にダウンロードしたPythonが入っています。anaconda3-4.3.0を使いたい場合は以下のようにバイナリファイルを指定します。–with-python=/usr/local/bin/pyenv/versions/”使いたいバージョン”/bin/python4mod_WSGIの依存関係を満たします。mod_wsgi.soはpythonを見つけられていないです。詳細をlddコマンドで共有ライブラリを検索します。(0x00007fadf89af000)libpython3.6m.so.1.0を見つけられていません。5自分が使うPythonのディレクトリ以下を検索してます。'python'libpython3.6m.solibpython3.6m.so.1.0libpython3.sopython3.66シンボリックリンクを貼りましょう。/lib64/7再度確認します。「libpython3.6m.so.1.0」を貼りました。(0x00007ff5f9458000)Apache設定1apacheの設定ファイルである「httpd.conf」をコピーします。/etc/httpd/conf/httpd.conf.org2「httpd.conf」を編集します。/etc/httpd/conf/httpd.conf以下のように記述します。granted</Directory>WSGIScriptAliasApacheに来たリクエストをどこにつなぐかを指定します。ここでは「/(ルート)」に来たリクエストをDjangoでつくったプロジェクトに飛ばします。WSGIPythonHomemod_wsgiに使わせたいPythonのパスを記述します。インストールの時と違い、ディレクトリを指定します。WSGIPythonPathプロジェクトのパスを指定します。Directory指定のディレクトリにapacheのアクセス許可を与えます。AliasDjangoが静的ファイルを探す場所を指定しています。3「httpd.conf」を編集します。httpd4ホスト環境のブラウザから、以下のURLを入力します。http://192.168.33.15以下のような表示になったことを確認します。4adminにログインします。http://192.168.33.15/admin/以下のような表示になったことを確認します。cssが読み込まれていません。次は管理画面のCSSを有効にするため、静的ファイルのパスの設定を行います。