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のアップデート、Java、Apacheのインストールまではこちら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 OffOrder 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サイトで参照することができます。