Magento var1.7.0.2 Metaタグのtitleにセール価格を自動挿入するカスタマイズ。

MagentoはEC(Electronic Commerce、電子商取引)用オープンソースCMS(Content Management System、コンテンツマネジメントシステム)です。

ECといえば、アマゾンのようなインターネットでの物販を思い浮かべますが、Magentoは物販だけでなく、ホテルやレストラン、不動産の予約やダウンロード販売、DellのようなBTO(Build to Order)も可能なECプラットホームです。

最近弄ぶようになりましたので、カスタマイズメモを置いておきます。

Metaタグのtitleにセール価格を自動挿入する。

titleに販売価格やセール価格を入れておいたら、グーグルとかの検索結果に商品ページが表示されたとき、商品の訴求性が高まるのでクリック率があがりそうです。

ですが、手動でいちいち入力するのは面倒ですので、自動挿入されるようにカスタマイズしてみます。

“Magento var1.7.0.2 Metaタグのtitleにセール価格を自動挿入するカスタマイズ。”の続きを読む

MySQLdumpファイルを別サーバーにSSH&CRONで定期バックアップ

MySQLのdumpファイルを、別サーバーにSSHとCRONで定期バックアップします。そして一週間後からのファイルは削除するようなスクリプトを組みます。

環境はCentOS:6.2、MySQL:5.5.23です。

  • Aサーバー:MySQLのデータ元(example.com)
  • Bサーバー:バックアップ用サーバー(example.jp)

Aサーバーでバックアップ用のユーザー作成。

[root@localhost ~]# useradd {ユーザー名}

ssh公開鍵をBサーバーにインストールします。

Aサーバー側でSSH公開鍵をつくります。

[root@localhost ~]# su - //まずrootになります。
[root@localhost ~]# su - {ユーザー名} // 次にバックアップユーザーになります。
//キーの作成
[{ユーザー名}@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/{ユーザー名}/.ssh/id_rsa):[Enter]
Created directory '/home/{ユーザー名}/.ssh'. [Enter]
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
Your identification has been saved in /home/{ユーザー名}/.ssh/id_rsa.
Your public key has been saved in /home/{ユーザー名}/.ssh/id_rsa.pub.
The key fingerprint is:
フィンガープリント {ユーザー名}@{ホスト名}
[{ユーザー名}@localhost ~]$ exit
[root@localhost ~]# cd /home/{ユーザー名}/.ssh
[root@localhost .ssh]# vi id_rsa.pub

id_rsa.pubの内容が公開鍵になりますのでコピーしてバックアップ先のBサーバーにインストールします。

次の設定はBサーバーのものです。

[root@localhost ~]# useradd {ユーザー名} //同じくバックアップユーザーを作成。

.sshフォルダを作ります。

[{ユーザー名}@localhost ~]$ ssh -p sshのポート番号 localhost

次にキーのコピーです。

[{ユーザー名}@localhost ~]$ cd /home/{ユーザー名}/.ssh
[{ユーザー名}@localhost .ssh]$ vi authorized_keys //公開カギを貼り付けます。
[{ユーザー名}@localhost .ssh]$ exit
[root@localhost ~]# chmod 600 /home/{ユーザー名}/.ssh/authorized_keys

“MySQLdumpファイルを別サーバーにSSH&CRONで定期バックアップ”の続きを読む

Perl関係のモジュールをyumインストール

Perlの各モジュールをyumコマンドを使いインストールします。

rpmforgeリポジトリ のインストール

CentOS32ビット版はx86_64のところをi386にします。

[root@localhost ~]# yum list | grep rpmforge-releas
rpmforge-release.x86_64                  0.3.6-1.el5.rf           installed
//インストールされていないと表示されたらインストール
[root@localhost ~]# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm //64ビット版の場合です。36ビット版はx86_64をi386に
[root@localhost ~]# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
[root@localhost ~]# rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
[root@localhost ~]# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
基本リポジトリとのパッケージ競合を避けるため、デフォルトは無効にしておく
[root@localhost ~]# sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo 
[root@localhost ~]# vi /etc/yum.repos.d/rpmforge.repo
# URL: http://rpmforge.net/
[rpmforge]
priority=1  
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0  //1となっていたら0に変更
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
//rpmforge-releaseをアップデートする場合(rpmforge-releaseが既にインストールされている場合)
[root@localhost ~]# yum update rpmforge-release
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mv rpmforge.repo rpmforge.repo.bk ;mv rpmforge.repo.rpmnew rpmforge.repo
[root@localhost ~]# yum update --enablerepo=rpmforge-extras perl-IO-Compress
※rpmforge-releaseのアップデートの場合、/etc/yum.repos.d/rpmforge.repo.rpmnewというファイルができるので、それをrpmforge.repoにリネームする必要がある。

