source: branches/version-2_13-dev/eccube_install.sh @ 23551

Revision 23551, 6.9 KB checked in by shutta, 10 years ago (diff)

#1980 インストールシェルの2.12対応
config.phpの作成部分を関数として分離。
かつ、ROOT_URLPATH、ADMIN_DIRも設定可能なように改良。

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
Line 
1#!/bin/sh
2
3######################################################################
4#
5# EC-CUBE のインストールを行う shell スクリプト
6#
7#
8# #処理内容
9# 1. パーミッション変更
10# 2. html/install/sql 配下の SQL を実行
11# 3. 管理者権限をアップデート
12# 4. data/config/config.php を生成
13#
14# 使い方
15# Configurationの内容を自分の環境に併せて修正
16# PostgreSQLの場合は、DBユーザーを予め作成しておいて
17# # ./ec_cube_install.sh pgsql
18# MySQLはMYSQLのRoot以外のユーザーで実行する場合は、128行目をコメントアウトして
19# # ./ec_cube_install.sh mysql
20#
21#
22# 開発コミュニティの関連スレッド
23# http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=4918&forum=14&post_id=23090#forumpost23090
24#
25#######################################################################
26
27#######################################################################
28# Configuration
29#-- Shop Configuration
30CONFIG_PHP="data/config/config.php"
31ADMIN_MAIL=${ADMIN_MAIL:-"admin@example.com"}
32SHOP_NAME=${SHOP_NAME:-"EC-CUBE SHOP"}
33HTTP_URL=${HTTP_URL:-"http://test.local"}
34HTTPS_URL=${HTTPS_URL:-"http://test.local/"}
35ROOT_URLPATH=${ROOT_URLPATH:-"/"}
36DOMAIN_NAME=${DOMAIN_NAME:-""}
37ADMIN_DIR=${ADMIN_DIR:-"admin/"}
38
39DBSERVER=${DBSERVER-"127.0.0.1"}
40DBNAME=${DBNAME:-"cube213_dev"}
41DBUSER=${DBUSER:-"cube213_dev_user"}
42DBPASS=${DBPASS:-"password"}
43
44ADMINPASS="f6b126507a5d00dbdbb0f326fe855ddf84facd57c5603ffdf7e08fbb46bd633c"
45AUTH_MAGIC="droucliuijeanamiundpnoufrouphudrastiokec"
46
47DBTYPE=$1;
48
49case "${DBTYPE}" in
50"pgsql" )
51    #-- DB Seting Postgres
52    PSQL=psql
53    PGUSER=postgres
54    DROPDB=dropdb
55    CREATEDB=createdb
56    DBPORT=5432
57;;
58"mysql" )
59    #-- DB Seting MySQL
60    MYSQL=mysql
61    ROOTUSER=root
62    ROOTPASS=$DBPASS
63    DBSERVER="127.0.0.1"
64    DBPORT=3306
65;;
66* ) echo "ERROR:: argument is invaid"
67exit
68;;
69esac
70
71
72#######################################################################
73# Functions
74
75create_config_php()
76{
77    cat > "./${CONFIG_PHP}" <<__EOF__
78<?php
79define('ECCUBE_INSTALL', 'ON');
80define('HTTP_URL', '${HTTP_URL}');
81define('HTTPS_URL', '${HTTPS_URL}');
82define('ROOT_URLPATH', '${ROOT_URLPATH}');
83define('DOMAIN_NAME', '${DOMAIN_NAME}');
84define('DB_TYPE', '${DBTYPE}');
85define('DB_USER', '${DBUSER}');
86define('DB_PASSWORD', '${CONFIGPASS:-$DBPASS}');
87define('DB_SERVER', '${DBSERVER}');
88define('DB_NAME', '${DBNAME}');
89define('DB_PORT', '${DBPORT}');
90define('ADMIN_DIR', '${ADMIN_DIR}');
91define('ADMIN_FORCE_SSL', FALSE);
92define('ADMIN_ALLOW_HOSTS', 'a:0:{}');
93define('AUTH_MAGIC', '${AUTH_MAGIC}');
94define('PASSWORD_HASH_ALGOS', 'sha256');
95define('MAIL_BACKEND', 'mail');
96define('SMTP_HOST', '');
97define('SMTP_PORT', '');
98define('SMTP_USER', '');
99define('SMTP_PASSWORD', '');
100
101__EOF__
102}
103
104
105#######################################################################
106# Install
107
108#-- Update Permissions
109echo "update permissions..."
110chmod -R go+w "./html"
111chmod go+w "./data"
112chmod -R go+w "./data/Smarty"
113chmod -R go+w "./data/cache"
114chmod -R go+w "./data/class"
115chmod -R go+w "./data/class_extends"
116chmod go+w "./data/config"
117chmod -R go+w "./data/download"
118chmod -R go+w "./data/downloads"
119chmod go+w "./data/fonts"
120chmod go+w "./data/include"
121chmod go+w "./data/logs"
122chmod -R go+w "./data/module"
123chmod go+w "./data/smarty_extends"
124chmod go+w "./data/upload"
125chmod go+w "./data/upload/csv"
126
127#-- Setup Database
128SQL_DIR="./html/install/sql"
129OPTIONAL_SQL_FILE=optional.sql
130if [ -f ${OPTIONAL_SQL_FILE} ]
131then
132    echo "remove optional SQL"
133    rm ${OPTIONAL_SQL_FILE}
134fi
135
136SEQUENCES="
137dtb_best_products_best_id_seq
138dtb_bloc_bloc_id_seq
139dtb_category_category_id_seq
140dtb_class_class_id_seq
141dtb_classcategory_classcategory_id_seq
142dtb_csv_no_seq
143dtb_csv_sql_sql_id_seq
144dtb_customer_customer_id_seq
145dtb_deliv_deliv_id_seq
146dtb_holiday_holiday_id_seq
147dtb_kiyaku_kiyaku_id_seq
148dtb_mail_history_send_id_seq
149dtb_maker_maker_id_seq
150dtb_member_member_id_seq
151dtb_module_update_logs_log_id_seq
152dtb_news_news_id_seq
153dtb_order_order_id_seq
154dtb_order_detail_order_detail_id_seq
155dtb_other_deliv_other_deliv_id_seq
156dtb_pagelayout_page_id_seq
157dtb_payment_payment_id_seq
158dtb_products_class_product_class_id_seq
159dtb_products_product_id_seq
160dtb_review_review_id_seq
161dtb_send_history_send_id_seq
162dtb_mailmaga_template_template_id_seq
163dtb_plugin_plugin_id_seq
164dtb_plugin_hookpoint_plugin_hookpoint_id_seq
165dtb_api_config_api_config_id_seq
166dtb_api_account_api_account_id_seq
167dtb_tax_rule_tax_rule_id_seq
168"
169
170echo "create optional SQL..."
171echo "INSERT INTO dtb_member (member_id, login_id, password, salt, work, del_flg, authority, creator_id, rank, update_date) VALUES (2, 'admin', '${ADMINPASS}', '${AUTH_MAGIC}', '1', '0', '0', '0', '1', current_timestamp);" >> ${OPTIONAL_SQL_FILE}
172echo "INSERT INTO dtb_baseinfo (id, shop_name, email01, email02, email03, email04, top_tpl, product_tpl, detail_tpl, mypage_tpl, update_date) VALUES (1, '${SHOP_NAME}', '${ADMIN_MAIL}', '${ADMIN_MAIL}', '${ADMIN_MAIL}', '${ADMIN_MAIL}', 'default1', 'default1', 'default1', 'default1', current_timestamp);" >> ${OPTIONAL_SQL_FILE}
173
174case "${DBTYPE}" in
175"pgsql" )
176    # PostgreSQL
177    echo "dropdb..."
178    sudo -u ${PGUSER} ${DROPDB} ${DBNAME}
179    echo "createdb..."
180    sudo -u ${PGUSER} ${CREATEDB} -U ${DBUSER} ${DBNAME}
181    echo "create table..."
182    sudo -u ${PGUSER} ${PSQL} -U ${DBUSER} -f ${SQL_DIR}/create_table_pgsql.sql ${DBNAME}
183    echo "insert data..."
184    sudo -u ${PGUSER} ${PSQL} -U ${DBUSER} -f ${SQL_DIR}/insert_data.sql ${DBNAME}
185    for S in $SEQUENCES
186    do
187    echo "CREATE SEQUENCE $S START 10000;" >> ${OPTIONAL_SQL_FILE}
188    done
189    echo "execute optional SQL..."
190    sudo -u ${PGUSER} ${PSQL} -U ${DBUSER} -f ${OPTIONAL_SQL_FILE} ${DBNAME}
191;;
192"mysql" )
193    DBPASS=`echo $DBPASS | tr -d " "`
194    if [ -n ${DBPASS} ]; then
195    PASSOPT="--password=$DBPASS"
196    CONFIGPASS=$DBPASS
197    fi
198    # MySQL
199    echo "dropdb..."
200    ${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "drop database \`${DBNAME}\`"
201    echo "createdb..."
202    ${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "create database \`${DBNAME}\`"
203    #echo "grant user..."
204    #${MYSQL} -u ${ROOTUSER} ${PASSOPT} -e "GRANT ALL ON \`${DBNAME}\`.* TO '${DBUSER}'@'%' IDENTIFIED BY '${DBPASS}'"
205    echo "create table..."
206    echo "SET SESSION storage_engine = InnoDB;" |
207        cat - ${SQL_DIR}/create_table_mysql.sql |
208        ${MYSQL} -u ${DBUSER} ${PASSOPT} ${DBNAME}
209    echo "insert data..."
210    ${MYSQL} -u ${DBUSER} ${PASSOPT} ${DBNAME} < ${SQL_DIR}/insert_data.sql
211    for S in $SEQUENCES
212    do
213    echo "CREATE TABLE $S ( sequence int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (sequence)) ENGINE=InnoDB DEFAULT CHARSET=utf8; LOCK TABLES $S WRITE; INSERT INTO $S VALUES (10000); UNLOCK TABLES;" >> ${OPTIONAL_SQL_FILE}
214    done
215    echo "execute optional SQL..."
216    ${MYSQL} -u ${DBUSER} ${PASSOPT} ${DBNAME} < ${OPTIONAL_SQL_FILE}
217;;
218esac
219
220#-- Setup Initial Data
221
222echo "copy images..."
223cp -rv "./html/install/save_image" "./html/upload/"
224
225echo "creating ${CONFIG_PHP}..."
226create_config_php
227
228echo "Finished Successful!"
Note: See TracBrowser for help on using the repository browser.