LoginSignup
5
5

More than 5 years have passed since last update.

環境構築手順書: Ubuntu + Apache2 + Python + Pyramid

Last updated at Posted at 2014-01-26

はじめに

本書では、Ubuntu環境におけるApache + Python + Pyramid の導入手順について記述します。

前提条件

今回の環境構築には、以下のソフトウェアを使用します。

ソフトウェア バージョン
Ubuntu 12.04 LTS
Apache 2.2.22
Python(System) 2.7.3 (Ubuntu 12.04に標準でインストールされているもの)
Python(for virtualenv) 2.7.6
VirtualEnv 1.7.1.2
Pythonz -
Pyramid 1.4.5

今回は、AWS上で環境構築しました。
その際に使用したAMIは「Ubuntu Server 12.04.3 LTS - ami-6aad335a (64-bit)」です。

また、以下の準備をしておいてください。

  • 環境構築前にpyramidユーザーを作成していること。

→ pyramidユーザーの作成手順は下記を参照してください。(rootユーザーで実行してください。)

$ sudo adduser pyramid # パスワードは任意のものを入力してください。それ以外の項目については全てEnterを押してください。
$ sudo gpasswd -a pyramid sudo
$ sudo cp -r /home/ubuntu/.ssh /home/pyramid
$ sudo chown -R pyramid:pyramid /home/pyramid/.ssh
  • pyramidアプリケーションを作成していること。

→ 今回の説明では、「sampleapp」というアプリケーションを使用します。「sampleapp」の作成手順は下記の通りです。(「sampleapp」を作成する際は、下記手順の(14)までを実施しておいてください。)

$ cd /home/pyramid
$ pcreate -s starter sampleapp
$ cd sampleapp
$ python setup.py install

手順

ここからの手順については、全てpyramidユーザーで実行してください。

(1) パッケージ管理システム(APT)のパッケージリストを最新にします。

$ sudo apt-get -y update

(2) インストール済みのパッケージをアップグレードします。

$ sudo apt-get -y upgrade

(3) build-essential と curl をインストールします。

$ sudo apt-get -y install build-essential curl

(4) Python関連のパッケージをインストールします。

$ sudo apt-get -y install python-dev python-setuptools python-pip python-virtualenv

(5) Pythonzでビルドする際に必要なライブラリをインストールします。

$ sudo apt-get -y install libncurses-dev libreadline6-dev libbz2-dev liblzma-dev libsqlite3-dev libgbm-dev

(6) Apache2をインストールします。

$ sudo apt-get -y install apache2

(7) mod_wsgiをインストールします。

$ sudo apt-get -y install libapache2-mod-wsgi

(8) Pythonzをインストールします。

$ curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash

(9) /home/pyramid/.bashrcに以下の内容を追加します。

[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc

(10) .bashrcの内容を適用させます。

$ source /home/pyramid/.bashrc

(11) Pythonzを使って、Python 2.7.6をインストールします。

$ pythonz install 2.7.6

(12) PythonzとVirtualenvを使って、Pyramidで使用するPython環境を作成します。
*) 今回、作成するPython環境の名前を「env」とします。

$ mkdir /home/pyramid/.virtualenv
$ cd /home/pyramid/.virtualenv
$ virtualenv -p /home/pyramid/.pythonz/pythons/CPython-2.7.6/bin/python --no-site-packages env

(13) 上記で作成したenv環境を有効にします.

$ source /home/pyramid/.virtualenv/env/bin/activate

(14) Pyramidをインストールします。今回は1.4.5のバージョンをインストールするため、下記のコマンドを実行します。
*) 最新版のpyramidをインストールする場合は「pip install pyramid」を実行してください。

$ pip install pyramid==1.4.5

(15) sampleappの直下にpyramid.wsgiファイルを作成します。

$ cd /home/pyramid/sampleapp
$ vi pyramid.wsgi

(16) pyramid.wsgiファイルに下記の内容を追加します。
*) 今回は本番環境で動作することを想定して記載しています。開発環境の場合は、production.iniがdevelopment.iniになります。

from pyramid.paster import get_app
application = get_app(
  '/home/pyramid/sampleapp/production.ini', 'main')

(17) pyramid.wsgiファイルのパーミッション権限を755に変更します。

$ sudo chmod 755 /home/pyramid/sampleapp/pyramid.wsgi

(18) Pyramid用のApache設定ファイルを作成します。

$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/pyramid
$ sudo vi /etc/apache2/sites-available/pyramid

(19) 作成した設定ファイルをviで開き、下記の内容に変更します。

<VirtualHost *:80>
    DocumentRoot /home/pyramid/sampleapp
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    WSGIDaemonProcess pyramid user=www-data group=www-data threads=4 \
    python-path=/home/pyramid/.virtualenv/env/lib/python2.7/site-packages
    WSGIScriptAlias /sampleapp /home/pyramid/sampleapp/pyramid.wsgi
    <Directory /home/pyramid/sampleapp/>
        WSGIProcessGroup pyramid
        Order allow,deny
        Allow from all
    </Directory>
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

(20) Pyramidのサイトを有効にし、デフォルトのサイトを無効にします。

$ sudo a2ensite pyramid
$ sudo a2dissite default

(21) Apacheを再起動します。

$ sudo /etc/init.d/apache2 restart

(22) ブラウザで「http://[ipaddress]/sampleapp」にアクセスし、Pyramidのページが表示されることを確認します。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5