[Linuxメモ]Osukini Server LTに引っ越してからやったことのまとめ

TS3Y0038
SaaSesのVPSであるOsukini Server LTに引っ越した。共用レンタルサーバーと違って、自由度は高くなるものの自分でやらないといけないことが多くなるため、Nexus 7を触る時間とhuluを見る時間を削ることを余儀なくされているここ数日である。といっても、触ったり視たりしているのでサーバーの作業の方がおろそかになってたりする。現状はと言うと一応昨夜あたりでだいたい片付いた感じではあるが、サーバー自体が安定してない。次の日見てみると普通に固まっていたりする。困った。サーバーの所為なのか私の設定の所為なのか私の作ったCGIの所為なのか、サーバーの性能の限界なのかは現在調査中。とりあえず、Apacheのログと/var/messageをtail -fで監視しながら、topコマンドも別ターミナルで起動させて監視しておこうと思う。共用サーバーと違いapacheのログが常にリアルタイムに見れるので自作CGIが吐いている細かいエラーなども取って行きたいと思う。

※もしかして他のリソースに影響するほどひどい負荷を掛けるユーザーが同じサーバー上にいるのだろうか…。はは…、まさかね。

SaaSes|クラウド、ホスティング、VPS、専用サーバー、データセンターのパイオニア 

そういうわけでやったことの大きなまとめ。

・blog.kumacchi.comをcoreserverから新サーバーに移動設置
・supplement.kumacchi.comを新サーバーに移動設置

・programming-language.kumacchi.comを新サーバーに移動設置

・自作CGIでパスが変わったりモジュールが足りなくて動いてないCGIのチェックと対応

・その他もろもろや既存の問題や今回の作業中に気付いた問題点などに対処。


OS

OSは:CentOS6(32bit)をチョイスした。CentOS6は初めて、CentOS5も選ぶことができて枯れているこっちを使おうかと思ったが、チャレンジしてみた。perlのバージョンが上がってそうでモジュールが動かなかったりインストール出来ないのではないかと思ったが、今のところ大きな問題はない。逆にperl 5.8.xのほうがサポート外になってきているようなのでこっちで良かったと思う。ただ現在安定動作に至ってないので原因が分かるまでなんとも言えない。


DB

前回、AMA-TOOLBOXのサーバーを構築した際には最小構成でインストールしたのでインストールしなかったMySQLを今回はインストールした。理由としては、blog.kumacchi.comをこの際SQLIteからMySQLにデーターベースを変更しようかと考えているのと、完全放置状態のprogramming-language.kumacch.comはMTをMySQL運用していたのでMySQLが必要だったからだ。MySQLは余り触ったことがないのでよくかからないので面倒だったが何とかなった。phpMyAdminなどもよく使い方がわからないので面倒だった。

AMA-TOOLBOX – トップページ


サーバーの基本的な設定

基本的な作業は下記のAMA-TOOLBOXのサーバーを構築した時のメモを見ながらやったので特に手間はかからなかった。

[Linuxメモ]SaaSesのVPS、OsukiniサーバーLTで行った設定の私的メモ – KUMA TYPE

[Linuxメモ]SaaSesのVPS OsukiniサーバーでSuexecを使うには? – KUMA TYPE

上記の記事で気になったのはadduserでユーザーを追加した後は、passwdコマンドでパスワードを設定する方法が抜けていた。

passwd <アカウント名>

でパスワードを設定できる。


Apacheの設定

前の記事ではApacheの設定については余り触れてなかった。

◎トークンをプロダクトオンリーにした。
(セキュリティ的に、apacheのバージョンなどの細かい情報を表示しないようにする。)

#ServerTokens OS
ServerTokens ProductOnly

◎管理者メールアドレスを登録。
迷惑メールが来るかもしれないので設定しないのも手ではある。してもgmailにするとか。

#ServerAdmin root@localhost
ServerAdmin example@example.com

◎サーバーネームの設定
blog.kumacchi.comにした。

#ServerName www.example.com:80
ServerName blog.kumacchi.com:80

◎Indexesの設定を.htaccessで変更することが出来るようにして、デフォルトは動作しないようにした。"/"で終わるURLでアクセスした時にファイル一覧が表示されるようにするかどうかのあれ。

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/public_html>
#   AllowOverride FileInfo AuthConfig Limit
    AllowOverride FileInfo Indexes AuthConfig Limit
    Options MultiViews -Indexes SymLinksIfOwnerMatch ExecCGI IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

