[Linuxメモ]Osukini Server LTに引っ越してからやったことのまとめ
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のサーバーを構築した時のメモを見ながらやったので特に手間はかからなかった。
[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
cpan[1]> install Cache::FileCache
インストールOK。
Time/HiRes.pmが入ってないのでインストール。
Can’t locate Time/HiRes.pm in @INC
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
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: https://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: https://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: https://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: https://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: https://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: https://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で動作するバージョンをインストールして対応した。
QRコード作成が動かなくなっていた。
CGI/Simple.pmが入ってなからだった。
cpanからインストール。
> install CGI::Simple
インストールOK。
GD/Barcode.pmもはいってなかった。
cpanからインストール
> 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: https://blog.kumacchi.com/qr.html
GD::Imageがないからか?
cpanからインストールしてみる。
> 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-devel
gd-develをyum install gd-develで入れると他にも色々入る。
その後cpanからGDをインストール(今更必要かは確かめなかった。)
動くようになった。
測地系変換 が動いてない。
Location/GeoTool.pmが入ってないからだった。
# perl -MCPAN -e shell
>install Location::GeoTool
favicon(ファビコン)作成が動いてない
Image/Magickが入ってなかったからだった。
yum install ImageMagick
yum install ImageMagick-devel
だけではだめだった。
cpanからの
install Image::Magick
でのインストールは失敗。
ImageMagick-perl.i686をyumから入れてみる。
これで使えるようになった。とりあえずこれでOK。
favicon作成のページが文字化けしたが、apacheの設定がUTF-8オンリーになっていたせいだった。
IPアドレス・ツールズ 国コードやアドレス範囲が取得できなくなっていた、パスの修正で対処。
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%の人々へ
あとは、サーバーが安定動作してくれればいいのだが、もしかしたらハズレサーバを引いたのかもしれないと思うと夜も眠れない。(すやすや
とにかくサーバの引越しとこの記事書くのにつかれた。もうすぐリアルな引越しも待っている。
タグ : apache, CORESERVER, Linux, MovableType, perl, saases, VPS