オープンソースで実現する費用対効果抜群のクラウドERP

OSCG Main Website

Odoo(OpenERP)V7のUbuntu Serverへのインストール手順

By on 2014年6月1日 in ノウハウ | 0 comments

Odoo(旧称OpenERP)は100%オープンソースですので、誰でもインターネットからソースコードを無料でダウンロードして使用することができます。カバーできる業務領域は広範で、且つ一部分に絞った導入もしやすいシステムですので、ERPのような基幹システムとしての導入を目指す前に、例えばCRMだけ導入してみるといったことも可能です。おそらくどのような会社にも、Odooが何かしら業務システム化・業務改善に貢献できる分野はあるのではないかと思いますので、試してみない手はありません。

ということで、「面白そうだからちょっとやってみるか!」という方向けに、遅ればせながらOdoo(OpenERP)V7のインストール手順のご紹介です。開発元のOpenERP S.A.社は、サーバOSとしてUbuntu Serverを推奨しています(OpenERP S.A.社自身Ubuntu Serverを最も使用している)ので、ここではUbuntu Serverへのインストール手順を説明します。

なお、先の記事のとおり OpenERP は Odoo と改称されたのですが、V7のソースコード内での名称の置き換えは現時点でされていませんので、混乱を避けるために、以下の手順に登場するディレクトリやユーザのネーミングは「OpenERP」を念頭に置いたものとします。

0. 準備するもの

Ubuntu Server(もしくはUbuntu Desktopでも構いません)がインストールされたサーバ環境を準備してください。
VPSやVirtualBoxのような仮想化ソフト上の環境で構いません。当然インターネットへの接続も必要です。
Ubuntu Serverバージョンは 12.04LTS もしくは 13.04 を想定しています。その前後のバージョンでも問題ないかもしれませんが、未確認です。

1. サーバー環境整備

OpenERPインストールの前提条件を揃えておきます。

1-1. Ubuntuを最新の状態に更新

とりあえずUbuntu Serverを最新の状態にしておきます。

sudo apt-get update
sudo apt-get dist-upgrade

1-2. openerp ユーザを作成

OpenERPアプリケーションオーナーとなるシステムユーザ openerp を作成します。その際ホームディレクトリに、/opt/openerp/ を指定します。

sudo adduser --system --home=/opt/openerp --group openerp

1-3. PostgreSQLをインストール

OpenERPはデータベースにPostgreSQLを使用します。

sudo apt-get install postgresql postgresql-client

GUI環境を使用し、DB操作もGUI上でという場合は、上記に加え pgadmin3 もインストールしておきましょう。

一旦ユーザをPostgreSQLスーパーユーザの postgres に切り替えた上で、新規DBユーザ openerp を作成します。

sudo su postgres
createuser --createdb --username postgres --no-createrole --no-superuser openerp

pgAdmin等のDBクライアントから直接DB操作するにはパスワード設定しておくのが望ましいですが、ここでは省いています。

postgres ユーザからログインユーザに戻ります。

exit

1-4. Pythonライブラリをインストール

OpenERPで使用するPythonライブラリをインストールします。導入モジュールにより追加が必要なケースがあるかもしれませんが、とりあえずは下記があれば事足りるはずです。

sudo apt-get install python-dateutil python-feedparser python-gdata python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-psutil python-docutils python-setuptools python-unittest2 python-mock python-jinja2

2. OpenERPインストール

ここからOpenERPのインストールです。
まず、以下のステップで想定している主要なディレクトリ/ファイルの位置を記しておきます。
/opt/openerp/ →OpenERPインストールディレクトリ(システムユーザ openerp のホームディレクトリ)
/etc/init.d/openerp-server →OpenERPサーバ起動スクリプト
/etc/openerp-server.conf →OpenERP設定ファイル
/var/log/openerp/ →ログファイル出力ディレクトリ

2-1. OpenERPソースコード取得

ソースコードはLaunchpadのレポジトリからも取得できますが、ダウンロード速度が相当遅いので、ここではNightly Buildのファイルを取得します(Nightly Build はその名の通り、毎晩Launchpadレポジトリの最新ソースコードをもとに自動生成されています)。

任意のダウンロードディレクトリにて、下記を実行します。

wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz
tar xvf openerp-7.0-latest.tar.gz

ファイル一式をOpenERPインストールディレクトリ /opt/openerp/ に移動するとともに、その直下のディレクトリを server に名称変更します。

sudo mv openerp-7.0-20140529* /opt/openerp/server  #ダウンロードしたバージョンが20140529である場合

/opt/openerp/ 以下のファイル所有者およびグループを openerp に変更します。

