4-4.Amazon EC2にnetcommonsインストール

■推奨環境

WWWサーバ: Apache(2.0.xx) を特にお薦めします
データベース: MySQL 5.0.xx
PHP: PHP 5.1.6 以降

■インストール環境
Apache 2.2.26
MySQL 5.5.34
PHP 5.3.28

■ダウンロード
今回は下記URLからWindows版を作業用パソコンにダウンロード後、解凍したファイルを使用しました。

http://www.netcommons.org/

■アップロード
今回はWinSCPでアップロード
(注意)FFFTPでアップロードする場合はバイナリモードを使うこと。

作業用パソコンで解凍した「html」フォルダ内全てをWebサーバにアップロードします。
今回はインスタンス停止時にもデータ消滅しないAmazon EBSに作成した「/ebs/nc」ディレクトリにアップロードしドキュメントルートにシンボリックリンクを作成しました。
(注意)Amazon EC2のディレクトリはインスタンス停止によりデータが消滅するのでAmazon EBSにデータを作成する必要があります。

アメリカのリージョンなので18MBのみ関わらず2時間くらいの時間を要しました。

# ln -s /ebs/nc /var/www/html/nc

シンボリックリング作成後オーナーを「apache」に変更します。

# chown -R apache.apache ./nc
# ls -l
total 20
drwx—— 2 root root 16384 Jan 13 01:23 lost+found
drwxr-xr-x 3 apache apache 4096 Jan 13 12:51 nc

■インストール画面の文字化け対応
「/etc/httpd/conf/httpd.conf」ファイルの下記部分を変更します。
AddDefaultCharset UTF-8

AddDefaultCharset off

「/etc/php.ini」ファイルの下記部分を変更します。
;mbstring.encoding_translation = Off

mbstring.encoding_translation = Off

mbstring.internal_encoding = EUC-JP

mbstring.internal_encoding = UTF-8

;mbstring.func_overload = 0

mbstring.func_overload = 0

;mbstring.http_input = auto

mbstring.http_input = pass

;mbstring.http_output = SJIS

mbstring.http_output = pass

■netcommons用MySQLユーザーを作成します。
今回は「netcommons」ユーザーを作りました。

mysql> grant all privileges on *.* to netcommons@localhost identified by ‘任意のパスワード’ with grant option;
mysql> grant all privileges on *.* to netcommons@127.0.0.1 identified by ‘任意のパスワード’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user from mysql.user;
+——————+————+
| host | user |
+——————+————+
| 127.0.0.1 | netcommons |
| 127.0.0.1 | root |
| ::1 | root |
| ip-172-31-36-121 | |
| ip-172-31-36-121 | root |
| localhost | |
| localhost | netcommons |
| localhost | root |
+——————+————+
8 rows in set (0.00 sec)

■MySQLデータをAmazon EBS環境に移動
MySQLのデータをインスタンスが停止しても消えないAmazon EBSのディレクトリに移動する設定を行います。

まず新しいディレクトリ「/ebs」に権限付きでコピーします。
# cp -prf /var/lib/mysql /ebs

念のため、古いディレクトリをリネームしバックアップしておきます。
# mv /var/lib/mysql /var/lib/mysql20140114

データディレクトリの場所を設定ファイルで変更
# vi /etc/my.cnf
datadir=/var/lib/mysql

datadir=/ebs/mysql

MySQLの再起動
# /etc/init.d/mysqld restart
Stopping mysq ld: [ OK ]
Starting mysqld: [ OK ]

変更の確認
mysql> show variables like ‘datadir’;
+—————+————-+
| Variable_name | Value |
+—————+————-+
| datadir | /ebs/mysql/ |
+—————+————-+
1 row in set (0.00 sec)

■netcommonsインストール

webapp/config/install.inc.php
の権限を「777」に変更
# chmod 777 install.inc.php

ブラウザから「http://keygoal.net/nc/htdocs/」でインストール画面が表示されます。

netcommonsのインストール手順画面は「netcommonsのインストール」を参照して下さい。

(注意)
netcommondsインストール時に[次へ]ボタンが押せない時は「/etc/php.ini」の「date.timezone = Asia/Tokyo」設定を確認して下さい。
この設定がないと「Google Chrome 33」と「Internet Explorer 8」では[次へ]ボタンが押せませんでした。
なぜか「FireFox 5」では[次へ]ボタンが押せます。

「/etc/php.ini」を設定変更した場合はapacheをリブートしましょう。
# /etc/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

■初期画面表示

http://keygoal.net/nc/

画像表示されない場合「.htaccess」の有効性確認を再度確認します。
「/ebs/nc/htdocs/.htaccess」が存在すると画像表示するはずです。

★htaccess有効性確認方法

NetCommonsは「.htaccess」が有効である必要があるので有効性を確認します。

1、ドキュメントルート「/var/www/html/nc」に下記内容で「testdir」ディレクトリに「.htaccess」ファイルを作成します。
order deny,allow
deny from all
3、ドキュメントルート「/var/www/html/nc」に下記内容で「nctest.txt」テキストファイルを作成します。
Access OK!
4、ブラウザからアクセスし表示を確認します。
今回は「http://www.keygoal.net/nc/nctest.txt」
「Not Found」か「Internal Server Error」と表示されれば「.htaccess」は有効です。
「Access OK!」と表示されれば「.htaccess」は無効です。

■二つ目のnetcommonsを簡単にインストールするには

ここでは「keygoal.net/nc」を「keygoal.net/ncpet」にコピー(サイト内は初期化)し新規サイトを作成する手順です。

新しいデータベース「ncdbpet」を作成します。
SQL> create database ncdbpet;
phpMyAdminで作成する場合は照合順序を「utf8_general_ci」に指定し文字化けを回避します。

netcommonsのディレクトリをコピーします。
# cp -prf /ebs/nc /ebs/ncpet

コピーしたディレクトリのシンボリックリンクを作成します。
# ln -s /ebs/ncpet /var/www/html/ncpet

インストール設定ファイルのパーミッションを変更します。
# cd /ebs/ncpet/webapp/config
# pwd
/ebs/ncpet/webapp/config
# chmod 777 install.inc.php

インストール画面からnetcommonsをインストールします。
http://www.keygoal.net/ncpet/htdocs

This entry was posted in Amazon Web Services, EC2, netcommons, アプリケーション, クラウド. Bookmark the permalink.

Comments are closed.