実践Linux
CentOS7        CentOS7 目次へ  TOP(HOME)へ


EC-CUBEでショッピング・サイト構築(eccube 3)            2017年11月

eccube 2系はこちらを参照


●EC-CUBE 3.0.15のダウンロード
EC-CUBE 公式サイト(http://www.ec-cube.net/)からダウンロード。
EC-CUBEの会員でない場合は、会員登録が必要(すでに会員登録が済んでいる場合は、この画面でメールアドレス・パスワードを入力後、「ログイン」をクリックして先へ進めます)。登録したメールアドレス宛に、上記内容の仮登録メールが送信されます。メールの内容に従い、メール本文のURLをクリックします。これでEC-CUBEのメンバー登録が完了します。
登録が完了したら、「EC-CUBEメンバートップページへ」をクリックします。最初のトップページへ戻るので、改めて画面上部中央の「無料ダウンロード」をクリックします。、次のページでは、「最新版ダウンロード」(eccube-3.0.15.zip)ではなく「各バージョンダウンロード」に進み、Version 3.0.15(tar.gz)を選びます(.zipをダウンロード・解凍すると、linuxでは権限の問題があり面倒らしいので)。
ダウンロードしたtar.gzファイルを、/var/www/に移動し(覗かれないように/var/www/htmlの上の階層に置く)、解凍します。
 # tar zxvf eccube-3.0.15.tar.gz

シンボリックリンクを作成
 # ln -s /var/www/eccube-3.0.15/html /var/www/html/myshop

●インストール準備
apache、phpデーターベース(mariadb)などは基本的な設定は終わっているものとする。(各項参照)

@PHPライブラリ(システム要件 http://doc.ec-cube.net/quickstart_requirement)
必須ライブラリ
 pgsql / mysql / mysqli (利用するデータベースに合わせること)
 pdo_pgsql / pdo_mysql / pdo_sqlite (利用するデータベースに合わせること)
 pdo
 phar
 mbstring
 zlib
 ctype
 session
 JSON
 xml
 libxml
 OpenSSL
 zip
 cURL
 fileinfo
推奨ライブラリ
 hash
 APCu / WinCache (利用する環境に合わせること)
 Zend OPcache
 mcrypt

# php -m でインストールされているライブラリの確認。
必須では、mbstringがないことがわかる。
(# yum list installed | grep php 確認)
# yum list | grep php 確認
# yum install php-mbstring インストール

さらに、xmlが不完全のようで、後のインストール画面が途中でとぎれてしまう。
# yum install php-xml インストール
# php -m で確認すると、xmlreaderやxmlwriterが追加された。

推奨ライブラリでは、apcuとmcryptをインストールしておくとインストール時に警告がでなくなる。
# yum install php-pecl-apcu-devel   apc、apcuが追加される。
# yum install php-mcrypt   mcryptが追加される。

/etc/php.iniのタイムゾーン設定
これを適切に設定しておかないと、インストールに失敗することがあるらしい。
date.timezone = "Asia/Tokyo"

httpdの再起動  # systemctl restart httpd

Aデータベースの準備(mariadb)
ここでは、データベースeccubeとそれに対する全権ユーザーeccubee@localhoを作成。
# mysql -uroot -p
パスワード
> create database eccube;
> grant all privileges on eccube.* to eccube@localhost IDENTIFIED BY 'パスワード';
> flush privileges;
> exit

BSElinux関係の整備     詳しくは、 eccube 2系を参照
# getsebool -a | grep http  調査
# setsebool -P httpd_can_network_connect on
# setsebool -P httpd_can_network_connect_db on

●インストール
http://www.my-dom.xxx/myshop/に接続。
インストール画面になるので指示に従って進めていく。

サイトの設定
 店名 ****-shop
 メール ****@my-dom.xxx
 管理者ID admin等
 パスワード ***********
セキュリティの設定
 ディレクトリ admin (複雑な名称にとあるが、テストなので簡単に。)
 SSL制限 なし
 IP制限 なし
データベースの設定
 種類 MySQL
 サーバー 127.0.0.1
 ポート 3306
 データベース eccube
 ユーザー eccube
 パスワード パスワード
データベースの初期化 テーブル類が作成される。(画面が切り替わるまで、少し時間がかかる。)

インストール後、/html/install.phpは必ず削除しておく。(どこからでも開くことができるので危険。)

●管理画面
http://www.my-dom.xxx/myshop/admin/  開かない。
ec-cubeのコミュニティで調べてみると、http://www.yam-web.net/myshop/index.php/admin/ にすると開く。
どうやら、/html/.htaccessに記述されたリダイレクト(rewrite関係)が効いていないようだ。
AllowOverrideで、.htaccess による設定の上書きを許可する。
/etc/httpd/conf/httpd.confに追記。
<Directory "/var/www/html/myshop">
    AllowOverride All
</Directory>

httpdの再起動  # systemctl restart httpd

●ショップを見る
http://www.my-dom.xxx/myshop/


運用

/src/Eccube/Resource/template/default/を読み込んで表示している。初期ファイルなので、これを直接編集してはいけない。

管理画面でページ編集すると、/app/template/default(あるいはテンプレート名)/に保存される。
直接編集したい場合も、必ずここにコピーして編集する。
(systemdの場合とよく似ている。)

topページの画像は、/html/template/default/img/top/にある。
他、css、jsも/html/template/default/にある。

ブロックを作成して、ページのレイアウト編集で配置していくという流れになる。
新しく作成したブロックは、/app/template/default/Block/に入る。

●新しいページの作成
/html/user_data/に.twigファイルが作成される。
例 /html/user_data/faq.twig

{% extends 'default_frame.twig' %}   基本レイアウトの指定

{% block main %}
<h1>FAQ</h1>
<p>分らないことがあれば、こちらをご覧ください。</p>
{% endblock %}

●defaultを元に自前のテンプレートを作る
管理画面の「オーナーズストア」→「テンプレート」→「テンプレート一覧」からデフォルトテンプレートをダウンロード。default.tar.gzがダウンロードされる。
ダウンロードしたデフォルトのテンプレートをそのまま「オーナーズストア」→「アップロード」よりテンプレートコードとテンプレート名(例 mytmpとmytmp)を入力してアップロード。
/app/template/mytmp/ と /html/template/mytmp/ ができる。
/app/template/mytmp/ に /src/Eccube/Resource/template/default/の中身をすべてコピーしておく。
オーナーズストア」→「テンプレート」→「テンプレート一覧」でテンプレートをmytmpに切り替えて登録する。
以上で、テンプレートのコピーと切り替え完了。

●トップページの画像の切り替えをフェードアウトにしてみる。
「コンテンツ管理」→「ページ管理」→TOPページのページ編集
{% block javascript %}箇所を編集
{% block javascript %}
<script>
$(function(){
  $('.main_visual').slick({
    dots: true,
    arrows: false,
    infinite: true,
    speed: 500,
    autoplay: true,
    fade: true,
    cssEase: 'linear'
  });
});
</script>
{% endblock %}


TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
audit2allowを使い問題の解決
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く