◎拡張子.cgiの時にCGIとして動作するように設定。

.cgi拡張子に反応するようにコメントを外す。

#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi

◎文字コードの設定をコンテンツ中のcharset=の設定に任せる。デフォルトはUTF-8オンリーに成っているので、Shft-JISのページなど下記のようにメタタグで文字コードを宣言していても文字化けする。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

#文字コードをcharset=の設定に任せる(じゃないとShiftJISのページなどが文字化けして表示される)
AddDefaultCharset off

◎言語のプライオリティーを日本語優先にする。

#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

◎バーチャルホストを使うのでコメントを外す。

NameVirtualHost *:80

◎バーチャルホストの設定の追加

<VirtualHost *:80>
    ServerAdmin example@example.com
    DocumentRoot /home/kumacchi/public_html/blog.kumacchi.com
    ServerName blog.kumacchi.com
    ErrorLog logs/blog.kumacchi.com-error_log
    CustomLog logs/blog.kumacchi.com-access_log common
    SuexecUserGroup kumacchi kumacchi
    <Directory /home/kumacchi/public_html/blog.kumacchi.com>
        AllowOverride All
        Options MultiViews -Indexes SymLinksIfOwnerMatch ExecCGI IncludesNoExec
    </Directory>
</VirtualHost>


Suexecについて

パーミッション /home/<ユーザーID>705 にしないと動かなくてはまった。なぜ705なのかは掘り下げてない。セキュリティ的には700のままで動いて欲しいが、共用サーバではないのでとりあえずOK。気が向いたら深く調べよう。

You don’t have permission to access /xx/kumasearch/kumasearch.cgi on this server.
Apache Server at blog.kumacchi.com Port 80

多分こんな感じのエラーだったと思う。


Movable Typeいついて

例によって最初はmt-check.cgiで必要な環境が整っているかをチェックする。

Movable Typeのバージョンはblog.kumacchi.comについてはMovable Type バージョン 4.38。

DBD::SQLite
サーバーに DBD::SQLiteか、DBD::SQLiteの動作に必要な他のモジュールがインストールされていません。 SQLiteデータベースを使うにはDBD::SQLiteのデータベースドライバが必要です。 DBD::SQLiteのインストールはインストールマニュアルに沿って行ってください。

blog.kumacchi.comはSQLiteを使用しているので、必要。

各作業はrootで行った。

perlのバージョンはv5.10.1だった。

perl -v
This is perl, v5.10.1 (*) built for i386-linux-thread-multi

cpanからインストールしようとしたら、そもそもcpanがねえと怒られた。

# perl -MCPAN -e shell
Can’t locate CPAN.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .).
BEGIN failed–compilation aborted.

yumでサーチするとそれらしいものがあったのでインストール。

# yum search cpan
# yum install perl-CPAN

●参考
cloudforecastをいれてみた | poohtarou blog

あらためて

#perl -MCPAN -e shell
cpan[1]> install DBD::SQLite

インストールOK

Mail::Sendmail
サーバーに Mail::Sendmailか、Mail::Sendmailの動作に必要な他のモジュールがインストールされていません。 SMTPサーバーを経由してメールを送信する場合に必要になります。 Mail::Sendmailのインストールはインストールマニュアルに沿って行ってください。

フォームメールや、コメントの投稿などの通知で使われているのではないかと思われるので必要。

#perl -MCPAN -e shell
cpan[2]> install Mail::Sendmail

インストールOK

XML::Parser
サーバーに XML::Parserか、XML::Parserの動作に必要な他のモジュールがインストールされていません。 ActionStreamsを利用するにはこのモジュールが必要です。 XML::Parserのインストールはインストールマニュアルに沿って行ってください。

多分なんかで使うのでインストール。

cpan[3]> install XML::Parser

なんか失敗した。

make: *** [subdirs] Error 2
  TODDR/XML-Parser-2.41.tar.gz
  /usr/bin/make — NOT OK
Warning (usually harmless): ‘YAML’ not installed, will not store persistent state
Running make test
  Can’t test without successful make
Running make install
  Make had returned bad status, install seems impossible
