-オープンソースのSNSエンジン OpenPNEプロジェクト-

OpenPNE 3.1 を CentOS 5 にインストールしてみました

05 / 30 土曜日 2009

OpenPNE開発チームの小川です。

前回はレンタルサーバに OpenPNE 3 をインストールする例を紹介しましたが、今回は自分で管理しているサーバへのインストール例として OpenPNE 3.1.0 を最小セットアップ状態の CentOS 5.3 にインストールする手順をご紹介します。

OpenPNE 3.1 の一般的なインストール方法は、OpenPNE3.1 セットアップ手順 をご覧ください。

はじめに

ここで紹介する手順は OpenPNE を動作させる例として最低限の手順しか記載していないので、実際に公開サーバの設定をする際には参考程度にご利用ください。

以下の手順では sudo を使用していますが、sudo の設定をしていない環境では「sudo」の付いているコマンドは「sudo」を抜いて root ユーザで実行してください。

また、ホスト名として sns.example.com を、OpenPNE を管理する一般ユーザとして admin を例にしていますが、環境に合わせて適宜読み替えてください。

ミドルウェアのインストール

Apache, MySQL, Postfix のインストール

yum コマンドを使ってOS標準のパッケージをそのままインストールします。

$ sudo yum install httpd mysql-server postfix

PHP のインストール

PHP に関してはバージョン 5.2.3 以降が必要なので、個別にインストールします。ソースコードからコンパイルしてももちろんよいのですが、今回は oss.oracle.com で公開されている rpm パッケージを利用しました。

$ sudo yum install aspell curl gmp libxslt wget

$ DIST=http://oss.oracle.com/projects/php/dist/files/EL5/i386
$ wget $DIST/php-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-cli-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-common-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-gd-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-mbstring-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-mysql-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-pdo-5.2.9-1.el5.i386.rpm
$ wget $DIST/php-xml-5.2.9-1.el5.i386.rpm
$ sudo rpm -ivh php-*.rpm
準備中...                ########################################### [100%]
   1:php-common             ########################################### [ 13%]
   2:php-cli                ########################################### [ 25%]
   3:php-pdo                ########################################### [ 38%]
   4:php                    ########################################### [ 50%]
   5:php-gd                 ########################################### [ 63%]
   6:php-mbstring           ########################################### [ 75%]
   7:php-mysql              ########################################### [ 88%]
   8:php-xml                ########################################### [100%]

APC のインストール(オプション)

PHP の快適な動作にはアクセラレータの導入が欠かせません。ここではセットアップガイドでも推奨されている APC をインストールしてみます。

$ sudo yum install autoconf213 automake gcc make httpd-devel

$ wget $DIST/php-devel-5.2.9-1.el5.i386.rpm
$ sudo rpm -ivh php-devel-5.2.9-1.el5.i386.rpm

$ sudo yum install php-pear
$ sudo pear channel-update pear.php.net
$ sudo pear upgrade-all --ignore-errors
$ sudo pecl install APC
Use apxs to set compile flags (if using APC with Apache)? [yes] : yes
...
install ok: channel://pecl.php.net/APC-3.0.19
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini
$ echo "extension=apc.so" | sudo tee /etc/php.d/apc.ini

ミドルウェアの設定

Apache の設定

VirtualHost の設定を httpd.conf の末尾に追加します。

$ sudo vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
    ServerName sns.example.com
    DocumentRoot /var/www/sns/web
    <Directory /var/www/sns/web>
        AllowOverride All
    </Directory>
</VirtualHost>

OpenPNE を設置するディレクトリを作成します。

$ sudo mkdir /var/www/sns
$ sudo chown admin. /var/www/sns

設定ファイルが間違っていないかどうかテストします。

$ sudo /etc/init.d/httpd configtest
Warning: DocumentRoot [/var/www/sns/web] does not exist
Syntax OK

/var/www/sns/web は後の手順で作成するので、この Warning が出るのはよしとして進めます。

デーモンの起動

$ sudo /etc/init.d/httpd start
$ sudo /etc/init.d/mysqld start
$ sudo /etc/init.d/postfix start

MySQL のユーザ設定

