efaxでFaxサーバーを構築

2012 年 2 月 29 日 – 12:48 AM

参考サイトURL
http://shino.pos.to/linux/fax.html
http://blog.bunchan.com/?eid=28
http://www.nabe.bne.jp/linux/faxserver.html

・efaxをインストールする。
# yum -y install efax

・属性の変更
# chmod 666 /dev/ttyS0

・リンクを張る
# ln -sf /dev/ttyS0 /dev/modem

※上記二項目において、再起動時に無効になってしまうため下記ファイルに記述しておく。
# vi /etc/rc.d/rc.local
chmod 666 /dev/ttyS0
ln -sf /dev/ttyS0 /dev/modem

・/etc/efax.rc の新規作成
FROM=”+81 99 999 9999″
NAME=”CIS Inc.”
PAGE=a4
など、/usr/bin/fax を参考に変更部分を記述する。

・自動受信スクリプトの新規作成
/etc/init/autofax-recv.conf
— ここから —
#
# 自動受信スクリプト
#
start on stopped rc RUNLEVEL=[345]
stop on starting rc RUNLEVEL=[S0126]
respawn
exec /bin/sh /usr/bin/fax answer
#
— ここまで —

・自動受信開始
# start autofax-recv

・自動受信終了
# stop autofax-recv

・送信スクリプト作成
send_fax.sh
下記URLを参考に作成する。
http://www.nabe.bne.jp/linux/faxserver.html

・送信
# send_fax.sh FaxNumber PDF_file

郵便番号CSVデータをSQL SERVERにインポートする

2012 年 1 月 11 日 – 12:41 AM

日本郵便の郵便番号データをMicrosoft SQL Server 2008 R2にインポートした時のメモ

  • CSV形式の「全国一括」と記載されているデータをクリックしてダウンロード
  • ダウンロードしたファイルを展開する
  • 展開してできたCSVファイルをエクセルで開く
  • エクセル形式で保存する
  • データのインポートおよびエクスポート(32ビット)を起動する(64ビットOSでも)
    ※SQL Server 2008 R2 with tools をインストールしてあればスタートメニューから選択できる
  • インポート元データソースにMicrosoft Excel形式を選択する
  • Excelファイルパスを指定する
  • 「先頭行に列名を含める」のチェックを外す
  • インポート先サーバー名には「MYPC\SQLEXPRESS」と指定する(MYPCの部分はOSインストール時につけた名前)
  • データベースには、該当するデータベースを選択する
  • テ-ブルのコピーまたはクエリの指定ページでは、何も変更せず、次へ
  • 次のページで変換先を指定する(変換元は固定)
  • 必要に応じて、マッピングの編集を行う
  • 次へ、次へ、完了でインポートが開始される

※CSVから直接インポートもできるようだが、今回はどうしても上手くいかなかったため、上記のような方法で実現した。
尚、MySQLには、比較的簡単にCSVをインポートできた。phpmyadminよりCSV形式を指定するだけでインポートできる。もし、アップロード上限サイズ等の制約で失敗する場合は、/etc/php.iniの該当箇所を書き換えて、
/etc/rc.d/init.d/httpd restart

サイト設置など@EC-CUBE 2.11.4

2011 年 12 月 13 日 – 1:16 AM