Failed during this command:
TODDR/XML-Parser-2.41.tar.gz                 : make NO

面倒なのでyumでインストールした。

# yum install perl-XML-Parser

いろんな物が依存関係で一緒にインストールされる。
インストールOK

設置したブログにアクセスするとこのエラーがでる。

mktime(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Tokyo’ for ‘JST/9.0/no DST’ instead

viでphp.iniを弄って対応。

# vi /etc/php.ini

 

;date.timezone =
date.timezone = "Asia/Tokyo"

●参考
dateやmktimeやgetdateなどでエラー | PHPのQ&A【OKWave】

phpのバージョンは5.3.3だった。

$ php -v
PHP 5.3.3 (cli) (built: Jul  3 2012 16:40:30)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
$

 

php.iniの場所を調べる。

phpinfo()を使う。

phpinfo.phpというファイルを作成し内容は下記のようにする。それにブラウザからアクセスするとphpの情報が表示される。

<?php
phpinfo();
?>

Loaded Configuration Fileの項目にphp.iniの場所が表示される。phpinfo()で表示されなくてはまったが単にタグの記述ミスだった。「<?」だけではダメで「<?php」としなければならなかった。

php.iniを弄ってもしばらくはエラーが変わらなかったが、そのうち何故かエラーが変わった。apacheの再起動が効いたのか、ブラウザのキャシュだったか?

Smarty error: the $compile_dir ‘/virtual/kumacchi/public_html/blog.kumacchi.com/templates_c’ does not exist, or is not a directory.

mt.cgiにアクセスしてログインしてダッシュボードを表示

設定>公開 でサイトパスを確認する。
/virtual/kumacchi/public_html/blog.kumacchi.com
になっていたので
/home/kumacchi/public_html/blog.kumacchi.com
に修正。

保存したら、なんか、gataway timeoutとか出たが再度ログインしたら設定は変わってた。

しかし、ブログにアクセスしてもまだエラーがでる。

Smarty error: the $compile_dir ‘/virtual/kumacchi/public_html/blog.kumacchi.com/templates_c’ does not exist, or is not a directory.

やっぱりキャッシュなのかその後こうなった。でもエラー。

Smarty error: unable to write to $compile_dir ‘/home/kumacchi/public_html/blog.kumacchi.com/templates_c’. Be sure $compile_dir is writable by the web server user

templates_cが書き込めないっぽいので、パーミッションをチェック。
drwxrw-r-x   2 kumacchi kumacchi      4096 Nov  6 09:29 templates_c
765かな
705にしてみる
だめ
試しに777にしてみる。

Call-time pass-by-reference has been deprecated

.htaccessに以下の一行を追加して対処。

php_flag allow_call_time_pass_reference on

●参考
Call-time pass-by-reference has been deprecated : カフェ関連サイトのシステム開発日記

ようやくブログが表示された。再度template_cのパーミッションを見直す。とりあえず707で行く事にした。


記事の投票プログラムがエラーになっていたので調べる。CGI.pmが無いようだ。

Can’t locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/

cpanでインストールしようとしたが、なんかエラーになるのでyumでインストールした。

# yum install perl-CGI

投票プログラムが動くようになった。


FFFTPでユーザーが501と数字で表示されるので、/etc/vsftpd/vsftpd.confを修正

text_userdb_names=YES

を追加

●参考
FTPサーバがvsFTPdの時、FFFTPの所有者表示が数字になっているのをアカウント名表示にするには? – KUMA TYPE


なんか、カウンターが回らないので、ログファイルのパーミッションの直さないといけないのかとおもった。644になってた。
もしかしてsuexecが効いてないのかと思ったので調べた。

# apachectl -V

で表示される下記の行をチェック。そのパスにsuexecがあればOK。

-D SUEXEC_BIN="/usr/sbin/suexec"

ファイルはあったし、パーミッションやオーナーも正常。
再度リロードしてみたらちゃんと回ってた、やっぱりキャッシュ? とりあえずよさそうなので、DNSの設定を新しいサーバーに向けた。逆引き設定は、本契約後しか出来ないみたいなのでその時に行なう。

ここまで、作業して一旦寝て、起きた。

サイトにアクセスするとアクセスできなくなっていた。

sshもftpもだめ
コンパネから再起動を行ったが再起動できず、
強制停止したら停止できた。
停止後に起動したらサイトにアクセスできるようになった。
/var/log/messagesや
/var/log/httpd/配下のapacheのログなどをみて動いてないものは不具合をチェック
パスが変わったせいで色々動いてないものがあり、エラーがログに色々履かれているので
ちょっとずつ修正。

●参考
Apache Tutorial: CGI による動的コンテンツ – Apache HTTP サーバ


XML::Simpleが入ってないらしいのでCPANから入れてみる。

Can’t locate XML/Simple.pm in @INC

# perl -MCPAN -e shell
cpan[1]> install XML::Simple

インストールOK。


Cache/FileCache.pmが入ってないらしいのでインストール。

Can’t locate Cache/FileCache.pm in @INC

# perl -MCPAN -e shell

cpan[1]> install Cache::FileCache

インストールOK。


Time/HiRes.pmが入ってないのでインストール。

Can’t locate Time/HiRes.pm in @INC

# perl -MCPAN -e shell

cpan[1]> install Time::HiRes

インストールOK。


mt4i.cgiがエラーになっているのを調べる。

[Wed Nov 07 22:43:07 2012] [error] [client 66.249.69.81] BEGIN failed–compilation aborted at mt4i.cgi line 30.

HTML/Template.pmがないらしいのでインストール。

Can’t locate HTML/Template.pm in @INC

# perl -MCPAN -e shell

cpan[4]> install HTML::Template

インストールOK。

[Wed Nov  7 22:45:44 2012] mt4i.cgi: Can’t locate MT.pm in @INC (@INC contains: extlib lib /usr/local/lib/perl5 /usr/local/sha

apacheのログにまだエラーが出ている。
mt4iの設定画面からMT_DIR – MTホームディレクトリを変更する。(パスが変わっているので)

しばらくして、

ああ、mt4i2がまだエラーを吐いてるので前に調べる。

Software error:

Can’t locate MT.pm in @INC (@INC contains: extlib lib /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .) at mt4i.cgi line 4154.
BEGIN failed–compilation aborted at mt4i.cgi line 4154.

何故か未だにMT.pmを探してエラーになっている。しばらくはまったが、前に設定画面で直したパスが間違っていた。 /homeが/homelになっていた>ばかなおいら

他のエラーがでた。

 

Loading template ‘/xxxx/xxxx/public_html/xxxx/mt4i2/tmpl/mt4i/index.tmpl’ failed: HTML::Template->new() : can’t mkdir /xxxx/xxxx/public_html/xxxx/mt/mt4i/cache/tmpl (file_cache => 1): No such file or directory at mt4i.cgi line 4134

キャッシュフォルダがないかららしい。バックアップするときにcacheは除外したからだろう
手動で作成してみる。

cacheフォルダを作成したらmt4i.cgiが動作するようになった。


XML/Parser.pm のエラーが出ている。

[Wed Nov 07 22:51:14 2012] [error] [client 210.xxx.xxx.xxx] , referer: http://blog.kumacchi.com/2010/12/perlcsvcpantextcsv_xs.html
[Wed Nov 07 22:51:14 2012] [error] [client 210.xxx.xxx.xxx] not well-formed (invalid token) at line 1, column 1, byte 1 at /usr/lib/perl5/XML/Parser.pm line 187, referer: http://blog.kumacchi.com/2010/12/perlcsvcpantextcsv_xs.html

再度CPANから入れてみる。

cpan[4]> install XML::Parser

やっぱりエラー。

cp Expat.pm ../blib/lib/XML/Parser/Expat.pm
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -noprototypes -typemap /usr/share/perl5/ExtUtils/typemap -typemap typemap  Expat.xs > Expat.xsc && mv Expat.xsc Expat.c
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables   -DVERSION=\"2.41\" -DXS_VERSION=\"2.41\" -fPIC "-I/usr/lib/perl5/CORE"   Expat.c
Expat.xs:12:19: error: expat.h: No such file or directory
Expat.xs:60: error: expected specifier-qualifier-list before ‘XML_Parser’
Expat.xs:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘nsdelim’
Expat.xs:194: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ms’
Expat.xs:197: error: expected ‘)’ before ‘parser’
Expat.xs:249: error: expected ‘)’ before ‘*’ token
Expat.xs:286: error: expected ‘)’ before ‘parser’
Expat.xs: In function ‘characterData’:
Expat.xs:470: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs: In function ‘startElement’:
Expat.xs:482: error: ‘CallbackVector’ has no member named ‘ns’
Expat.xs:488: error: ‘CallbackVector’ has no member named ‘st_serial’
Expat.xs:490: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.xs:491: error: ‘CallbackVector’ has no member named ‘st_serial’
Expat.xs:491: error: ‘CallbackVector’ has no member named ‘skip_until’

 

