火曜日, 2月 08, 2011

MySQL一つで複数のMTをインストールする方法。





よくありがちなパターンですが、MySQLのDBがひとつしかないホスティングサービス上で、
複数のMTをインストールする方法がありますのでご紹介。


◇ 実施した環境
MT 5.0.4
MySQL 5.1.50



変更が必要なファイルは以下の3つ:

  • lib/MT/ObjectDriver/Driver/DBI.pm
  • lib/MT/ObjectDriver/Driver/DBD/Legacy.pm
  • lib/MT/ObjectDriver/Driver/DBD/Pg.pm

DBI.pm(16-30行目)


sub init {
    my $driver = shift;
    my (%param) = @_;
    $param{prefix} ||= 'mt5_';
    $driver->SUPER::init(%param);
    my $opts = $driver->connect_options || {};

    require MT;
    my $mt = MT->instance;
    my $cfg = $mt->config;
    $opts->{RaiseError} = $cfg->DBIRaiseError;

    $driver->connect_options($opts);
    $driver;
}


Legacy.pm(47-52行目)

sub db_column_name {
    my $dbd = shift;
    my ($table, $col) = @_;
    $table =~ s{ \A mt5_ }{}xms;
    return join('_', $table, $col);
}


Pg.pm(128-141行目)

sub sequence_name {
    my $dbd = shift;
    my($class) = @_;

    my $key = $class->properties->{primary_key};
    ## If it's a complex primary key, use the second half.
    if(ref $key) {
        $key = $key->[1];
    }

    # mt_tablename_columnname
    return join '_', 'mt5',
        $dbd->db_column_name(MT::Object->driver->table_for($class), $key);
}

※参考にしたサイト

で、実際のDBを走らせてみたらなんと!
DBに新しいフィールドが出来てるじゃないですか!!

DBの登録もキチンとされているし、MTの動きも問題ない。
取り敢えずこのまま運用を続けてみることにします。



これを実施する前にかならず現状のDBバックアップを取ってください。
また、これにより復元できない、エラーが起きたとしても当方は責任持てませんのであしからず。

火曜日, 9月 07, 2010

CentOS FTPでファイルをアップしようとすると 553 Could not create file ってエラーになる。

vsftpd にて

ポートは開けてるし、write_enable=YES もしてる

なんだかなーと思ったのでグーグル先生に聞いてみると、ありました。

FTPでputすると"553 Could not create file."のエラーが返ってくるのはたぶんSELinuxのせい
http://d.hatena.ne.jp/tsukunko/20081027/1225128392

SELinuxが悪さをしてるとのことなので、SSHでログインし

vi /etc/sysconfig/selinux で編集モードへ入って

SELINUX=enforcing を

SELINUX=disabled

に変えて保存して、サーバ再起動。

\(^o^)/ヤター  無事につながったよー。

水曜日, 12月 09, 2009

EC-CUBEで発送日時がずれる!?

クラウド化を進めている現状で海外サーバに格安でホスティング出来るのはいいけど、
ちょくちょく困った問題が起きたりするのも事実。

で、よく陥るのが時差の問題。

それが表題の件なんだけど。。。

EC-CUBEをセットアップしているサーバのシステム時間を日本時間にしているにも関わらず、
発送日時がずれる事が判明 

で、調べてみるとMySQL上の時間を引っ張ってきていることが判明!!

早速、MySQLで、 SELECT now( ) ;  ってやると確かにずれてた。

SET GLOBAL time_zone = timezone;

でタイムゾーンを指定しろってことだったんで

SET GLOBAL time_zone = '+9:00';

※スーパーユーザーの権限がある場合

ない場合は

SET time_zone = '+9:00';

でオケ。


ここのサイトを参考にさせていただきましたー。


月曜日, 11月 09, 2009

Googleのウェブ検索で、郵便番号が検索できる!!

おおー、これは便利やんけー。
やるなグーグル先生

Googleのウェブ検索で、郵便番号が検索できる!! http://googlejapan.blogspot.com/2009/11/blog-post_6364.html

いやー、この時期助かるわ—。

MT4での『Can't call method "label" on an undefined value』 エラーについて

MT4で突如、ログインしようとすると

Can't call method "label" on an undefined value

って怒られた。

ってなったんで、グーグル先生に聞いてみるとおなじ苦労されている方を発見!!


参考元サイト

徒然雑草
Movable Type 4.2  Can't call method "label" on an undefined value



インストールディレクトリ直下の/lib/MT/Entry.pmを編集する。
my @cats = sort { $a->label cmp $b->label } @$cats
これを下記のように書き換える、
my @cats;
eval('my @cats = sort { $a->labelstrong> cmp $b->label } @$cats');


あー、そっかバックアップしたブログを戻した奴だったもんなぁー。って思いだしたけど

『そんなエラーじゃわかるかい!!』
って激しく突っ込んどきました。


金曜日, 8月 07, 2009

ブロガーで独自ドメイン wwwなしの設定

以前、ゴニョゴニョとやって出来たブロガー独自ドメインの
CNAMEを使わずに設定する方法。

ここで書いてる。

こんな非公式な方法じゃなくてちゃんとしたのがブロガーの公式ページにアップされてた。

なので大手を振ってご紹介。