例えば、http://xyz.com/shop/ に設置する場合、次のような手順でインストールする。
※ドキュメントルートを /var/www/html/ とする。

  • 前準備としてデータベースを作っておく。
    mysql> create database eccube_db;
    必要があればユーザーも作っておく。
  • shopディレクトリーを作成
    mkdir /var/www/html/shop
  • eccube-2.11.4を取得する。
    wget http://downloads.ec-cube.net/src/eccube-2.11.4.tar.gz
  • 展開する。
    tar xzvpf eccube-2.11.4.tar.gz
  • dataディレクトリーを設置する。
    mv eccube-2.11.4/data /var/www/html/shop/
  • htmlディレクトリー内容を設置する。
    mv eccube-2.11.4/html/* /var/www/html/shop/
  • パーミッションを変更する。
    chmod -R a+w /var/www/html/shop
  • dataディレクトリーの相対位置を補正する。
    vi /var/www/html/shop/define.php
    3行目、define(“HTML2DATA_DIR”, “../data/”); を
    define(“HTML2DATA_DIR”, “data/”); に変更
  • ブラウザより、http://xyz.com/shop/install/
  • 後は指示に従いインストールを進める。

SSL等のURL関連定義は、下記ファイルを編集する。
vi /var/www/html/shop/data/config/config.php

自分で追加した.cssファイルを有効にするには、下記ファイルを編集する。
vi /var/www/html/shop/user_data/packages/default/css/import.css
管理画面より、mystyle.css を追加した場合、下記記述を追加する。
@import url(“./mystyle.css”);

以下は、import.css 初期内容
— import.css —
@charset “utf-8”;
/************************************************
import css
************************************************ */
@import url(“./reset.css”);
@import url(“./common.css”);
@import url(“./contents.css”);
@import url(“./table.css”);
@import url(“./bloc.css”);
@import url(“./bloc_alpha.css”);
@import url(“./popup.css”);
@import url(“./print.css”);
/*
*/

ZenCart 支払い方法選択時のクロネコ@ペイメントの表示制御

2011 年 10 月 20 日 – 10:29 AM

「クロネコ@ペイメント」支払いを選択肢に加えるのは、配送方法で「宅急便」を選択されている時のみに限定する。
他に方法があるかも知れないが、とりあえず以下の方法で実現することにする。

includes/modules/payment/kuroneko_at_payment.php
update_status()関数に次のコード追加