# perl Makefile.PL

Expat must be installed prior to building XML::Parser and I can’t find
it in the standard library directories. Install ‘expat-devel’ package with your
OS package manager. See ‘README’.

Or you can download expat from:

http://sourceforge.net/projects/expat/

If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:

    EXPATLIBPATH=…  To set the directory in which to find libexpat

    EXPATINCPATH=…  To set the directory in which to find expat.h

For example:

    perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include

Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.

Checking if your kit is complete…
Looks good

なるほど、expat-develがいるのね。

yumでpxpat-develをインストール。

# yum install expat-devel

再度トライ

cpan[4]> install XML::Parser

インストールOK。

●参考
G-chan Square –

cpanでXMLRPC::Liteを入れるのにややハマり

 

やっぱり、XML/Parserがエラーを吐いているので、調べる。

[Wed Nov 07 23:17:25 2012] [error] [client 210.xxx.xxx.xxx] , referer: http://blog.kumacchi.com/2012/11/core-mini%E3%81%8B%E3%82%89osukini_server_lt%E3%81%AB%E5%BC%95.html
[Wed Nov 07 23:17:25 2012] [error] [client 210.xxx.xxx.xxx] not well-formed (invalid token) at line 1, column 1, byte 1 at /usr/local/lib/perl5/XML/Parser.pm line 187, referer: http://blog.kumacchi.com/2012/11/core-mini%E3%81%8B%E3%82%89osukini_server_lt%E3%81%AB%E5%BC%95.html
[Wed Nov 07 23:17:26 2012] [error] [client 106.xxx.xxx.xxx] , referer: http://blog.kumacchi.com/2010/02/_tm-250.html
[Wed Nov 07 23:17:26 2012] [error] [client 106.xxx.xxx.xxx] not well-formed (invalid token) at line 1, column 1, byte 1 at /usr/local/lib/perl5/XML/Parser.pm line 187, referer: http://blog.kumacchi.com/2010/02/_tm-250.html

