タグ「DjangoでWebサービス環境構築」が付けられているもの

ここまでに、

を行ったので、Djangoのインストールを実施する。

Djangoのインストール

Django のダウンロード

https://www.djangoproject.com/download/

# wget https://www.djangoproject.com/download/1.5.4/tarball/

解凍

# tar xvf Django-1.5.4.tar.gz

Django のインストール

単にインストールするのではなく、事前に準備インストールしておいた、Python2.7 にDjangoをインストールする。

]# cd Django-1.5.4
# python2.7 setup.py install

MySQL-Python のインストール

Python から MySQLを利用できるようにするために、MySQL-Python のインストールを行う。

こちらも、Python2.7 でインストールを行う。

ダウンロード、解凍、インストール

# wget --no-check-certificate https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.4.zip#md5=ddf2386daf10a97af115ffad2ed4a9a0
# unzip MySQL-python-1.2.4.zip 
# cd MySQL-python-1.2.4
# python2.7 setup.py instal

mod_wsgi のインストール

Apache と Django を連携させるために、mod_wsgi をインストールする。

WSGI とは、WebサーバーとWebアプリケーションを接続するためのインターフェース定義で、Pythonで標準として使われている。

必要なライブラリのインストール

httpd-devel

# yum install httpd-devel

python-devel

# yum install python-devel

mod_ssl

# yum install mod_ssl

modwsgi のインストール

ダウンロードと解凍

# wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
# tar xvf mod_wsgi-3.4.tar.gz 

インストール

--with-pyhton に、Python2.7のインストールパスを指定しインストール

# cd mod_wsgi-3.4
# ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/bin/python2.7
# make
# make install

Djangoのインストールはここまで。

前回(ServersMan(CentOS 6) に Django 環境を構築する(1) Python2.7のインストールまで) に続いて、、Django のバックエンドデータベースとして、MySQL 5.6 を利用することを前提に、MySQLのインストールを行う。

MySQLのダウンロード

Download MySQL Community Server のページを開く

mysql_inst01

ダウンロード対象にて、「Linux Generic」 を選択し、「Linux - Generic (glibc 2.5) (x86, 32-bit), RPM Bundle」のダウンロードボタンを押下。

mysql_inst02

Oracleのアカウントが無い場合、ここで作成を求められるので作成します。

あれば、ログインして次に進みます。

mysql_inst04

おおよそ 300MB のファイルをダウンロード

mysql_inst03

FTPサーバーの構築

MySQLのダウンロードには、上記の様な手順を踏むので、サーバー側で、wget によってファイルをダウンロードすることができません。

ので、PCでダウンロードしたファイルを、サーバーに送らなければいけないので、この機会にFTPサーバーも設定しておきます。

インストール

サーバーにログインして、

# rpm -q vsftpd
package vsftpd is not installed

念のため、インストールされているか確認する。。。されていない。

# yum install -y vsftpd
Loaded plugins: fastestmirror
    :
Installed:
  vsftpd.i686 0:2.2.2-11.el6_4.1                                                                           

Complete!

インストール完了

 

設定

/etc/vsftpd/vsftpd.conf を編集します。

匿名ログインを無効化

2行目をコメント化。

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# anonymous_enable=YES

ログを出力

3行目のコメントを外す。

# The name of log file when xferlog_enable=YES and xferlog_std_format=YES
# WARNING - changing this filename affects /etc/logrotate.d/vsftpd.log
xferlog_file=/var/log/xferlog

接続制限の設定

以下の様になっていることを確認

tcp_wrappers=YES

/etc/hosts.allow の最終行に以下を追記(制限をかけるときはここで行う)

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
vsftpd : ALL : ALLOW

接続ユーザーの追加

基本的に、rootでは、FTPサーバーに接続できないため、ユーザーを追加する

非推奨だが、root でログインできる様にするためには、/etc/vsftpd/ftpusers、/etc/vsftpd/user_list の両方からroot 行をコメントアウトすることで可能

# useradd xxxx
# passwd xxxx
# gpasswd -a xxx root

自動起動の設定

ランレベル 3 で自動起動するように設定する。(現状の確認から設定)

# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:off    4:off   5:off   6:off
# runlevel
N 3
# chkconfig --level 3 vsftpd on
# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:on    4:off   5:off   6:off

起動

FTPサーバーを起動する。

# /sbin/service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]

これで、FTPでアップロードできる様になりますので、ダウンロードしたMySQLのインストールファイルを、サーバーに上げてください。

MySQLのインストール

ファイルの解凍をすると、いくつかのRPMファイルが展開される。

# tar xvf MySQL-5.6.14-1.linux_glibc2.5.i386.rpm-bundle.tar 
MySQL-shared-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-embedded-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-server-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-shared-compat-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-devel-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-test-5.6.14-1.linux_glibc2.5.i386.rpm
MySQL-client-5.6.14-1.linux_glibc2.5.i386.rpm
  • 標準の最低限のインストールには、サーバーとクライアント RPM をインストールする
  • RPM はまた MySQL サーバーを運用するためのユーザー mysql (存在しない場合) のログインアカウントが作成されます
  • 開発用のヘッダー(devel)もDjangoで必要になるのでインストールする
  • サーバーのインストール時に、rootパスワードの情報が表示されるので、見過ごさない
# rpm -ivh MySQL-shared-5.6.14-1.linux_glibc2.5.i386.rpm 
# rpm -ivh MySQL-shared-compat-5.6.14-1.linux_glibc2.5.i386.rpm
# rpm -ivh MySQL-server-5.6.14-1.linux_glibc2.5.i386.rpm 
error: Failed dependencies:
        libaio.so.1 is needed by MySQL-server-5.6.14-1.linux_glibc2.5.i386
        libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.6.14-1.linux_glibc2.5.i386
        libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.6.14-1.linux_glibc2.5.i386

