AWS EC2 CentOSセットアップ

yumによるモジュールのアップデートとPostgreSQLのソースからのインストールコマンド。

yum install yum-fastestmirror
yum -y update
yum -y install wget
yum -y install make
yum -y install gcc
yum -y install readline-devel
yum -y install zlib-devel
wget ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v9.0.5/postgresql-9.0.5.tar.gz

readline-develとzlib-develをインストールしていないとreadlineとzlibをインポートできないので注意が必要です。
flexというコマンドが無い場合は入れておいてください。

$ flex --version

PostgreSQLはデフォルトで/usr/local/pgsql にインストールされます。

./configure
make
make install

環境設定

export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

DBの初期化

initdb -D /usr/local/pgsql/data -E utf-8 --lc-collate=C
createdb <データベース名>

ユーザの追加とパスワード変更スーパーユーザ付与

SQL>create user xxxxxx with password 'パスワード';
SQL>alter role xxxxxx with superuser;
SQL>alter role postgres with password 'パスワード';

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

wget http://download.oracle.com/otn-pub/java/jdk/6u29-b11/jdk-6u29-linux-x64.bin
chmod a+x jdk-6u29-linux-x64.bin
mkdir /usr/local/java
mv jdk-6u29-linux-x64.bin /usr/local/java
cd /usr/local/java
./jdk-6u29-linux-x64.bin
ln -s ./jdk1.6.0_29 java

JBoss AS 6.1をインストール。ダウンロードして適当な場所に解凍します。unzipもインストールしておきます。
jbossのモジュールはアプリケーションの実行ユーザを作り、そのオーナーにパーミションを書き換えておきます。

yum -y install unzip
wget http://download.jboss.org/jbossas/6.1/jboss-as-distribution-6.1.0.Final.zip
unzip jboss-as-distribution-6.1.0.Final.zip
mv jboss-6.1.0.Final /opt/
cd /opt
ln -s jboss-6.1.0.Final jboss

JBoss4.2.3 GAを使う場合はこちらからダウンロード。

http://jaist.dl.sourceforge.net/project/jboss/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA-jdk6.zip
http://jaist.dl.sourceforge.net/project/jboss/JBoss/JBoss-4.2.3.GA/jboss-4.2.3.GA.zip


Apacheをインストールします。

yum -y install httpd
chkconfig --level 345 httpd on
service httpd start

EBSでディスクの増設を行います。6GのAMIテンプレートを使用したので必要に応じてディスクを増設します。EBSのVolumeメニューから「Create Volume」でディスクを作成します。
作成したら「Attach Volume」でmountさせるインスタンスを指定します。
EBSではデバイス名は、/dev/sdf 〜 /dev/sdp の指定しかできません。最近のLinuxカーネルのデバイス名は、/dev/xvdf 〜 /dev/xvdp なので、/dev/sdf で指定したデバイス名は、/dev/xvdf になるので気をつけましょう。Attachするときのダイアログに説明書きがあったプチはまりポイントでした。

次にデバイスのフォーマットを行います。

mkfs /dev/xvdf

いちおうマウンドができる確認を行います。

mount /dev/xvdf /mount_point

最後に/etc/fstab にデバイスマウントの記述を追加します。

Magento インストール手順

AWSにてCentOSを使用してmagentoを構築する手順を示します。

AWSでCentoOSのインスタンスを用意します。とりあえず動かすだけなのでスモールインスタンスで問題ありません。
ほぼ本家の手順通りで構築できますが、64ビット環境で変更がいる場所を書き換えてあります。

まずOSパッケージのアップデートをします。

yum install yum-fastestmirror
yum -y update

MySQLインストールします。

yum -y install mysql-server
yum -y install php php-mbstring php-mysql

MySQL設定ファイル編集

vi /etc/my.cnf
#末尾に以下を追加します。
default-character-set = utf8

MySQLを起動します。

/etc/rc.d/init.d/mysqld start

MySQLの初期設定をします。rootのパスワード設定と不要なDBを削除します。

# mysql -u root
mysql> select user,host,password from mysql.user;
mysql>set password for root@localhost=password('ここにパスワード');
Query OK, 0 rows affected (0.00 sec)
mysql>set password for root@127.0.0.1=password('ここにパスワード');
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user;