この原因は、サイドバーでアマゾンや楽天の広告を表示しているcgiのキャッシュフォルダのパスが変わったためだった。パスを修正した。他にもあると思われるので横展開した。


こんなエラーも出ているので調べてみる。

[Thu Nov 08 01:46:45 2012] [error] [client 118.xxx.xxx.xxx] Negotiation: discovered file(s) matching request: /xxxx/kumacchi/xxxxx/blog.kumacchi.com/index.html (None could be negotiated)., referer: http://www.google.com/url?sa=D&q=http://kumacchi.com/&usg=AFQjCNE4Pve7VzaHsJyT1X_YTeA9-7WbIQ

これ削除したらなおった。
$ rm index.html.static

apacheの設定でMultiViewsがあると似た名前のファイルを探しに行くらしい。index.htmlがないのでindex.html.staticを探しに行ってたのだろう。

●参考
e願い | ブログ » Apacheのエラーに「Negotiation: discovered file(s) matching request」がでる


MTのコメントが投稿できなくなっていた。前かららしいw。なぜに・・・。

コメント投稿すると

コメントを投稿できませんでした。エラー: 不正な要求です。

というエラーがでる。

検索して出てきたのが、下記のブログの記事。

コメントを投稿できませんでした。エラー: 不正な要求です。【MT】 | ダリの雑記:WEBプログラム版

mt.jsのタグを出力した時に出てしまうらしい。

そんなばかなwと思って確認してみたら。

ほんとに消してたwwww。バカだ俺w。

<mt:Ignore>
<script type="text/javascript" src="<$mt:Link template="javascript"$>"></script>
<link rel="stylesheet" href="/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="/lightbox.js"></script>
</mt:Ignore>

lightboxからlightbox plusに切り替えた時に誤って無視する設定にしたと思われる。

投稿できたが

エラーが発生しました。
Can’t call method "execute" on an undefined value

というエラーになる。