sudo chown -R openerp: /opt/openerp/*

2-2. OpenERPが正常に起動するか確認

sudo su - openerp -s /bin/bash
/opt/openerp/server/openerp-server

Waiting for connections...」というメッセージが出ると成功です。
OpenERPサーバが正常に起動した状態

このとき、WebブラウザからUbuntu ServerのIPアドレス(もしくはドメイン)+ポート8069 にアクセスすると、OpenERPのデータベース管理画面が開くはずです。
OpenERPのDB管理画面

ここまで確認できましたら、一旦 Ctrl-C でOpenERPプロセスを強制終了後、openerp ユーザから元のUbuntu Serverログインユーザに戻ります。

exit

3. OpenERP起動自動化

OpenERP起動用のスクリプトを設置し、さらにUbuntu Server起動時に自動でそのスクリプトからOpenERPが起動するよう設定します。

3-1. OpenERP設定ファイル調整

保守性の観点から、設定ファイル openerp-server.conf をOpenERPアプリケーションディレクトリの外に置きます(そうしておかないと、ソースコード更新時の操作手順が増えてしまいます)。
また、このファイル内には重要な情報が含まれるため、ユーザ openerp のみ参照・更新可能としておきます。

sudo cp /opt/openerp/server/install/openerp-server.conf /etc/
sudo chown openerp: /etc/openerp-server.conf
sudo chmod 640 /etc/openerp-server.conf

openerp-server.conf にログファイル出力先の行 logfile = /var/log/openerp/openerp-server.log を追加します。

sudo nano /etc/openerp-server.conf

設定ファイルにログ出力先を指定

まだログ出力先のディレクトリがありませんので、設定ファイルに追記したものと同じ出力先ディレクトリを作成します。このディレクトリは openerp ユーザで更新できるようにしておきます。

sudo mkdir /var/log/openerp
sudo chown openerp:root /var/log/openerp

3-2. OpenERP起動スクリプト取得・設置

OpenERPの起動/終了/再起動に使用するスクリプトを設定します。
起動スクリプトのテンプレートが /opt/openerp/server/install/openerp-server.init にありますが、Ubuntu Server環境ではそのままでは使用できないため、このリンクのスクリプト(The Open Sourcerer の記事 How to install OpenERP 7.0 on Ubuntu 12.04 LTS より拝借)を使用します。

起動スクリプトを取得し、/etc/init.d/ 下に設置します(取得元で拡張子付きで openerp-server.txt となっているので、ファイル取得後に拡張子を取り除いて openerp-server とします)。
また、このスクリプトが実行可能なよう、権限調整します。

sudo wget -P /etc/init.d/ http://www.openerp-asia.net/wp-content/uploads/2014/05/openerp-server.txt
sudo mv /etc/init.d/openerp-server.txt /etc/init.d/openerp-server
sudo chmod 755 /etc/init.d/openerp-server

3-3. OpenERP起動スクリプトの動作確認

まず、起動スクリプトからOpenERPサーバを起動してみます。

sudo /etc/init.d/openerp-server start

このときターミナル上には、「Starting openerp-server: openerp-server」と表示されます。

ログファイルにログが記録されていることを確認します。

less /var/log/openerp/openerp-server.log

次にサーバーが正常に停止するか確認します。

sudo /etc/init.d/openerp-server stop

このときターミナル上には、「Stopping openerp-server: openerp-server」と表示されます。
ログファイルもしくはプロセス実行状況を見て、openerp-server のプロセスが終了していることを確認してください。

3-4. OpenERPの起動を自動化

次のコマンドで、Ubuntu Server起動とともにOpenERPも自動で起動するようにします。

sudo update-rc.d openerp-server defaults

これで、次回以降Ubuntu Serverを起動すると、自動でOpenERPサーバーも立ち上がった状態となっているはずです。
Ubuntu Serverを再起動して結果を確認してみてください。

sudo shutdown -r 0

4. 最後に重要な設定調整

ローカルのテスト環境では不要ですが、公開された環境では必ず次の調整を行っておいてください。

4-1. OpenERPマスターパスワードを変更

Ubuntu Serverの再起動後、Webブラウザより、「IPアドレス(もしくはドメイン)+ポート(デフォルトで8069)」を指定して、OpenERPの画面を開きます。
はじめに、Database Management > Password より、OpenERPのマスターパスワード(初期値が「admin」)を変更しておきます(これをやっておかないと、Webインターフェースから悪意をもった人が簡単にDBを削除するようなことが可能です)。
Master Passwordを変更
因みに、このパスワードは /etc/openerp-server.conf ファイルに平文保存されているので、このファイルへのアクセスは厳重に管理(本手順では、先のステップで openerp と root のみにアクセスを制限)しておく必要があります。

パスワードを変更すると、同時に /etc/openerp-server.conf ファイルに多数のパラメタ項目が追加されます。必要に応じてパラメタ設定値を調整してください(ここでは詳細は割愛)。

いかがでしたでしょうか?
実際の運用環境にはもう少しセキュリティ対応、アドオンモジュールを考慮した設定調整等施したほうがよいですが、上記のステップをベースに始められるとよいと思います。

もし不明点があったり、確認がしたい点があったりしましたら、Q&Aウェビナー等でお気軽にお問い合わせください!