http://server-helper.doorblog.jp/archives/3686270.htmlを参照させていただきました。

“Perl関係のモジュールをyumインストール”の続きを読む

PostgreSQL9.1.3をCentOS6.2にインストール、運用。

PostgreSQLのインストール

CentOS6.2には、最初PostgreSQL ver.8.4.9が入っていますが、ここでは最新のPostgreSQL9.1.3をインストールします。

もしすでにデータベースを作成している場合、ファイルをバックアップします。

なお、CentOSは64ビット版です。

[root@localhost ~]# su - postgres
-bash-4.1$ pg_dumpall > dumpfile
-bash-4.1$ exit
[root@localhost ~]# service postgresql stop
[root@localhost ~]# mv /var/lib/pgsql/dumpfile /var/lib/pgsql_back

上記のコマンドでファイルをバックアップします。

[root@localhost ~]# yum -y remove postgresql postgresql-server //ver.8.4.9をアンインストール

yumリポジトリの追加
[root@localhost ~]# cd /usr/src
[root@localhost ~]# wget http://yum.pgrpms.org/9.1/redhat/rhel-6-x86_64/pgdg-centos91-9.1-4.noarch.rpm
[root@localhost ~]# rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
[root@localhost ~]# less /etc/yum.repos.d/pgdg-91-centos.repo  //repoを確認
PostgreSQL関係のパッケージを除外するように設定
[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo
[base]

exclude=postgresql*

[updates]

exclude=postgresql*
PostgreSQLのインストール
[root@localhost ~]# yum -y install postgresql postgresql-server postgresql-libs 

PostgreSQL起動

[root@localhost ~]# service postgresql-9.1 initdb //postgresqlを初期化
データベースを初期化中:                                      [  OK  ]
[root@localhost ~]# service postgresql-9.1 start
postgresql-9.1 サービスを開始中:                               [  OK  ]
//自動起動設定
[root@localhost ~]# chkconfig postgresql-9.1 on

“PostgreSQL9.1.3をCentOS6.2にインストール、運用。”の続きを読む

CentOS6.2でOpenDKIM(DomainKeys Identified Mail)のインストール、設定

OpenDKIMをインストールして、送信メールのヘッダーにDKIM認証を付与させます。メールアドレスの実在性を保障するものですので、有効設定したほうがよいみたいです。

特にヤフーメールなどフリーメールに送信する時、この設定をしておかないと、スパムメールとしてはねられる可能性があるみたいです。

OpenDKIMのインストール

インストールした環境は、OS:CentOS6.2、メール転送エージェント:Postffix2.3.3です。

epelのrepoを取得するとyumでインストールできます。epelのrepoを取得はこちらを参照。

[root@localhost ~]# yum install sendmail-devel openssl-devel
[root@localhost ~]# yum --enablerepo=epel install opendkim
================================================================================
  Package              Arch            Version               Repository     Size
  ================================================================================
  Installing:
  opendkim             x86_64          2.4.2-5.el5           epel          222 k
  Installing for dependencies:
  libopendkim          x86_64          2.4.2-5.el5           epel           65 k
Transaction Summary
  ================================================================================
  Install       2 Package(s)

依存関係にあるlibopendkim もインストールされました。

OpenDKIMの設定

秘密鍵の保管場所をドメインごとに作ります。

[root@localhost ~]# mkdir /etc/opendkim/keys/example.com
[root@localhost ~]# /usr/bin/opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s default
[root@localhost ~]# chown -R opendkim:opendkim /etc/opendkim/keys
[root@localhost ~]# mv /etc/opendkim/keys/example.com/default.private /etc/opendkim/keys/example.com/default

“CentOS6.2でOpenDKIM(DomainKeys Identified Mail)のインストール、設定”の続きを読む

CentOSにSSL証明書を2つインストールしてみました。

CentOSにSSL証明書を2つインストールしてみました。(2つのドメインにSSL証明書を当てる。)

2つ以上SSL証明書をインストールする場合、グローバルIPアドレスを追加し、IPレベルでバーチャルドメインを立てる必要がありました。

以下はその手順。

Apacheにその設定をほどこすことと、ApacheのSSL用モジュールmod_sslと、OpenSSLをCentOS5にインストールします。

[root@localhost ~]# yum -y install mod_ssl
[root@localhost ~]# yum -y install openssl

秘密鍵や証明書を保管するディレクトリを作ります。

[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# mkdir ./ssl.key
[root@localhost conf]# mkdir ./ssl.csr
[root@localhost conf]# mkdir ./ssl.crt
[root@localhost conf]# mkdir ./certs
[root@localhost conf]# ls  //ディレクトリを確認
  httpd.conf  httpd.conf.backup.2009-Oct12-15:04:00  magic  ssl.crt  ssl.csr  ssl.key
[root@localhost conf]# cd ssl.key/
[root@localhost ssl.key]# pwd  //現在のディレクトリの場所を表示
  /etc/httpd/conf/ssl.key
[root@localhost ssl.key]# openssl genrsa -des3 -out server.key 2048  //Key生成
  Generating RSA private key, 2048 bit long modulus
  ........++++++
  ....................++++++
  e is 65537 (0x10001)
  Enter pass phrase for server.key:              //パスワードを入力
  Verifying - Enter pass phrase for server.key:  //パスワード確認
[root@admin ssl.key]# chmod 400 server.key  //パーミッション変更
[root@admin ssl.key]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [GB]:JP                                     //国コードを入力
  State or Province Name (full name) [Berkshire]:Tokyo                     //都道府県名を入力
  Locality Name (eg, city) [Newbury]:Hachiouji                             //市区町村名を入力
  Organization Name (eg, company) [My Company Ltd]:server-memo Corp        //企業名・組織名を入力
  Organizational Unit Name (eg, section) []:                               //部署名を入力(省略の場合ハイフォンを入力)
  Common Name (eg, your name or your server's hostname) []:www.exsample.com //サーバのホスト名をFQDNで入力
  Email Address []:                                                        //担当者のE-mailアドレス(省略の場合ハイフォンを入力)
  ※上記の内容はメモ帳などにコピペ保存(後で必要になってくる場合がある)
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:         //パスワードを入力(省略可
  An optional company name []:     //省略
[root@localhost ssl.key]# vi server.csr
  で開いた内容をコピペして認証局に送る。
[root@localhost ssl.key]# chmod 400 server.csr  //パーミッション変更
[root@localhostssl.key]# mv server.csr /etc/httpd/conf/ssl.csr //ssl.csrディレクトリにファイルを移動
[root@localhost ssl.key]# openssl rsa -in server.key -out server.key    //サーバー用秘密鍵からパスワード削除
 Enter pass phrase for server.key:    //サーバー用秘密鍵・証明書作成時のパスワード応答※表示はされない
 writing RSA key

“CentOSにSSL証明書を2つインストールしてみました。”の続きを読む

PHPインストールメモ

php最新版をインストールするためにリポジドリを取得

リポジドリの取得は以下のディレクトリで取得します。

※CentOS6.2の場合です。

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[root@localhost src]# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

http://memorandum.yamasnet.com/archives/Post-165.htmlを参照

Centos 32ビット版はx86_64をi382に。

CentOS-Base.repoの編集

[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo
--------【CentOS-Base.repo】--------
[centosplus]
...
enabled=1
...
--------

remiの編集

[root@localhost ~]# vi /etc/yum.repos.d/remi.repo
[remi]
priority=1 //各repoの優先順位の設定。とりあえず1にしておく。
name=Les RPM de remi pour Enterprise Linux 5 - $basearch
baseurl=http://rpms.famillecollet.com/el5.$basearch/
http://iut-info.univ-reims.fr/remirpms/el5.$basearch/
enabled=0 //0にしておいたほうが無難
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch
baseurl=http://rpms.famillecollet.com/test-el5.$basearch/
enabled=0 //0にしておいたほうが無難
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

epelの編集

[root@localhost ~]# vi /etc/yum.repos.d/epel.repo
[epel]
priority=1 //各repoの優先順位の設定。とりあえず1にしておく。
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

[epel-debuginfo]
priority=1 //各repoの優先順位の設定。とりあえず1にしておく。
name=Extra Packages for Enterprise Linux 5 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

[epel-source]
priority=1 //各repoの優先順位の設定。とりあえず1にしておく。
name=Extra Packages for Enterprise Linux 5 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

“PHPインストールメモ”の続きを読む

amavisdとの通信不可的なメッセージを発見

OSを再起動したらメールの送受信ができなくなりました。

エラーを確認。

[root@localhost ~]# less /var/log/maillog

[Shift]+G で最下段へ。

amavisdとの通信不可的なメッセージを発見しました。

[root@localhost ~]# service amavisd restart

Mail Virus Scanner (amavisd) を起動中: fetch_modules: error loading required module Compress/Zlib.pm:
Compress::Raw::Zlib version 2.036 required--this is only version 2.024 at /usr/lib/perl5/vendor_perl/5.8.8/Compress/Zlib.pm line 11.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.8/Compress/Zlib.pm line 11.
Compilation failed in require at /usr/sbin/amavisd line 197.
ERROR: MISSING REQUIRED BASIC MODULES:
>Compress::Zlib
BEGIN failed--compilation aborted at /usr/sbin/amavisd line 237.
[失敗]

Compress::Raw::Zlibでつまずいているようですので、

[root@sakuemon ~]# yum --enablerepo=rpmforge update perl-Compress-Raw-Zlib

で解決しました。

OS再起動前にamavisd単体をアップデートしたので、付随するモジュールのバージョンが合わなくなったみたいです。

CentOSコマンド集

viエディタコマンド一覧。

終了キー :q セーブせずに終了
:q! 変更した行もセーブせずに終了
:w セーブするが終了しない。
:wq セーブして終了
編集モードへ移るためのキー i 現在のカーソル位置から挿入。
R 現在のカーソル位置から置換。
A 現在行の末尾に追加。
O 現在行の前に行挿入。
o 現在行の次に行挿入。
カーソル移動キー h(←)
j(↓)
k(↑)
l(→)
0 行頭へ
$ 行末へ
[Enter] 次の行の先頭へ
w 次の単語へ
b 前の単語へ
curl + f 次画面へ
curl + b 前画面へ
1G 文頭へ
G 文末へ
nag inn行目へ
変更キー x 1文字削除
dd 1行削除(カット)
cw(Change Word) 1語変更
c$ カーソル位置から行末まで変更
dw(Delete Word) 1語削除
d$ カーソル位置から行末まで削除
検索 /正規表現 前方検索
?正規表現 後方検索
n 次の候補
N 前の候補
置き換え :1,$s/正規表現/置き換え文字列/g 文書内の全ての「正規表現」を「置き換え文字列」に置換
カット/コピー&ペースト yy 1行コピー
dd 1行カット
p ペースト(張り付け)
その他 .(ドット) 直前の変更操作の繰り返し
u 直前の変更操作の取り消し(何回でも戻れる)
:r xxx ファイル xxx の内容を次の行に挿入
:r! xxx OSの xxx コマンドを実行し、
その結果を次の行にに挿入。
:h 日本語マニュアルを表示

Postdix、DovecotでSMTPサーバー、POP3/IMAP4サーバ構築

メールサーバ設定 SMTPサーバ

次の設定は、CentOS6.2での構成になります。

CentOSで標準のsendmailからpostfixに変更します。

[root@localhost ~]# groupadd postfix
[root@localhost ~]# groupadd postdrop
[root@localhost ~]# useradd  postfix -g postfix
[root@localhost ~]# yum install postfix

メールサーバプログラムをPostfixに切り替えます。

[root@localhost ~]# alternatives --config mta
There are 2 programs which provide 'mta'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number:  1

/etc/postfix/main.cf ファイルを作成。

“Postdix、DovecotでSMTPサーバー、POP3/IMAP4サーバ構築”の続きを読む