ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Djangoを使いたいので、Apache + Wsgi + Djangoをインストール

スポンサードリンク

仕事メモ

Djangoインストール
※公式ドキュメントを参考にしています.

環境はCentOS6.4


1. Pythonの2.7系の最新バージョンをダウンロード

$ cd /usr/local/src/
$ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz

$ tar zxvf Python-2.7.6.tgz
$ cd Python-2.7.6/

$ ./configure --enable-shared

※オプションについて参考
LinuxでPythonをビルドするときの --enable-shared オプションについて

エラーがなければ、次に進むこと
$ make && make install

インストールの確認をします。
ライブラリファイルがないっぽいので

$ /usr/local/bin/python2.7 -V
python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

おろ?
ライブラリファイルがないっぽい
ので、たりないライブラリを設定します。

$ cd /lib64/
$ ln /usr/local/src/Python-2.7.6/libpython2.7.so.1.0 libpython2.7.so.1.0

一旦ログアウトして、ログイン
インストールの確認をします。

$ python -V
Python 2.7.6

うむ!


2. Apache と mod_wsgi のインストール
※Apahceは省略。別記事で載せます。
※ちなみにApacheのディレクトリは、「/usr/local/apache-2.4.9/」

mod_wsgiをインストール

$ cd /usr/local/src/
$ wget https://github.com/GrahamDumpleton/mod_wsgi/archive/3.5.tar.gz

$ tar zxvf 3.5.tar.gz
$ cd mod_wsgi-3.5/

$ ./configure --with-apxs=/usr/local/apache-2.4.9/bin/apxs
$ make && make install

wsgi.conf」という、confファイルを~/apache/conf or ~/apache/conf.d 以下に作成
※今回は conf.d に作成

$ cd /usr/local/apache-2.4.9/conf.d/
$ vim wsgi.conf
# 下記を追加
LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / /usr/local/apache-2.4.9/htdocs/test.com/test/wsgi.py
WSGIPythonPath /usr/local/apache-2.4.9.htdocs/test.com

<Directory /usr/local/apache-2.4.9/htdocs/test.com/test>
        <Files wsgi.py>
        Order deny,allow
        Allow from all
        </Files>
</Directory>

WSGIScriptAlias とか WSGIPythonPath は
絶対パスで書かないといけないっぽい

ファイルを配置するディレクトリを作成します.

$ cd /usr/local/apache-2.4.9/htdocs/
$ mkdir -p test.com/test/
$ vim test.com/test/wsgi.py
#!/usr/local/bin/python
# -*- coding:utf-8 -*-

def application(environ, start_response):
        status = '200 OK'
        output = 'Hello World!'
        response_headers = [('Content-type', 'text/plain'),
                           ('Content-Length', str(len(output)))]
        start_response(status, response_headers)
        return [output]

※参考
Apache と mod_wsgi 環境で Django を使う方法

一旦Apacheの設定はストップ


3. Djangoインストール

ちっと面倒だけど、あとあと楽になるはずなので、pipでインストールしましょう。
で、だいたいの人がpipインストールされていないと思うので
pipからインストールします。

$ cd /usr/local/src/
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

$ pip install -U pip
Requirement already up-to-date: pip in /usr/local/lib/python2.7/site-packages
Cleaning up...

OKっぽい

Djangoインストール

$ pip install Django==1.6.5

確認します.

$ python
Python 2.7.6 (default, Month xx 2xxx, xx:xx:xx) 
[GCC 4.4.7 22222 (Red Hat 2.2.2.2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 6, 5, 'final', 0)


4.Apacheを起動します.

構文ちぇっく

$ /usr/local/apache-2.4.9/bin/httpd -t
Syntax OK

起動

$ /usr/local/apache-2.4.9/bin/apachectl -k start

できた・・・(´Д`)
ダッシュで1時間半のできごと