mysql> show databases;
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit

次にPHPのインストール準備をします。次のモジュールをインストールします。

# yum -y install httpd-devel
# yum -y install libxml2-devel
# yum -y install curl-devel
# yum -y install libjpeg-devel
# yum -y install libpng-devel
# yum install mysql-devel
# yum install libmcrypt-devel

PHPをダウンロードします。

wget http://jp.php.net/get/php-5.3.10.tar.gz/from/jp2.php.net/mirror

/usr/local/src/php に解凍します。以下のconfigオプションでコンパイルしてインストールします。
PHPコンパイルオプションは、64ビットOSにインストールする場合のライブラリのパスに注意です。

# ./configure \
--prefix=/usr/local/php-5.3.10 \
--enable-mbstring \
--enable-mbregex \
--with-mysql \
--with-pdo_mysql \
--with-apxs2=/usr/sbin/apxs \
--with-mcrypt \
--with-curl \
--with-gd \
--with-zlib \
--with-jpeg-dir=/usr/lib64/ \
--with-png-dir=/usr/lib64/ \
--with-lib-dir=lib64

# make
# make test
# make install

php.iniのコピーをします。/usr/local/src/php/php-5.3.10 に php.ini-development がありますので、/usr/local/lib64/php.ini としてコピーします。
このphp.iniの内容を次のように設定変更します。

output_bufferingの値はデフォルトでは数値設定がされています。Onの値にするとunlimitedになるようです。ここはとりあえずマニュアル通りのOnにしておきます。

output_buffering = On, default_charset = "UTF-8", date.timezone = "Asia/Tokyo"

Apacheの設定をします。/etc/httpd/conf/httpd.confの次の行をコメントにします。

#LoadModule php5_module        /usr/lib/httpd/modules/libphp5.s

/etc/httpd/conf.d/virtualdomain.conf ファイルを作成して次の設定をします。


	Options FollowSymLinks
	AllowOverride All

Apacheの再起動を実行します。

# /etc/rc.d/init.d/httpd configtest
Syntax OK
# /etc/rc.d/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: 

Magento本体を Open Source Ecommerce Software & Solutions | Magento からダウンロードします。今回はmagento1.6.2をダウロードして使用しました。

「No, thanks. Just take me to the download page.」の部分をクリックでユーザー登録をスキップできます。

解凍した内容は、/var/www/html/magento162 として配置します。

magento用のデータベースを作成します。magento162というデータベースにアカウントmagento162というものを作成します。

% mysql -u root -p
mysql> CREATE DATABASE magento131 CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES on magento162.* to magento162@localhost identified by 'magento162';
mysql> exit

サンプルデータをダウンロードしてデータをインポートします。データを入手します。

wget http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz

データとコンテンツをコピーします。

