Computer,OS,Linux,FreeBSD,Virtualization,Network,etc...
Linux_Tips(CentOS) » 各種サーバ構築 » ECサイト構築
【参考URL】
http://wiki.ec-orange2.jp/index.php?%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%2F%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89-Linux%2FPHP
より
EC-CUBEはphp-{mbstring,pgsql,mysql,ldap,imap,pear}が必要となる。
-------------------------------------------------------------
●必要なパッケージがインストールされているか確認する。
# rpm -qa|grep php
php-cli-5.3.0-2.el5.remi.2
php-imap-5.3.0-2.el5.remi.2
php-mcrypt-5.3.0-2.el5.remi.2
php-gd-5.3.0-2.el5.remi.2
php-pear-1.8.1-1.el5.remi
php-common-5.3.0-2.el5.remi.2
php-mbstring-5.3.0-2.el5.remi.2
php-5.3.0-2.el5.remi.2
php-pdo-5.3.0-2.el5.remi.2
php-mysql-5.3.0-2.el5.remi.2
●必要なパッケージを検索
# yum --enablerepo=remi,epel,rpmforge search php-{ldap,imap}
●必要なパッケージをインストール
# yum install --enablerepo=remi,epel,rpmforge php-{ldap,imap}
# rpm -qa|grep php-{ldap,imap}
php-ldap-5.3.0-2.el5.remi.2
php-imap-5.3.0-2.el5.remi.2
●http://rpms.famillecollet.com/enterprise/5/olds/i386/より
下記wget等で以下のrpmパッケージを入手する。
php-5.2.10-1.el5.remi.i386.rpm
php-cli-5.2.10-1.el5.remi.i386.rpm
php-common-5.2.10-1.el5.remi.i386.rpm
php-gd-5.2.10-1.el5.remi.i386.rpm
php-imap-5.2.10-1.el5.remi.i386.rpm
php-ldap-5.2.10-1.el5.remi.i386.rpm
php-mbstring-5.2.10-1.el5.remi.i386.rpm
php-mcrypt-5.2.10-1.el5.remi.i386.rpm
php-mysql-5.2.10-1.el5.remi.i386.rpm
php-pdo-5.2.10-1.el5.remi.i386.rpm
●古いパッケージの削除
# rpm -e php-{cli,pdo,gd,mbstring,mysql,pear} php-5.2.9
# rpm -e php-{common,mcrypt}
●新パッケージのインストール
# rpm -ivh php-5.2.10-1.el5.remi.i386.rpm php-common-5.2.10-1.el5.remi.
i386.rpm php-cli-5.2.10-1.el5.remi.i386.rpm
# rpm -ivh php-gd-5.2.10-1.el5.remi.i386.rpm php-mbstring-5.2.10-1.el5.
remi.i386.rpm php-mcrypt-5.2.10-1.el5.remi.i386.rpm php-mysql-5.2.10-1
.el5.remi.i386.rpm php-pdo-5.2.10-1.el5.remi.i386.rpm php-ldap-5.2.10-1
.el5.remi.i386.rpm
# yum install libc-client
# rpm -ivh php-imap-5.2.10-1.el5.remi.i386.rpm
# yum install php-pear
●php関連パッケージの確認
# rpm -qa|grep php
php-mbstring-5.2.10-1.el5.remi
php-5.2.10-1.el5.remi
php-imap-5.2.10-1.el5.remi
php-pdo-5.2.10-1.el5.remi
php-mysql-5.2.10-1.el5.remi
php-pear-1.4.9-4.el5.1
php-common-5.2.10-1.el5.remi
php-gd-5.2.10-1.el5.remi
php-ldap-5.2.10-1.el5.remi
php-cli-5.2.10-1.el5.remi
php-mcrypt-5.2.10-1.el5.remi
-------------------------------------------------------------
●phpの追加設定
#vi /etc/php.ini
[mbstring]
mbstring.language = Japanese ・・・OK
mbstring.encoding_translation = On ・・・OK
mbstring.internal_encoding = UTF-8 ・・・OK
output_handler = mb_output_handler ・・・OK
magic_quotes_gpc = 0ff ・・・OK
upload_max_filesize = 10M ・・・OK
memory_limit = 256M ・・・OK
display_errors = On
以下はEC-CUBEのDBファイル容量が大きいため変更が必要!
post_max_size = 30M ・・・8Mから変更
upload_max_filesize = 30M ・・・10Mから変更
[Date]
date.timezone = Asia/Tokyo ・・・★暫定処置!
注)★PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを正しく設定せずに日付/時刻関数を
コールすると E_NOTICE が発生し、またシステムの設定や TZ 環境変数を
使用すると E_WARNING が発生するようになった。
php.iniに上記設定を追加すれば回避できる。
【参考】http://us2.php.net/manual/ja/timezones.asia.php
-------------------------------------------------------------
●apacheの追加設定
#vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html/shop">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
●Syntaxのチェック
# apachectl -t
# apachectl restart
-------------------------------------------------------------
●DBの作成
EC-CUBE専用のデータベースを作成します。
# mysql -u root -p
# mysql>create database shop_hoge;
●ユーザの作成
mysql> grant all on shop_hoge.* to hoge-admin@localhost identif
ied by 'パスワード';
mysql> grant all on *.* to hoge-admin@localhost identified by 'パスワード'
;
※このコマンド「*.*」は全DBへのアクセス許可されたユーザ作成時
mysql>flush privileges;
※ユーザ名に『_』や『-』を使用する場合、``でエスケープする事!
パスワードは ' で括る・・・Shift+7
●ログアウト
mysql> exit;
●EC-CUBE用ユーザでのDBアクセス+利用DBの切替
# mysql -u hoge-admin -p
mysql>use shop_hoge;
登録データベース確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| shop_hoge |
+--------------------+
-------------------------------------------------------------
●EC-CUBEのインストール
# wget http://downloads.ec-cube.net/src/eccube-2.4.1.tar.gz
# tar xvzf eccube-2.4.1.tar.gz
# cp -Rp eccube-2.4.1 /var/www/.
※ファイルパーミッションを変更させないため「-p」オプションを使う!
# mv ./eccube-2.4.1 eccube
# ln -s /var/www/eccube2/shop /var/www/html/shop
※解凍してできるhtmlディレクト以下がショッピングサイトのルートディレクトリになるので、展開先には注意!
/var/www/htdocs/がウェブサーバーのドキュメントルートで、 /var/www/htdocs/shop/にdataとhtmlを展開してしまうと、
本来公開ディレクトリに展開される事を想定していないdataまで公開
されてしまい、セキュリティ上危険な場合があります。
●相対パスの変更
# vi /var/www/html/shop/define.php
<?php
/** HTMLディレクトリからのDATAディレクトリの相対パス */
define("HTML2DATA_DIR", "/../data/");
/** DATA ディレクトリから HTML ディレクトリの相対パス */
define("DATA_DIR2HTML", "/../shop/");
?>
●プラウザで「http://shop/install」にアクセスする
■ECサイトの設定
店名:hoge_ECshop
管理者:メールアドレス:hoge@hoge.com
管理者:ログインID:hoge-admin
管理者:パスワード:?????
■WEBサーバの設定
HTMLパス:/var/www/eccube2/shop/
URL(通常):http://192.168.xxx.xxx/shop/
URL(セキュア):https://192.168.xxx.xxx/shop/
共通ドメイン:
■データベースの設定
DBの種類:MySQL
DBサーバ:127.0.0.1
ポート:3306
DB名:shop_hoge
DBユーザ:hoge-admin
DBパスワード:?????
※netstat -an | grep tcpで3306が解放されている事を確認する
※/etc/php.iniに「mysqli.default_port = 3306」の設定あり
■データベースの初期化
データベースの初期化を開始します
※すでにテーブル等が作成されている場合は中断されます
○:追加テーブル(dtb_session)の作成に成功しました。
○:追加テーブル(dtb_module)の作成に成功しました。
○:追加テーブル(dtb_campaign_order)の作成に成功しました。
○:追加テーブル(dtb_mobile_kara_mail)の作成に成功しました。
○:追加テーブル(dtb_mobile_ext_session_id)の作成に成功しました。
○:追加テーブル(dtb_site_control)の作成に成功しました。
○:追加テーブル(dtb_trackback)の作成に成功しました。
○:テーブルの作成に成功しました。
○:初期データの作成に成功しました。
○:カラムコメントの書込みに成功しました。
○:テーブルコメントの書込みに成功しました。
■サイト情報について
EC-CUBEのシステム向上及び、デバッグのため以下の情報のご提供をお願いいたします。
- サイトURL:http://192.168.xxx.xxx/shop/
- 店舗名:hoge_ECshop
- EC-CUBEバージョン:2.4.1
- PHP情報:5.2.10
- DB情報:MySQL 5.1.34
はい(推奨) いいえ
# cd /var/www/html/shop/install
# rm index.php
●プラウザで「http://192.168.xxx.xxx/shop/admin/」にアクセスする
-------------------------------------------------------------
【参考】phpの不用意なVerUpの防止!
phpのphp5.3以降へのUpgradeはいろいろと問題があります。
例.SilverStripeが2.x系が動作しなくなる
EC-CUBEでエラー多発!
上記より、php関連パッケージインストール時にmysql等をUpgradeしない予防策を講じる。
●yum plugin「versionlock」のインストール
# yum -y install yum-versionlock
●バージョンロックファイルリストの作成
# touch /etc/yum/pluginconf.d/versionlock.list
【参考】php5.3以降でのエラー対策!
EC-CUBEではphp5.3以降を利用すると以下のエラー等が多数発生する。
Deprecated: Assigning the return value of new by reference is deprecated in /var/www/html/ec-data/module/DB.php on line 475
これは=& newが原因です。PHPデバグをオフにしても消せません。
●php.iniでE_DEPRECATEDが出ないように抑制する
# vi /etc/php.ini
;error_reporting = E_ALL
error_reporting = E_ALL & ~E_USER_DEPRECATE
●この対策だけではダメかも?
-------------------------------------------------------------