ホーム >  Python >  Vgrant(CentOS7)にAnaconda+Django+Apache環境を作る(管理画面のCSS)

投稿日:   |  最終更新日:

Vgrant(CentOS7)にAnaconda+Django+Apache環境を作る(管理画面のCSS)

Python

Vagrantで作ったCentOS7環境にAnaconda・Djangoをインストールし、Apacheで動かしました。今回は、静的ファイルのパスを設定します。

管理画面のCSSが適用されない

前回、MariaDBをインストールしてapacheでDjangoを動かせるようにしました。Djangoの管理画面(/admin)は表示されるものの、CSSが適用されません。

静的ファイルのパスの設定が必要

djangoは本番環境にソースを上げる時、静的ファイルのパスの設定をする必要があります。まだDjangoを立ち上げたばかりで何も設定していないため、CSSが適用されていません。

開発環境と本番環境の違い

開発環境で「python manage.py runserver」をした場合、「/static/」直下の静的ファイルを勝手に読み込んでくれます。しかし、本番環境のはApacheなどでは自動で行ってくれません。Webサーバ側に静的ファイルの管理を任せるように設定します。つまり、プロジェクトに静的ファイルを置きません。

準備

Vagrantでゲスト環境(仮想環境)を作ります。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

Vagrantのcentos7環境の詳細を調べる場合は以下のように確認します。

VagrantのCentOS7の環境を確認(lsb_releaseコマンドなど)

③バージョン管理ツールのpyenvインストールします。Anacondaインストールに使います。

VagrantのCentOS7にバージョン管理ツールをインストール(pyenv)

④Anaconda・Djangoインストールします。

Vgrant(CentOS7)にAnaconda+Django+Apache環境を作る(Anaconda・Djangoインストール)

⑤MariaDBをインストールしてApacheで動かします。

Vgrant(CentOS7)にAnaconda+Django+Apache環境を作る(MariaDBのインストール・設定)

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
pyenv 1.1.3-5-g7dae197
Anaconda 3-4.3.0
MariaDB 5.5.52-1.el7
Apache 2.4.6
mod_wsgi 4.5.14

Vagrantへログイン

①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。

cd vagrant/django_apps/

②【ホスト環境】仮想マシンを起動します。

vagrant up

③【ホスト環境】ログインします。

vagrant ssh

静的ファイルのパスの設定

①rootにログインします。

su -
パスワード:vagrant

②前回生成したDjangoプロジェクト「pj1」のsetting.pyを編集します。

vi /home/django/pj1/pj1/settings.py

ファイルの一番下に以下の記述を追記します。

STATIC_ROOT = '/home/django/pj1/static/'
STATIC_URL = '/static/'

以下のように静的ファイルを置く場所を決めます。

STATIC_ROOT = ‘/home/django/xxx/static/’

③collectstaticコマンドでプロジェクト以下の静的ファイルを、プロジェクト外にコピーします。コピーする前に、helpを表示します。

cd /home/django/pj1/
python manage.py collectstatic -h

あれ?「PROJECT_PATH」がありませんと怒られてしまいました。

NameError: name 'PROJECT_PATH' is not defined

④setting.pyにPROJECT_PATHの設定がありませんので、以下の設定値をsetting.pyのSTATIC_ROOTより上に設定してください。

vi /home/django/pj1/pj1/settings.py

ファイルの一番下に以下の記述を追記します。

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

STATIC_ROOT = '/home/django/pj1/static/'
STATIC_URL = '/static/'

⑤collectstaticコマンドでプロジェクト以下の静的ファイルを、プロジェクト外にコピーします。

python manage.py collectstatic

⑥ホスト環境のブラウザから、以下のURLを入力します。

http://192.168.33.15/admin/

⑥以下の管理サイトが表示されます。

トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター、フロントエンドエンジニア 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 20

最近の投稿
人気記事
カテゴリー
広告