% tar zxvf magento-sample-data-1.2.0.tar.gz
% cd magento-sample-data-1.2.0
% mysql -u root -p magento162 < magento_sample_data_for_1.2.0.sql
Enter password: ******
% cp -pr media/* /var/www/html/magento162/media/

日本語ローカライズファイルを適用します。
次のダウロードサイトでアカウント登録して、ホーム | Magentoと越境ECの総合サポート Principleworks からファイルをダウンロードします。

ダウンロードした rack_jp_locale-0.1.5.tgz を解凍します。package.xml以外のappホルダーを/var/www/html/magento162 以下にコピーします。

起動前にパーミッションの設定を行います。

% cd /var/www/html/magento162/
% su
# chgrp -R apache ./
# chmod 775 app/etc var
# chmod -R 775 media

http://yourhost/magento162/ にアクセスして画面の情報にしたがってセットアップを行います。

入力が完了しれば、管理画面、ECサイト画面にアクセスすることが可能です。

ただしこの状態では先ほど登録したサンプルデータの内容を購入商品として参照することができません。
管理画面にログインします。

管理メニューの 「システム >> インデックス管理」 にて各データインデックスの再構築を行います。
これが完了すると購入商品がECサイトで参照することができます。

Jenkins初期セットアップ

CentOSのアップデート、JavaApacheのインストールまではこちらAWS EC2 CentOSセットアップ - 備忘録を参照してインストールを行います。

次にTomcatのインストールを行います。
Tomcat6.0.35の入手をします。

# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

ダウンロードしたバイナリーを/usr/local/share/applications に解凍し、CATALINA_HOMEを/usr/local/tomcatとするシンボリックリンクを設定します。

# ln -s /usr/local/share/applications/apache-tomcat-6.0.35 /usr/local/tomcat

CATALINA_HOME=/usr/local/tomcat であるとし、自動起動スクリプト/etc/rc.d/init.d/tomcat を次のように作成します。

#!/bin/sh
#
# Startup script for Apache Tomcat 5.5
#
# chkconfig: 2345 85 15
# description: Apache Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# config: /usr/local/tomcat/conf/server.xml

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

TOMCAT_SCRIPT=$CATALINA_HOME/bin/catalina.sh
TOMCAT_USER=tomcat

[ -f $TOMCAT_SCRIPT ] || exit 0

# See how we were called.
case “$1″ in
    start)
        # Start daemons.
        if [ -f /var/lock/subsys/tomcat ] ; then
            echo “Tomcat already started!”
            exit 1
        fi
        echo -n “Starting Tomcat: “
        su -s /bin/bash - $TOMCAT_USER -c “$TOMCAT_SCRIPT start”
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
        ;;
    stop)
        # Stop daemons.
        if [ ! -f /var/lock/subsys/tomcat ] ; then
            echo “Tomcat already stopped!”
            exit 1
        fi
        echo -n “Shutting down Tomcat: “
        $TOMCAT_SCRIPT stop
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
        ;;
    status)
        status tomcat
        exit $?
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo “Usage: $TOMCAT_PROG {start|stop|status|restart}”
        exit 1
esac

exit 0

サービスの登録を行います。

# chkconfig --add tomcat
# chkconfig --list | grep tomcat
tomcat         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

RunLevel 3,4,5 がonになっていること。

Tomcatの起動確認ができたらJenkinsをTomcatにデプロイします。
ダウンロードしたjenkinsのWeb Application Archive(warファイル)を/usr/local/tomcat/webapps に配置してTomcatを再起動します。

# wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

http://installed-jenkins-url:8080/jenkins にアクセスして次の画面が出ていることを確認します。

最後にApacheでReverseProxyの設定は、/etc/httpd/conf/httpd.conf の最下部に次の設定を行い起動します。
Tomcatはデフォルトのポート8080で起動していることとします。

ProxyPass /jenkins http://localhost:8080/jenkins
ProxyPassReverse	/jenkins	http://localhost:8080/jenkins
ProxyRequests	Off

	Order deny,allow
	Allow from all

http://installed-jenkins-url/jenkins でJenkinsサイトにアクセスできることを確認できたら成功です。

最後の初期セットアップで、Tomcatの/usr/local/tomcat/conf/server.xml にてURLEncodingのUTF-8の設定を追加します。
これを行わないとJenkinsの環境設定が使えません。
設定の後、Tomcatの再起動を行い初期セットアップは完了です。

   

最後にTomcatの実行ユーザについて、Tomcat実行用のtomcatというIDでnologのユーザでTomcatを起動しようとしたが実行ができなかった。

一般ユーザでの起動は問題ない。JenkinsはTomcatの実行ユーザのホームディレクトリに.jenkinsというディレクトリができている。

中身はpluginとかもろもろjenkins実行に関わる設定等が作られている。nologinユーザではこのあたりの設定が作れないから実行できないっぽいようです。

Magento インストール手順

AWSにてCentOSを使用してmagentoを構築する手順を示します。

AWSでCentoOSのインスタンスを用意します。とりあえず動かすだけなのでスモールインスタンスで問題ありません。
ほぼ本家の手順通りで構築できますが、64ビット環境で変更がいる場所を書き換えてあります。

まずOSパッケージのアップデートをします。

yum install yum-fastestmirror
yum -y update

MySQLインストールします。

yum -y install mysql-server
yum -y install php php-mbstring php-mysql

MySQL設定ファイル編集

vi /etc/my.cnf
#末尾に以下を追加します。
default-character-set = utf8

MySQLを起動します。

/etc/rc.d/init.d/mysqld start

MySQLの初期設定をします。rootのパスワード設定と不要なDBを削除します。

# mysql -u root
mysql> select user,host,password from mysql.user;
mysql>set password for root@localhost=password('ここにパスワード');
Query OK, 0 rows affected (0.00 sec)
mysql>set password for root@127.0.0.1=password('ここにパスワード');
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user;

mysql> show databases;
mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit

次にPHPのインストール準備をします。次のモジュールをインストールします。

# yum -y install httpd-devel
# yum -y install libxml2-devel
# yum -y install curl-devel
# yum -y install libjpeg-devel
# yum -y install libpng-devel
# yum install mysql-devel
# yum install libmcrypt-devel

PHPをダウンロードします。

wget http://jp.php.net/get/php-5.3.10.tar.gz/from/jp2.php.net/mirror

/usr/local/src/php に解凍します。以下のconfigオプションでコンパイルしてインストールします。
PHPコンパイルオプションは、64ビットOSにインストールする場合のライブラリのパスに注意です。

# ./configure \
--prefix=/usr/local/php-5.3.10 \
--enable-mbstring \
--enable-mbregex \
--with-mysql \
--with-pdo_mysql \
--with-apxs2=/usr/sbin/apxs \
--with-mcrypt \
--with-curl \
--with-gd \
--with-zlib \
--with-jpeg-dir=/usr/lib64/ \
--with-png-dir=/usr/lib64/ \
--with-lib-dir=lib64

# make
# make test
# make install

php.iniのコピーをします。/usr/local/src/php/php-5.3.10 に php.ini-development がありますので、/usr/local/lib64/php.ini としてコピーします。
このphp.iniの内容を次のように設定変更します。

output_bufferingの値はデフォルトでは数値設定がされています。Onの値にするとunlimitedになるようです。ここはとりあえずマニュアル通りのOnにしておきます。

output_buffering = On, default_charset = "UTF-8", date.timezone = "Asia/Tokyo"

Apacheの設定をします。/etc/httpd/conf/httpd.confの次の行をコメントにします。

#LoadModule php5_module        /usr/lib/httpd/modules/libphp5.s

/etc/httpd/conf.d/virtualdomain.conf ファイルを作成して次の設定をします。


	Options FollowSymLinks
	AllowOverride All

Apacheの再起動を実行します。

# /etc/rc.d/init.d/httpd configtest
Syntax OK
# /etc/rc.d/init.d/httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: 

Magento本体を Open Source Ecommerce Software & Solutions | Magento からダウンロードします。今回はmagento1.6.2をダウロードして使用しました。

「No, thanks. Just take me to the download page.」の部分をクリックでユーザー登録をスキップできます。

解凍した内容は、/var/www/html/magento162 として配置します。

magento用のデータベースを作成します。magento162というデータベースにアカウントmagento162というものを作成します。

% mysql -u root -p
mysql> CREATE DATABASE magento131 CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES on magento162.* to magento162@localhost identified by 'magento162';
mysql> exit

サンプルデータをダウンロードしてデータをインポートします。データを入手します。

wget http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz

データとコンテンツをコピーします。

% tar zxvf magento-sample-data-1.2.0.tar.gz
% cd magento-sample-data-1.2.0
% mysql -u root -p magento162 < magento_sample_data_for_1.2.0.sql
Enter password: ******
% cp -pr media/* /var/www/html/magento162/media/

日本語ローカライズファイルを適用します。
次のダウロードサイトでアカウント登録して、ホーム | Magentoと越境ECの総合サポート Principleworks からファイルをダウンロードします。

ダウンロードした rack_jp_locale-0.1.5.tgz を解凍します。package.xml以外のappホルダーを/var/www/html/magento162 以下にコピーします。

起動前にパーミッションの設定を行います。

% cd /var/www/html/magento162/
% su
# chgrp -R apache ./
# chmod 775 app/etc var
# chmod -R 775 media

http://yourhost/magento162/ にアクセスして画面の情報にしたがってセットアップを行います。

入力が完了しれば、管理画面、ECサイト画面にアクセスすることが可能です。

ただしこの状態では先ほど登録したサンプルデータの内容を購入商品として参照することができません。
管理画面にログインします。

管理メニューの 「システム >> インデックス管理」 にて各データインデックスの再構築を行います。
これが完了すると購入商品がECサイトで参照することができます。