実践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)へ

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

CentOS7-8の新機能(systemdとfirewalld)

CentOS8
CentOS8のインストール〜ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
Sambaサーバー
openVPNサーバー

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
ドメインの追加
PHP7.1をインストール

CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)