12月 2 2017
【ECCUBE】DBのrankとかを変更した際のキャッシュのクリア
以下の中身を削除
/shop/data/cache
12月 2 2017
会員登録フォームおよび注文フォームで性別の初期値を指定する。
/shop/data/class/helper/SC_Helper_Customer.php
本来なら
/shop/data/class_extends/helper_extends/SC_Helper_Customer.php
なんだと思いますがとりあえず
/shop/data/class/helper/SC_Helper_Customer.phpで
$objFormParam->addParam(‘性別’, $prefix . ‘sex’, INT_LEN, ‘n’, array(‘EXIST_CHECK’, ‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));
末尾に ,2 を追加すると女性が初期選択値になります。
/shop/data/class_extends/helper_extends/SC_Helper_Customer.php
でやるなら
/**
* 会員登録共通
*
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @param boolean $isAdmin true:管理者画面 false:会員向け
* @param boolean $is_mypage マイページの場合 true
* @param string $prefix キー名にprefixを付ける場合に指定
* @return void
*/
public function sfCustomerRegisterParam(&$objFormParam, $isAdmin = false, $is_mypage = false, $prefix = ”)
{
$objFormParam->addParam(‘パスワード’, $prefix . ‘password’, PASSWORD_MAX_LEN, ”, array(‘EXIST_CHECK’, ‘SPTAB_CHECK’, ‘ALNUM_CHECK’));
$objFormParam->addParam(‘パスワード確認用の質問の答え’, $prefix . ‘reminder_answer’, STEXT_LEN, ”, array(‘EXIST_CHECK’, ‘SPTAB_CHECK’, ‘MAX_LENGTH_CHECK’));
$objFormParam->addParam(‘パスワード確認用の質問’, $prefix . ‘reminder’, STEXT_LEN, ‘n’, array(‘EXIST_CHECK’, ‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));
// 末尾に女性を示す値”2″を設定
$objFormParam->addParam(‘性別’, $prefix . ‘sex’, INT_LEN, ‘n’, array(‘EXIST_CHECK’, ‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’), 2);
$objFormParam->addParam(‘職業’, $prefix . ‘job’, INT_LEN, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));
// XXX: year,month,dayはprefix付けないのが今のところ共通
$objFormParam->addParam(‘年’, ‘year’, 4, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’), ”, false);
$objFormParam->addParam(‘月’, ‘month’, 2, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’), ”, false);
$objFormParam->addParam(‘日’, ‘day’, 2, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’), ”, false);
// 末尾にHTMLメールを示す値”1″を設定
$objFormParam->addParam(‘メールマガジン’, $prefix . ‘mailmaga_flg’, INT_LEN, ‘n’, array(‘EXIST_CHECK’, ‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’), 1);
if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) {
$objFormParam->addParam(‘メールアドレス’, $prefix . ‘email’, null, ‘a’, array(‘NO_SPTAB’, ‘EXIST_CHECK’, ‘EMAIL_CHECK’, ‘SPTAB_CHECK’ ,’EMAIL_CHAR_CHECK’));
$objFormParam->addParam(‘パスワード(確認)’, $prefix . ‘password02’, PASSWORD_MAX_LEN, ”, array(‘EXIST_CHECK’, ‘SPTAB_CHECK’ ,’ALNUM_CHECK’), ”, false);
if (!$isAdmin) {
$objFormParam->addParam(‘メールアドレス(確認)’, $prefix . ‘email02’, null, ‘a’, array(‘NO_SPTAB’, ‘EXIST_CHECK’, ‘EMAIL_CHECK’,’SPTAB_CHECK’ , ‘EMAIL_CHAR_CHECK’), ”, false);
}
} else {
if (!$is_mypage) {
$objFormParam->addParam(‘メールアドレス’, $prefix . ‘email’, null, ‘a’, array(‘EXIST_CHECK’, ‘EMAIL_CHECK’, ‘NO_SPTAB’ ,’EMAIL_CHAR_CHECK’, ‘MOBILE_EMAIL_CHECK’));
}
}
}
を追記と思います。
http://black-son.com/php/ec-cube/566 を参考にしました。
11月 27 2017
https://freebsd.sing.ne.jp/daily/05/02.htmlcerbotを実行すると下記のようなエラーが出た。
jailの環境をコピーしたりして作ったjailで出たんだけど。
> certbot –help
Traceback (most recent call last):
File “/usr/local/bin/certbot”, line 6, in
from pkg_resources import load_entry_point
File “/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py”, line 3138, in
・・・
File “/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py”, line 867, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The ‘acme==0.19.0’ distribution was not found and is required by certbot
/usr/ports/security/py-acme
を reinstall するとうまくいくそうです。
下記に記載がありました。
https://freebsd.sing.ne.jp/daily/05/02.html
11月 24 2017
sshで接続しようとすると「Host key verification failed.」と表示される。
slogin -v で表示されると
read_passphrase: can’t open /dev/tty: Device busy
が最後の行に表示される。
これは、jexec でログインしているから。
https://ituki.proj.jp/log/20080130.html
10月 9 2017
商品の価格修正などで一旦テストアップをして、その後本アップしたい場合。
商品データだけを本サイトに移したい場合の作業。
移行用のデータベースが作成できることが前提です。
・本サイト用のデータベース(現在のデータベース)
・仮アップ用のデータベース(テストアップ用のデータベース)
・移行後のデータベース (移行を速やかにするため、このデータベースにすべて移行して切り替える。)
の3つを用意する。テストアップなどは狩りアップ用のデータベースにアップする。)
ここでは、本サイトは shop/ で仮アップは shop_test/ にして、切り替え時は下記作業の後 shop/をshop_bak/ にして、shop_test/をshop/に変更して本稼働とする。
下記の手順で商品データを移行後のデータベースに仮アップ用データベースからコピーする。
手順
1.本サイトのデータベースを移行後のデータベースに丸ごとコピーする。
2.移行後のデータベースに仮アップ用のデータベースから商品データ関係をコピーする。
3.本サイトで使うデータベースを移行後のデータベースに切り替える。
作業
1.移行後用のデータベースに本サイト用のデータベースの内容を丸ごとコピーする。(phpMyAdminなどでエクスポートしてインポートしてコピーのDBを作る)
2.移行後のデータベースに、仮アップ用のデータベースの商品関係データをコピーする。
移行後のデータベースの下記テーブルを一旦空にする。
その後、仮アップ用のデータベースで、「操作」「テーブルを(database.table)にコピーする」-「データのみコピー」でデータをコピーする。
****************************************
カテゴリー
■dtb_category
■dtb_category_count
■dtb_category_category_id_seq
■dtb_category_total_count
規格(登録されていれば必要)
■dtb_class
■dtb_classcategory
■dtb_classcategory_classcategory_id_seq
■dtb_class_class_id_seq
商品
■dtb_products
■dtb_products_class
■dtb_products_class_product_class_id_seq
■dtb_products_product_id_seq
■dtb_product_categories
■dtb_product_status
関連商品
■dtb_recommend_products
商品に対する書き込み
■dtb_review
■dtb_review_review_id_seq
お客様の声(登録されていれば必要)
■dtb_review
*****************************************
商品画像は、「html/upload/save_image」のデータを移行する。
以下サイトを参考にしました。
http://itoben.com/blog/528.html
https://www.kaiplus.com/user_data/move_001_product.php
以上です。
10月 6 2017
商品規格の値を修正の後、「確認」ボタンで確認画面が表示されず修正の画面に戻る。
/shop/data/class/pages/admin/products/LC_Page_Admin_Products_ProductClass.php
が規格の編集後の確認画面へのプログラムのファイルのよう。
87行目あたり
if (SC_Utils_Ex::isBlank($this->arrErr)) {
$this->tpl_mainpage = ‘products/product_class_confirm.tpl’;
$this->doDisp($objFormParam);
$this->fillCheckboxesValue(‘stock_unlimited’, $_POST[‘total’]);
$objFormParam->setParam($_POST);
$objFormParam->convParam();
// エラーが発生した場合
} else {
$objFormParam->setParam($_POST);
$objFormParam->convParam();
}
でエラーとなってるから編集画面に戻ってきてるようだ。
エラーチェックは同一ファイル中の322行目くらい
public function lfCheckProductsClass(&$objFormParam)
のところ。送料区分を作って、必須チェックしてたのが規格編集のところで必須チェックに
引っかかってたみたいな感じです。
呼び出しているPHPファイル名から判断して回避させました。
if (SC_Utils_Ex::isBlank($arrValues[‘delivtype’][$i])) {
// 規格編集から来た場合はここは必須チェックさせない。
$hide_myname = basename($_SERVER[‘PHP_SELF’]);
if( $hide_myname<>”product_class.php” ){
$arrErr[‘delivtype’][$i] = ‘※ 送料区分は、いずれかを選択してください。<br />’;
}
}
10月 6 2017
/etc/ssh/sshd_config
を設定変更する。
PubkeyAuthentication yes
PasswordAuthentication yes
で明示的にno yesを設定すると行けるようになりました。
Permission denied (publickey).
もこれで解決した。
ここを参照。
http://mitsuakikawamorita.com/blog/?p=387
あるいは。。下記も試す。
password認証のサーバに接続したい場合
上述したクライアントのssh_configに以下の設定を追加してやればいい。
PreferredAuthentications password
9月 29 2017
EC CUBE2.13.5 で管理画面にログインすると、「更新処理に失敗しました」と表示され画面右サイドが表示されない。
また、クレジットカード決済も失敗するという現象が出ました。
ぐぐるといろいろな改善策がヒットしますが、改善に至りませんでした。
今回の場合、php56-opensslモジュールがうまく動作していなく、再インストールすると現象が改善いたしました。
FreeBSD11 / apache24 / PHP56 の環境でした。
9月 26 2017
httpd-ssl.conf の書き方。
<VirtualHost **.**.**.**:443>
# General setup for the virtual host
DocumentRoot “/usr/home/hogehoge123-jp”
ServerName www.hogehoge123.jp:443
ServerAdmin root@freedom.ne.jp
ErrorLog “/var/log/httpd-error.log”
TransferLog “/var/log/httpd-access.log”
・
・
・
SSLCertificateFile “/usr/local/etc/letsencrypt/live/www.hogehoge123.jp/cert.pem”
SSLCertificateKeyFile “/usr/local/etc/letsencrypt/live/www.hogehoge123.jp/privkey.pem”
SSLCertificateChainFile “/usr/local/etc/letsencrypt/live/www.hogehoge123.jp/chain.pem”
9月 24 2017
散々あると思いますが、備忘録。
# ssh-keygen -t rsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
9e:ab:12:04:5d:3d:c7:55:f5:1b:9d:55:91:5f:1f:92
以下のようにキーが作成できていることが確認できます。
# ls /root/.ssh/
id_rsa id_rsa.pub known_hosts
このid_rsa.pubを接続先に送り(/tmp/id_rsa.pub)
接続先にて、以下のようにします。
# touch authorized_keys
# chmod 600 authorized_keys
# cat /tmp/id_rsa.pub >> authorized_keys