libaio が無いとエラーになる場合、インストールして再実行

# yum install libaio
# rpm -ivh MySQL-server-5.6.14-1.linux_glibc2.5.i386.rpm 

このとき、初期パスワードに関する情報が出力されるので、忘れずに確認すること!

root ユーザー用のランダムパスワードが設定されて、/root/.mysql_secret にそのパスワードが記述されたようだ。

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
# rpm -ivh MySQL-client-5.6.14-1.linux_glibc2.5.i386.rpm
# rpm -ivh MySQL-devel-5.6.14-1.linux_glibc2.5.i386.rpm 

MySQLの起動と停止

起動と停止を行ってみる。

起動

# /sbin/service mysql start
Starting MySQL.. SUCCESS! 

停止

# /sbin/service mysql stop
Shutting down MySQL.. SUCCESS!

ランレベル 3 で自動起動される様に設定されたか確認

# chkconfig | grep "mysql"
mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

ルートパスワードの変更

初期設定されたパスワードを確認する

# cat /root/.mysql_secret 
# The random password set for the root user at Mon Oct 14 23:19:35 2013 (local time): xsHn1DXH

MySQLにログイン(上記手順で起動させておく)

mysql -u root -p でログインすると、パスワードの入力を求められるので、上記で確認したパスワードを入力すると、mysqlのプロンプトが表示される。

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.14

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

パスワードを変更する

mysql> set password for 'root'@'localhost' = password('xxxxxxxx');
Query OK, 0 rows affected (0.00 sec)

以上で、MySQLのインストールまで完了!

次は、Djangoのインストール

PaaS もいいけどIaaSもね。ということで、GAEだのみではなくて、サービスをつくる環境をServersMan@VPSに、構築してみる。仕事での環境がここんところ変わらないので、こういうことを定期的にやらないとな~というのはある。

まずは、Python2.7 をCentOS6に追加するところまで。

ServersMan@VPS Entry プラン で、CentOS 6.3 を立ち上げる

ServersMan@VPS から、仮想専用サーバーサービスを申し込む。

serversman01

データセンターを選択 (東京/大阪)

serversman02 

ウィザードに従い、いくつかの質問に答えると、申込み完了。

serversman03

IPアドレス、rootパスワードなどの接続情報が、登録したメールアドレス宛に送られてくる。

10分程度待つとログインできる様になる。

まず、上記メールアドレスの情報を確認し、サーバーにログイン、root パスワードを変更する。

# passwd root
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

一応、CentOS のバージョンを確認しておく

# cat /etc/redhat-release 
CentOS release 6.3 (Final)

Python2.7 のインストール

インストールされているPythonのバージョンを確認

# python
Python 2.6.6 (r266:84292, Jun 18 2012, 14:10:23) 
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

各種ライブラリのインストール

  • 必要に応じて、事前に各種ライブラリや開発用のヘッダファイルやライブラリ(xxx-devel) を事前にインストールしておく
  • 後で必要になった場合、この後の Pythonのリビルド手順を再度実施する。

例えば、Pythonで必要なライブラリをインポートしようとすると、以下の様なエラーとなる。

>>> import glib
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named glib

gcc のインストール

# yum install gcc

gzip2-devel のインストール

# yum install bzip2-devel

zlib-devel のインストール

  • zlib-devel がインストールされていないと、後のPyPIのインストールで失敗する
yum install zlib-devel

openssl のインストール

  • SSLが使えるようにしておかないと、PIPのインストールでエラーになる。
  • >>> import ssl でエラーになる場合、インストールされていない

opensslの場所を確認

/usr 以下に存在することが確認できる。後で、Pythoの設定ファイルを編集する。

# whereis openssl
openssl: /usr/bin/openssl /usr/lib/openssl /usr/share/man/man1/openssl.1ssl.gz

openssl-devel のインストール

yum install openssl-devel

Python のインストール

Pythonのダウンロード

python2.7.5 をダウンロードする

# wget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

解凍

# tar xvf Python-2.7.5.tar.bz2 

設定ファイルの変更

openssl

上記でインストールした、opensslを利用する場合、Python-2.7.5/Modules/Setup.dist の SSL のコメントを外す。

# cd Python-2.7.5
# cd Modules/
# vi Setup.dist
  • 上記で、/usr 以下にopesslが存在することを確認しているので、Setup.dist ファイルの、以下の部分、SSL以下、コメント化されている部分を外し、SSL=/usr に修正する。
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
 SSL=/usr
 _ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

Python の Configure

Python-2.7.5 フォルダに、戻って、configure コマンドを実行する

# cd Python-2.7.5
# ./configure --prefix=/usr/local

Python の make

  • make install ではなく、altinstall を使用する。
  • make install だと、既にインストールされているバージョンと衝突してしまい、やっかいなことになる
# make && make altinstall

Python2.7 の確認

  • インストールされたか確認する。
  • python2.7 で起動する。
# python2.7
Python 2.7.5 (default, Oct  6 2013, 22:23:52) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

PyPI(Python Package Index)のインストール

PyPIとは、Pythonの公式のサードパーティソフトウェアリポジトリ

ダウンロードとインストール

# wget --no-check-certificate https://pypi.python.org/packages/source/d/distribute/distribute-0.6.9.tar.gz
# tar xvf distribute-0.6.9.tar.gz 
# cd distribute-0.6.9
# python2.7 setup.py install

 

EasyInstallが使えるようになるので、PIP をインストールする

PIP とは、パッケージのインストールと管理ツール

http://www.pip-installer.org/en/latest/

# easy_install-2.7 pip

以上で、Python2.7の導入は完了。


次は、MySQLのインストール!


参考