まず、root ユーザのパスワードを設定します。new-password の部分は変更してください。

$ mysql -u root

mysql> UPDATE mysql.user SET Password = PASSWORD('new-password') WHERE User = 'root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

OpenPNE 用に openpne というユーザを作成し、openpne3 というデータベースに対するアクセス権限を与えます。pasuwado の部分は変更してください。

mysql> GRANT USAGE ON *.* TO 'openpne'@'localhost' IDENTIFIED BY 'pasuwado';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON openpne3.* TO 'openpne'@'localhost';
Query OK, 0 rows affected (0.00 sec)

ファイアーウォールの設定

外部から HTTP でアクセスできるよう設定します。

$ sudo system-config-securitylevel-tui

「カスタマイズ」 → 「WWW (HTTP) 」にチェック → 「OK」 → 「OK」

OpenPNE 3.1 のインストール

ソースコードのダウンロード

SourceForge.net の OpenPNE プロジェクトのページから OpenPNE 3.1.0 の zip アーカイブをダウンロード・展開します。

$ sudo yum install unzip
$ cd /var/www/sns
$ wget http://nchc.dl.sourceforge.net/sourceforge/openpne/OpenPNE-3.1.0.zip
$ unzip OpenPNE-3.1.0.zip

キャッシュファイルの削除

OpenPNE 3.1.0 の zip アーカイブには誤ったキャッシュファイルが含まれている可能性があるので、念のためキャッシュファイルの削除をしてください。(3.1.0 バージョン固有の問題で、通常のインストールでは必要ありません)