でも、投稿自体は成功している。しかし気持ちが悪いので調べる。
そういえば今朝、記事のテスト投稿した時にも同様のエラーが出ていた。
DBIを更新してみるか。

mt-check.cgiで調べたDBIのバージョンは1.609

DBI (version >= 1.21)
サーバーに DBI がインストールされています(バージョン 1.609)。

CPAN見ると最新は1.622らしいのでこれを入れてみる。
DBI-1.622

cpan[1]> install DBI

DBI-1.622インストールOK

やっぱりエラー出る。

DebugMode 1にしてやってみる。

●参考
MTが突然、構築エラーになった – ゴルフバカの気まぐれブログ

エラーが発生しました。

Can’t call method "execute" on an undefined value at /xxxx/xxxx/public_html/xxxx/mt/extlib/Data/ObjectDriver/Driver/DBI.pm line 158.

ああ、そもそも、mtディレクトリ配下のDBI.pmを見に行ってるので更新は無意味だった。

MTEntriesを1000以下に抑えるといいらしい。調べてみると、サイトマップを作成する処理で全件出力を行なっていた。999件ずつに分けることで対応した。coreserverの時は平気だったのに、モジュールなどのバージョンの相性なのだろうか?

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc><$mt:BlogURL></loc>
      <lastmod><mt:Entries lastn="1"><$mt:EntryModifiedDate utc="1" format="%Y-%m-%d"$></mt:Entries></lastmod>
      <changefreq>daily</changefreq>
      <priority>0.8</priority>
   </url>
<mt:Entries lastn="999">
   <url>
      <loc><$mt:EntryPermalink encode_xml="1"$></loc>
      <lastmod><$mt:EntryModifiedDate utc="1" format="%Y-%m-%d"$></lastmod>
      <changefreq>never</changefreq>
      <priority>0.5</priority>
   </url>
</mt:Entries>
<mt:Entries offset="999" lastn="1999">
   <url>
      <loc><$mt:EntryPermalink encode_xml="1"$></loc>
      <lastmod><$mt:EntryModifiedDate utc="1" format="%Y-%m-%d"$></lastmod>
      <changefreq>never</changefreq>
      <priority>0.5</priority>
   </url>
</mt:Entries>

●参考
1000記事超えたらMTがCan’t call methodエラー – ヲレサイト


アンテナ系CGIがSOAP/Liteがなくて動作していなかった。

Can’t locate SOAP/Lite.pm in @INC

cpanで

install SOAP::Lite

インストールOK


coreserverでも登録していたテンポラリファイル削除や各種データ取得用のcronを登録。


文章校正ツールが動いてない
パスなど修正。

文章校正支援ツール


調べている課程で別サイトの短縮URL解析が動いてないのを発見した
対処
Mojolicious/Lite.pm でやってるためだった。
Mojoliciousをインストールした。
最新のMojoliciousはPerl 5.8.8をサポートしてないので難儀した。手元にあったperl 5.8.8で動作するバージョンをインストールして対応した。

短縮URL解析


QRコード作成が動かなくなっていた。

CGI/Simple.pmが入ってなからだった。
cpanからインストール。

# perl -MCPAN -e shell
> install CGI::Simple

インストールOK。
GD/Barcode.pmもはいってなかった。

cpanからインストール

# perl -MCPAN -e shell
> install GD::Barcode

インストール OK。

でもまだ動かない。apacheのログを見る。

[Thu Nov 08 19:27:47 2012] [error] [client 210.xxx.xxx.xxx] Can’t locate object method "new" via package "GD::Image" (perhaps you forgot to load "GD::Image"?) at /usr/local/share/perl5/GD/Barcode/QRcode.pm line 285., referer: http://blog.kumacchi.com/qr.html

GD::Imageがないからか?

cpanからインストールしてみる。

# perl -MCPAN -e shell
> install GD

なんかエラーになる。libgd 2.0.28以降がいるらしい。

**UNRECOVERABLE ERROR**
Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.
If you want to try to compile anyway, please rerun this script with the option –ignore_missing_gd.
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
Warning (usually harmless): ‘YAML’ not installed, will not store persistent state
  LDS/GD-2.46.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site — NOT OK
Running make test
  Make had some problems, won’t test
Running make install
  Make had some problems, won’t install