まずはCNAME。
これはいつも通り

WWW IN CNAME ghs.google.com.

で、WWWなしの設定方法。

IPは4つあるみたいなので。。。

@ IN A 216.239.32.21
@ IN A 216.239.34.21
@ IN A 216.239.36.21
@ IN A 216.239.38.21

とドメインコントロール上でレコード設定。


で、それの反映をさせつつ。

ブロガーの管理画面にも独自ドメインの設定

ログイン後 -> 設定 -> 公開 の

ドメインってところに、独自ドメインを入れて、認証の画像を入れて保存。

これだけ。

で、DNSが反映されると設定した独自ドメインでブロガーページが見れるはずです!!


ちなみにブロガーの公式サイトはこちら
http://www.google.com/support/blogger/bin/answer.py?answer=55373

木曜日, 8月 06, 2009

CentOS 5.2にPHP 5.2をインストールする

たぶんこれでいけると思う。
だめだったら御免。。

古いPHPを削除
# yum list installed | grep php
# yum remove php
# yum remove php-common
# yum remove curl
GPG keyの取得
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
取得先を設定
# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

PHPをインストール
# yum -y install php
# yum -y install php-mbstring php-mysql php-mcrypt
リポジトリを無効にする
yum updateでPHP以外のものも取得してしまうため。
# vi /etc/yum.repos.d/utterramblings.repo
enabled=1

enabled=0
に変更する。

月曜日, 8月 03, 2009

CentOS 5.x のMT環境に Image Magick のインストール

これははまるわ。

yum でインストールしようとするも失敗。。。
yum install ImageMagick

なんかエラー出た。

で、ソースからインストールを実行。

wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar  
zxvf ImageMagick.tar.gz
cd
ImageMagick-6.x.x.x
make
make install

で、出来た出来たと思ってmt-check.cgi で見るもインストールされていないっていいやがる!!
んー、と思いながら調べるとありました!!

これか。。。。


/etc/ld.so.conf ファイルに「/usr/local/lib」を追加し、ldconfig コマンドを実行

※上記コンパイルでライブラリファイルは /usr/local/lib にインストールされるが、
CentOS の標準ではこのディレクトリはライブラリ用パスに含まれていないため


とのこと。

ここの記事を参考にしました。
IT Harmony by
nachaさ ん
http://www.nacha.homelinux.com/it_harmony/archives/2009/04/centos-53-mt-im.html








金曜日, 4月 24, 2009

Widows版 PLESK9に旧PLESKデータのバックアップを復元する方法

久々で。
えー、インテルMacくん上でWindows環境が動かせる 「Desktop for Mac」が
有名なパラレルズですが、

PLESKと言うサーバ管理ソフトでも有名です。

で、結構まめにバージョンアップするのですが、たまにあるメジャーアップデートで
困った問題が・・・



旧バージョンにあったバックアップ&復旧のGUIツールがない??

いつも使ってるバージョン

はサーバのスタートメニュー -> プログラムに

バックアップメニューがあったのですが、最新のバージョンにはそれがない。( ̄□ ̄;)!!


で、いろいろ探してみると、どうもコンバートツールがあるみたい。



コマンドがこれ
↓↓↓↓↓↓

DOS上でこれを実行する。

"%plesk_bin%\pre9-backup-convert.exe" --source=旧バージョンのバックアップデータ名 --destination=バックアップするデータの場所

たとえばこんな感じ。

"%plesk_bin%\pre9-backup-convert.exe" --source=oldplesk,psa --destination=backupdata


すると、コマンドを実行したフォルダに xmlデータとバックアップフォルダができるので
それを新PLESKをインストールしたフォルダのbackupフォルダに入れる。


それで、PLESKにアクセスしてBackup Managerから復元作業をすると無事に旧PLESKデータが
復活するってわけ。


原文はここにあるので、わからなければここをチェックしてみてください。
http://kb.parallels.com/en/5817

水曜日, 3月 04, 2009

MSIのインストーラーで「システム管理者によって、ポリシーはこのインストールを実行できないように設定されています」ってなる。

Windows 訳分からん。

SkyDriveのファイルアップローダをインストールしようとしたらこれ。



で、イベントビューアを見るとこんなエラーが・・・

「RichUpload.msi へのアクセスは Administrator によってソフトウェア発行者ポリシーで制限されています。」って自分のポリシーを自分で制限するって・・・

で、いろいろ調べてみたら解決方法がありました。
ローカルセキュリティ設定のソフトウェア制限ポリシーを変更すればいいみたい。

手順は以下の通り。

1.administrator権限のユーザーでログオンする。 ←だから既にしてるって!!
2.ネットワークがきちんと動作してることを確認
3.管理ツール → ローカルセキュリティポリシー で、ソフトウエアの制限のポリシーを変更する
※ ファイル名を指定して実行に 「secpol.msc」でも開きます。
※ ポリシーが設定されていなければ、作成。 ←作成されていなかったのでポチっと
しました。


4.強制: ローカルの管理者を除くすべてのユーザー に設定変更


5.信頼された発行者: ローカルコンピュータの管理者 に設定変更


とやるとすんなりインストールできました。

こんなの分かるか―!!
※ドルアーガの塔なみに分からんわ。そもそもこの意味が分からんか・・・(笑)