// class methods
function update_status() {
  global $order, $db;

// ここから追加
// 選択されている配送方法がヤマト運輸(宅急便)でなければ表示させない。
if ($order->info[‘shipping_module_code’] != ‘yamato_yamato’)
  $this->enabled = false;
// ここまで

if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_KURONEKO_AT_PAYMENT_ZONE > 0) ) {
// 以下省略

以上

PR-S300NEでサーバー2台を稼働させる

2011 年 10 月 19 日 – 5:27 PM

今までは、PR-S300NEをハブとして使用し、それにコレガルーターを2台接続して、それぞれにサーバーを繋げて運用していた。
しかし、コレガルーターは発熱のせいで、固まることがしばしばあったため、今回、コレガルーターを停止して、PR-S300NEのみで、サーバーを2台繋ぐことを試みた。

まず、それぞれのルーターに設定している接続アカウントをメモする。
次に、2台のルーターは停止&撤去する。
次に、PR-S300NEの設定を行う。

  • 2セッション分の接続アカウントを設定し、常時接続を開始。[基本設定]-[接続設定]
  • [詳細設定] – [静的IPマスカレード設定]で、開放するポートを定義する。イメージ的には、同じ解放ポートを2セッション分定義する感じで、宛先アドレス(内部LANポート、192.168.1.78等)のみそれぞれのサーバーを指すように設定する。
    ※設定を有効にするためのチェックを入れることを忘れずに!!
  • [詳細設定] – [静的ルーティング設定]で次のように設定する。これをしないと「優先」設定されている接続先、デフォルトで「接続先1」のみしかサーバーへ通らない。
    ※優先設定は、[基本設定]-[接続設定]で変更できる。

    • 指定方法:「送信元アドレス指定」を選択する。
    • 送信元アドレス:ここには、接続先2を通すサーバーのLAN-IPアドレスを指定する。192.168.1.78等
    • 接続先:接続先2を選択する。※優先設定が「接続先1」に設定されている場合
    • 「設定」ボタン→「前のページに戻る」→「設定」と確実に設定内容を確定させる。
      ※設定を有効にするためのチェックを入れることを忘れずに!!
  • 最後にページ左上にある、「保存」ボタンを押して設定内容をルーターに書き込む。

以上で、2セッションそれぞれのグローバルIPを目的のサーバーへ通すことができた。

ZenCart 「消費税:5%」文字列の変更

2011 年 10 月 10 日 – 12:57 PM

レジ処理や注文メールで記載される、「消費税:5%」の文字列を「上記金額に含まれる消費税5%分」などの文字列に変更する方法は下記のとおり。

管理画面
「地域・税率設定」-「税率設定」
編集項目の「説明」欄の文字列を変更する。

ZenCart 郵便番号の左に「〒」記号を付加する方法

2011 年 10 月 9 日 – 11:25 PM

1. ソースファイル ‘includes/languages/japanese.php’ の適当な場所に
define(‘_POST_’, ‘〒’);
を追加定義する。

2. ソースファイル ‘includes/functions/functions_customers.php’ 下記の部分を修正する。
$postcode = zen_output_string_protected($address[‘postcode’]);

$postcode = _POST_ . zen_output_string_protected($address[‘postcode’]);

以上で各郵便番号の表示箇所(メール含む)で「〒950-0001」のように出力されるようになる。

BANNED contents from you (.exe,.exe-ms,ABC.EXE)

2011 年 4 月 7 日 – 6:06 PM

ABC.EXE入りの.ZIPファイルを添付したメールを送ろうとしたら、下記内容のアラートメールが届き、送信できなかった。
色々調べたら対策方法がわかった。(後述)

BANNED CONTENTS ALERT

Our content checker found
banned name: .exe,.exe-ms,ABC.EXE

in email presumably from you to the following recipient:
-> メールアドレス

Our internal reference code for your message is 21077-13/YMMacV4ed3Js

Return-Path: <メールアドレス>
From: = 名前 <メールアドレス>
Message-ID: <メッセージID>
Subject: = 表題

Delivery of the email was stopped!

The message has been blocked because it contains a component (as a MIME part or nested within) with declared name or MIME type or contents type violating our access policy.

To transfer contents that may be considered risky or unwanted by site policies, or simply too large for mailing, please consider publishing your content on the web, and only sending an URL of the document to the recipient.

Depending on the recipient and sender site policies, with a little effort it might still be possible to send any contents (including
viruses) using one of the following methods:

– encrypted using pgp, gpg or other encryption methods;

– wrapped in a password-protected or scrambled container or archive
(e.g.: zip -e, arj -g, arc g, rar -p, or other methods)

Note that if the contents is not intended to be secret, the encryption key or password may be included in the same message for recipient’s convenience.

We are sorry for inconvenience if the contents was not malicious.

The purpose of these restrictions is to cut the most common propagation methods used by viruses and other malware. These often exploit automatic mechanisms and security holes in more popular mail readers (Microsoft mail readers and browsers are a common target). By requiring an explicit and decisive action from the recipient to decode mail, the danger of automatic malware propagation is largely reduced.

■対処方法
/etc/amavisd.conf の以下の部分をコメントアウト。

@decoders = (
:
:
# [‘zip’, \&do_unzip],
# [‘lha’, \&do_lha, ‘lha’],
:
:

MySQL 外部から接続できるようにする。

2010 年 12 月 4 日 – 11:22 PM
MySQL、は初期状態(インストール直後)では外部からの接続ができない。
外部からの接続を許可するためには、外部からの接続権を持つユーザーを作成すればよい。

下記はユーザー作成の例(%記号はワイルドカード)
grant all on *.* to admin@”192.168.1.%” identified by ‘password’ with grant option;

ユーザー名: admin
接続を許可するホスト: 192.168.1.0 ~ 192.168.1.255
パスワード: password

この例では、ユーザー admin は、192.168.1.* からの接続が可能。また、すべてのデーターベースへの接続と操作が許可される。
※ルーター及びiptables ポート3306の開放を忘れずに!

MySQL 特定のテーブル内の特定の項目に含まれる文字列を置き換える

2010 年 10 月 15 日 – 12:39 AM

SQL文は下記のとおり

update products_description set products_description=replace(products_description,’/catalog/’,’/’)

この例では、テーブル `products_description` 内の項目`products_description` に含まれる文字列 ‘/catalog/’ を ‘/’ に置き換えてテーブルを更新する。