Could not read ‘/root/.cpan/build/GD-2.46-Vs2NDB/META.yml’. Falling back to other methods to determine prerequisites
Failed during this command:
LDS/GD-2.46.tar.gz                           : writemakefile NO ‘/usr/bin/perl Makefile.PL INSTALLDIRS=site’ returned status 512

yum search gdでみてみると、多分 gd とgd-develを入れればよさそうな感じ、もしくは
perl-GD.i686
を入れてしまえば良さそうだが。

gdと(gdだけだはやっぱだめだった)
gd-develをいれてみる。

# yum install gd
# yum install gd-devel

gd-develをyum install gd-develで入れると他にも色々入る。

その後cpanからGDをインストール(今更必要かは確かめなかった。)
動くようになった。

QRコード作成 – KUMA TYPE


測地系変換 が動いてない。
Location/GeoTool.pmが入ってないからだった。

# perl -MCPAN -e shell
>install Location::GeoTool

測地系変換 – KUMA TYPE


favicon(ファビコン)作成が動いてない

Image/Magickが入ってなかったからだった。

yum install ImageMagick
yum install ImageMagick-devel

だけではだめだった。
cpanからの

install Image::Magick

でのインストールは失敗。
ImageMagick-perl.i686をyumから入れてみる。

yum ImageMagick-perl.i686

これで使えるようになった。とりあえずこれでOK。
favicon作成のページが文字化けしたが、apacheの設定がUTF-8オンリーになっていたせいだった。

画像→favicon.ico変換


IPアドレス・ツールズ 国コードやアドレス範囲が取得できなくなっていた、パスの修正で対処。

IPアドレスツールズ – KUMA TYPE


coreserverのコンパネからphpmyadminでデータをエクスポートしようとしたがはまった。たった数件のデータなので、諦めようかと思ったが何とかなった。しかし、そのために数時間費やしたw。

原因は、coreserverのコンパネからphpMyAdminにログイン出来ないからだった。なぜ出来ないか分からないのでいろんなサイトを見てやってみたが、やっぱりログインできなかった。別のDBを新規作成してみたらすんなりログインできた。つまり既存のDBにログインできない。そもそもただでさえ分かりにくいのに、いろんな情報があって話が複雑になっていた。で、パスワードを色々試したり、config.inc.phpを弄ったりしてみたがダメだった。

それもそのはずである。DBの復元に失敗しているらしかった。coreserverは他のサーバでダンプしてきたDBのデータをホームディレクトリに置くと復元ボタンで復元できる。が、実際には復元できていなかった。コンパネ的にはできているようになっているが実際にはできていない。それが事態を複雑化していた。なので、存在しないDBにいくらログインしようと思っても出来ないわけだ。復元する前に新規で同じ名前のDBを作成してから復元ボタンを押すと成功した。すんなりphpMyAdminにもログインできた。やっぱり復元というよりインポートなんだな。復元ボタン一発で復元できないのならインポートという名前にするべきな気がする。説明も不十分な気がする。ずっと復元できてるつもりだったが全く使ってなかったので復元さえできていないことに気づかないまま今まで放置していたわけだw。phpMyAdminにログインするのに、BASIC認証とphpMyAdminにそれぞれログインしなければならないが、どれにどのパスワードを入力するのかがいまいち明確に書かれていない。判ってしまえば明確なんだけど曖昧な点を残さずに書かれていないとはまった時にいったいどのパスワードを入力すべきなのか、自分が入力している値は正しいのか判断ができなくなる。結局パスワードは問題なかったわけであるが。(そういえば復元の仕方の記事を書いた気がするけど、嘘を書いてしまってることになるな。)

なんとか、programming-language.kumacchi.comのデータを移行することができた。マア色々勉強になったからいいか。

●参考
phpMyAdmin-2.9.x 認証タイプ別 設定 (config.inc.php)

今日のMovable Type 4.1:XREA.COMやCORESERVER.JPでのDUMPの作り方 | 世界中の1%の人々へ

MySQL使用MTのDBバックアップ – pc-memo


あとは、サーバーが安定動作してくれればいいのだが、もしかしたらハズレサーバを引いたのかもしれないと思うと夜も眠れない。(すやすや

とにかくサーバの引越しとこの記事書くのにつかれた。もうすぐリアルな引越しも待っている。

タグ : , , , , , ,