$ cd OpenPNE-3.1.0
$ rm cache/*

プラグインインストール

OpenPNE 3.1.0 では初期データの登録処理の関係上、openpne:install タスクを実行する前に opPlugin:sync タスクを実行してあらかじめプラグインをインストールしておく必要があります。

せっかくなので、先日リリースされたばかりの opDiaryPlugin も一緒にインストールしておきましょう。

$ php symfony opPlugin:sync
$ php symfony opPlugin:install --stability=beta opDiaryPlugin

openpne:install タスクの実行

$ php symfony openpne:install

openpne:install タスクを実行すると DB のセットアップに必要な情報を聞かれるので、サーバ環境に合わせて入力していきます。

Choose DBMS (mysql, pgsql or sqlite)
使用する DBMS の種類を入力します。
ここでは、「mysql」と入力します。
Type database username
データベースのユーザ名を入力します。
作成した MySQL のユーザ名「openpne」を入力します。
Type database password (optional)
データベースのパスワードを入力します。
作成した MySQL ユーザのパスワード「pasuwado」を入力します。
Type database hostname
データベースサーバのホスト名を入力します。
ここでは「localhost」と入力します。
Type database port number (optional)
データベースのポート番号を入力します。未入力の場合は DBMS ごとのデフォルト値が使用されます。
ここでは未入力のまま Enter を押します。
Type database name
データベース名を入力します。
ここでは例として「openpne3」と入力します。
Type database socket path (optional)
データベース接続に使用するソケットのパスを入力します。
ここでは未入力のまま Enter を押します。

最後に入力した内容の確認をします。問題なければ「y」を入力します。

The DBMS                        mysql
The Database Username           openpne
The Database Password           ******
The Database Hostname           localhost
The Database Port Number
The Database Name               openpne3
The Database Socket

  Is it OK to start this task? (y/n)y

公開ディレクトリの設定

ここまでの手順で OpenPNE 3 が動作する状態になっているので、公開ディレクトリにシンボリックリンクを作成します。

$ cd /var/www/sns
$ ln -s OpenPNE-3.1.0/web

ブラウザからアクセス

ブラウザから「http://sns.example.com/」にアクセスして OpenPNE 3 のログイン画面が表示されれば OK です。(初期アカウントはセットアップガイドにある通り、sns@example.com / password となっています。変更して使ってください)

また、管理画面は「http://sns.example.com/pc_backend.php」へアクセスすれば表示されます。(初期アカウントはセットアップガイドにある通り、admin / password となっています。変更して使ってください)

コメント:9

kawakami 09-06-02 (火) 20:00

すばらしいチュートリアルです。
私のようなスキルの人間でも、2時間くらいでインストールできました。
本当に助かりました。

手嶋守 09-08-02 (日) 18:26

20090802現在、パッケージの配置が変更されていました。

DIST=http://oss.oracle.com/projects/php/dist/files/EL5/i386

wget $DIST/php52-5.2.10-2.el5.i386.rpm
wget $DIST/php52-cli-5.2.10-2.el5.i386.rpm
wget $DIST/php52-common-5.2.10-2.el5.i386.rpm
wget $DIST/php52-gd-5.2.10-2.el5.i386.rpm
wget $DIST/php52-mbstring-5.2.10-2.el5.i386.rpm
wget $DIST/php52-mysql-5.2.10-2.el5.i386.rpm
wget $DIST/php52-pdo-5.2.10-2.el5.i386.rpm
wget $DIST/php52-xml-5.2.10-2.el5.i386.rpm

ゲン・テイ・チー 09-08-06 (木) 19:01

皆様

Openpne3.xを使いたいです。
携帯から画像の投稿などをできるようにしたいです。
メールサーバの設定がわかりませんでした。
教えていただけませんか。

(私はベトナム人ですから、日本語がまだ下手です)

よろしくお願いいたします。

John 09-09-10 (木) 17:47

現在はなぜかmbstringが見つからないですね。
wget $DIST/php52-mbstring-5.2.10-2.el5.i386.rpm

匿名 10-02-24 (水) 2:59

ギブアップ。
XOOPSにトライします。

極東 10-05-18 (火) 17:38

今日のところはギブアップ!!

株式会社アスア システムコンサルティング事業部 11-12-30 (金) 20:07

ここで紹介されているPHPのインストール方法は現在利用できません。

OpenPNE3.6 セットアップ手順によれば以下の拡張モジュールが必要です。
* PHP の mbstring 拡張モジュールを使用可能
* PHP の XML 拡張モジュールを使用可能
* PHP の PCRE 拡張モジュールを使用可能 (UTF-8 サポート)
* PHP の PDO 拡張モジュールを使用可能 (利用する DBMS のドライバも含む)
* PHP の JSON 拡張モジュールを使用可能
* PHP から GD ライブラリを使用可能 (JPEG/GIF/PNG サポート)
* PHP の mcrypt 拡張モジュールの使用を推奨
* PHP の APC 拡張モジュールの使用を推奨

このような拡張モジュールはCentOSのリポジトリには入っていません。
よってEPELから取得することで簡単に対処できます。

RPMforgeのrpmパッケージをダウンロードします。
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

rpmパッケージをインストールします。
# rpm -ivh epel-release-5-4.noarch.rpm

yum インストールコマンド
yum –enablerepo=remi install php-mbstring php-xml php-pdo php-gd php-mcrypt php-pecl-apc php-pecl-json php-pear php-devel php-mysql

もしdependentエラーが発生したら、yum removeしてもう一度入れなおしましょう。

また、このPHP5.3ではタイムゾーンの設定が必要です。
php.iniで必要な設定
//タイムゾーン
php -r ‘date_default_timezone_set(“Asia/Tokyo”);
print(strtotime(“2009/01/01 00:00:00”));’

公開ディレクトリにシンボリックリンクを作成します。
ln -s /OpenPNE-3.6.1/web /var/www/sns/web

let’s enjoy sns!!

株式会社アスア システムコンサルティング事業部 11-12-30 (金) 20:15

タイムゾーンについてphp.iniの記述方法

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = “Asia/Tokyo”

株式会社アスア システムコンサルティング事業部 11-12-30 (金) 20:40

mbstringについてphp.iniの記述方法

[PHP]
output_handler = mb_output_handler
expose_php = On
default_charset = “UTF-8”

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;

トラックバック:1

ピンバック from OpenPNE3.4を手軽に動かす調査|SNS構築の手嶋屋 10-01-24 (日) 4:22

[…] 話だとOracleが出しているパッケージでインストールできるようなのだが、 http://www.openpne.jp/archives/2127/ […]

ページの先頭に戻る