ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
検索
オンライン状況
28 人のユーザが現在オンラインです。 (2 人のユーザが ニュース を参照しています。)

登録ユーザ: 0
ゲスト: 28

もっと...
投稿者: f-otake 投稿日時: 2016-6-29 14:10:48 (679 ヒット)

今日、自分のWEBに外からアクセスするとつながらない。LAN内部からはつながるので、サーバー自体は生きている。
アレー、記憶な無いがルーターのルーティングがおかしくなったかなー。

現象
 WEBサーバーに内部のLANからはアクセス出来る。(サーバー自体は生きている)
 WEBサーバーに外部からはアクセス出来ない。
 外部から固定IP(グローバル)でWEBサーバーにアクセスしてもダメ(運用は固定IP)(DNSの問題では無い)
 外部から固定IP(グローバル)にpingを打っても帰って来ない!!!(テスト時にルーターはPINGに応答する設定した)

PING応答がないのがおかしい。ケーブルを真剣にチェック。異常は無い。
ルーターに内部からアクセスしても異常は見当たらない。でもPINGに応答しないのはおかしい。
そこでルーターを再起動。あっさり直った。
実はこれのの2年位で2回目。でもサーバーを運用しているので、これでは問題。
ルーターはNTTからレンタルのRTーS300HI。
YAMAHAのルーターに変えるべきかなー?

問題:ZABBIXでサーバーを監視しているがルーターまでは監視していない。プロ仕様のシスコなどのルーターならいざ知らず、家庭用のNTTレンタル品で今回の様なケースのチェックが出来るのかなー。少し勉強して見よう


投稿者: f-otake 投稿日時: 2016-6-24 2:25:42 (832 ヒット)
太陽電池を使った無停電電源(サーバー用) 奮闘記

どうも、オタク的になっているので、概略図を作って、わかりやすくしたつもり?





















投稿者: f-otake 投稿日時: 2016-6-23 23:23:20 (832 ヒット)
太陽電池を使った無停電電源(サーバー用) 奮闘記

近頃常に気になっていることがある。それはこのシステム太陽さえ出れば家庭用の電源を使わないのでいいのだが、経済的にはよろしくない。
というのは家庭用の太陽電池の発電はなるべく売った方が得をするのである。下記は2016年5月の我が家の電気代である。
使用料 175KW  4,979円 1KWあたりのコスト:28.5円
売電料 280KW 13,440円 1KWあたりのコスト:48円
約倍ほども違うのである。ということはコンピューターの電池に供給するのではなく、売った方が得をする。
でも電池がなくなるので、家庭用電源から充電をする。停電になってもいいように、フローティング充電という方法で充電すれば、電池は常にほぼ100%の残がある事になるので2日間位は持つと思う。
どれ位得をするか、あくまで目安だが(補充電を考えていない)我が家のサーバーはルーターやHUB等全部入れて2.5A+である。
25V X 2.5A=50W、50W X 24時間 X 30日 = 36KW
この分を売ったとすると (48円ー28.5円) X 36KW ≒ 700円
つまり、1ヶ月約700円の儲けになるのだ。1年で8,400円 うーん、そこそこの金額だな
追記:この月は特別、普段は売電料より、使用料のほうが多い。ただ毎年5月は効率がよく、だいたいプラスになるが、これほどでは無い


投稿者: f-otake 投稿日時: 2016-6-21 4:04:02 (639 ヒット)

いつも忘れるのでメモ。
編集したら、必ず
# virsh define /etc/libvirt/qemu/サブホスト.xml
定義し直す。ただこれはgedit等で編集した時。
そもそも定義ファイルを編集する時は virsh edit サブホストの定義ファイル名(xxxx.xmlの .xml を取ったもの)
で編集するそうな。


投稿者: f-otake 投稿日時: 2016-6-21 2:43:37 (641 ヒット)

常々端末のウィンドウサイズが小さすぎるので、起動の度にドラッグしてサイズを大きくしていた。
多分どこかに設定があるとは思っていましたが、そのままにしていましたが、探すことにしました。
何のことはない、簡単にデフォルトのサイズを変更できます。gnome-terminalを開き、メニューバーの 編集 →プロファイルの設定 をクリックし、開いたウィンドウで、全般タブをクリック、カスタムデフォルト....にチェックマークを入れ、デフォルトサイズの列と行を適当に設定すれば、次の起動から変更になります。なーんだ。
あと、メニューの端末をクリックするとしたの方に4つほど、サイズの設定がありますので、ここをクリックすると即座にサイズが変更されますが、設定は保存されませんので次回は元に戻ります




投稿者: f-otake 投稿日時: 2016-6-14 11:43:31 (7147 ヒット)
Linux (サーバー制作)

KVMを使用して普通にサブホストを作ると、領域1(イメージファイルやLVM)の中にさらに領域2を作って(複数の領域を作れるようにする為?、ルートやスワップなどの複数の領域為?)しまいます。画像0
ここで一番問題になるのはバックアップの方法です。私はbaculaを使用し、サブホストをバックアップしていますが、これでは完全なバックアップになりません。というのもこのバックアップは領域1の中の領域2をバックアップしているので、baculaでリストアしてもそのリストアしたデーター(領域2)をさらに領域1の中に入れ込まなければ、完全なサブホストのバックアップになりません。私はその方法が解りません(ddコマンドで作れそうですが??)
なので、一度作成したサブホストを、カーネルイメージから直接起動する様に変更しました。これでbaculaでリストアされたサブホストもそのままリストアできます。(領域の中に入れ込まなくてもよい)
只,わたしはKVMを正式に勉強したわけではなく、又、真剣にググった訳でもないので、かなりいい加減です(でもちゃんと動いています)
その過程の中で疑問に思ったのが、
仮想マシンマネージャーで、サブホストを指定し、開くアイコンをクリックし、開いたウィンドウの電球アイコンをクリックし、左ペインの Boot Options をクリックし、さらに右ペインで、Direct kernel boot をクリックすると展開された中に Kernel path:、initrd path:、kernel auguments: があり、最初の二つには Browse アイコンがあります。画面1。そこで、それらを選べますが、
ここで問題!この時点での作業はメインのOSでしているので、ブラウズ出来るのはメインの中だけです(サブホストはマウントされてない)でもサブホストの指定だよなー?
と言う訳で実験
1:メインのホストとサブホストに同じバージョンを入れる
 例:Kernel path: /boot/vmlinuz-2.6.32-642.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-642.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 ブートOK
2:メインのホストにはあるがサブホストにはない場合
 例:Kernel path: /boot/vmlinuz-2.6.32-573.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-573.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 途中で could not load /lib/modules/2.6.32-573.el6.x86_64/modules.dep: No such file or directory
 と表示されログイン出来る状態だが、まともに動かない筈。どういう事か、最初のブートではメインの/bootを見て,途中からサブホストの/libを見にいくが、サブホストにはないのでエラーとなっている。

3:サブホストにはあるがメインのホストにはない場合
 例:Kernel path: /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64
   Initrd path: /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
   Kernel arguments: root=/dev/vda
 ブートすらしない。
 Errot starting domain: unable to set user and group to '107:107' on '/boot/vmlinuz-2.6.32-642.1.1.el6.x86_64': No such directory
 と表示されブートが止まる。

ということは最初はメインのOSの /bootを見て、途中からサブホストを見ていることになると思う。
と言う訳でここから作業
まず、サブホストのvdaに指定される領域(私はLVM)をddコマンドでバックアップ
# dd if=vdaに指定されている領域 of=バックアップを保存する領域
サブホストのルート領域をマウントしますが、前に触れたようにこの中にさらに領域を作っているので
# lesetup -f
で使える最初のloop番号を調べる。何もしていなければloop0の筈
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
# ls /dev/mapper
で展開された領域を調べる、loop0p1やloop0p2 等がある筈、私はここにはルート領域のみしか作っておらず、スワップや他の領域は別のlvでマウントしているので、あるのはloop0p1だけ
# mount /dev/mapper/loop0p1 /test1 ← 私はテスト用にこのdirectoryを作っている
これでサブホストのルート領域が/test1にマウントされた。私は/bootは別の領域にせず全部ここに入っている。
次にサブホストに使っている領域をフォーマット(私はLVM)
# mkfs.ext4 /dev/VG名/LV名
これで、このままではサブホストを二度と起動で出来ない!
# mount /dev/VG名/LV名 /test2 ← 私はテスト用にこのdirectoryを作っている
# cd /test1
# cp -pr ./ /test2
これで、しばらくするとコピーが終わるので、後処理
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
これで準備が出来たので、前項の 1:メインのホストとサブホストに同じバージョンを入れる と同じように(もちろんカーネルバージョン等は自分にあわせる)Direct kernel boot を設定する。
尚、Kernel arguments: にvda になっているのは、DISK1 に VirtIOを指定している為、ここがIDEだと違うはず、/etc/libvirt/qemu/サブホストxml を見れば指定が解る。
これでサブホストを起動すれば問題ない。
2016ー6ー16追記:大嘘を言っていました。このままでは起動できません。と言うのもフォーマットをするとディスクのUUIDが変わり、grub.confにあるブートdiskが古いUUIDのままだからです。と言う訳でgrub.confを修正しますが、この際UUIDでなく、ディスク(vda)の指定にします。と言うのもサブホストのルートのディスクはVirtIOを使用し、素直に作ると、必ずvda になるからです。ですので再度マウントし、編集します。
# mount /dev/VG名/LV名 /test2
# gedit /test2/boot/grub/grub.conf

抜粋
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-642.1.1.el6.x86_64)
 	root (hd0,0)
	kernel /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64 ro 本当はここから次のタイトルの前までは1行
    root=UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda ここを変更する
        rd_NO_LUKS LANG=ja_JP.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16
        crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet
        enforcing=0 	initrd /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
title CentOS (2.6.32-573.26.1.el6.x86_64)
以下省略、注:root=の指定は他にもあるので全部変更する

もう一つ変更しなくてはならないファイルがある。fstabです。
どうも私はディスクの指定にUUIDを使うのに抵抗がある。確かにsda1等を使うと、認識の順序が変更になると問題がありますが、LVMを使えばこの問題はなくなりますし、
今回の様に仮想化もvdaを使えばいいのです。ともかくfstabを修正
# gedit /test2/etc/fstab
抜粋
UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda     /	ext4    defaults        1 1 UUID=...... を /dev/vda に修正
tmpfs                   /dev/shm                tmpfs   defaults        0 0
そして保存後、umountし、起動すればよい

PS:/etc/libvirt/qemu にある .xmlファイルの抜粋を参考の為に下記に示します。
普通にサブホストを作った時
  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <boot dev='hd'/>
   </os>

カーネルイメージからサブホストを直接起動する設定の時
  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <kernel>/boot/vmlinuz-2.6.32-642.el6.x86_64</kernel>
     <initrd>/boot/initramfs-2.6.32-642.el6.x86_64.img</initrd>
     <cmdline>root=/dev/vda</cmdline>
     <boot dev='hd'/>
   </os>
この様にDirect kernel bootで指定した"kernel, initrd, kernel argumenyts(cmdline)"が追加されています。
2016ー6ー16追記:今日sambaの入っているサブホストを同じようにやっている時、cp -pr ./ /test2 の所で、
cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/scripts': サポートされていない操作です
cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/Policies/
{31B2F340-016D-11D2-945F-00C04FB984F9}/USER': サポートされていない操作です 本当はこの行は上の行と同じ行です。
以下省略
とエラーがいっぱい出ていた。エラーの所を見ると
# ls -la /test1/var/lib/samba/sysvol/
合計 20
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 .
drwxr-xr-x. 7 root    root    4096  1月 30 22:18 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 kinryokai.net
ちょっと見にくいが + が付いているのでACLが効いているので、エラーになった見たい。でも /test1 と /test2 を比較しても、パーミッション、オーナー、ファイルの数やサイズを見てもまったく同じであるので正しくコピーされている見たい。それでこのサブホストを起動しWindowsからファイルサーバー(アクティブディレクトリーを使用したsamba)をテストしたが問題ない見たい。
でもコピーされた方にはACLの設定がなされてない見たい。これは問題、色々ググったらcpはACLに対応していないそう。Starと言うのが対応しているみたいなので、近日この項に結果を書きます。
2016-6-19追記:色々トライしてみましたが、getfact, setfaclを使用するのが簡単だった
まずはオリジナルのvdaをマウントするが、例によって領域の中に領域なので
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
でloop0に本来ルート領域をマウントする(画像0の領域2)
# ls /dev/mapper/
でマッパーを見るとloop0p1等がある。
# mount /dev/mapper/loop0p1 /test1
で/test1にマウントして、
# cd /test1/var/lib/samba/
で該当個所に移動
# getfacl -R * > /root/acl-backup
でACLをバックアップ。
次に使用しているvdaをマウントしますが、ACLの設定をするので
# mount -o rw,acl /dev/VG名/LV名 /test2 私はLVMを使用
でオプションで ACLなどを指定し/test2にマウント
# cd /test2/var/lib/samba/
で該当個所に移動
# setfacl --restore=/root/acl-backup
でリストアする。
ACLの確認
# ls -la sysvol/kinryokai.net/
合計 32
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 .
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 Policies
drwxrwx---+ 2 3000017 3000000 4096  6月 27 20:50 2014 scripts

他のディレクトリーも調べたがOKだった。
あと、ACLの設定をしたので fstabを変更する(変更しないで起動するとACLの設定が反映されていなかった)
でも、領域の中に領域を作った(つまりオリジナル)vdaで起動すると fstab にはACLの設定が無いが、ACLの設定は反映している!
何で!!ともかくfstabの変更
# gedit /test2/etc/fstab
抜粋
/dev/vda   /          ext4       defaults,acl   0 0 ← ,aclを追記
保存後、後始末
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
でもって、起動すればOK
2016-6-21追記
色々調べると、現在は tarも--aclオプションがあり対応しているようですので、その方法
サブホストの領域をフォーマットするまでは同じですが、これをマウントする所からが違います。
# mount -o rw,acl /dev/VG名/LV名 /test2
でオプションで ACLなどを指定し/test2にマウントしておきます。
次に/test1にマウントしたルート領域を tarで保存します。
# cd /test1
# tar --acls -cvf /tmp/subroot.tar ./
この様に --aclsオプションを付けて保存します。私はこのtarファイルが7GB弱になりましたので、保存場所(この場合は/tmp)の空き容量に注意してください。
これを復元します。
# cd /test2
2018-9-5追記:
今日 bacula でバックアップしたサブホストのルートファイルシステムをリストアして boot すると
according to mtab, /dev/vda is already mounted on sysroot と表示されカーネルパニックで起動できない。google先生に聞くと
ここに回答があった
/proc と /sys が無いのが原因。考えてみれば、この二つのディレクトリーはバックアップしていない、だがディレクトリー自体は作っておかないといけない。
これらを作成後は起動できたが、mysqld のスタートに失敗する。ログを見ると /tmp にディレクトリーを作ろうとして失敗している。/tmp のオーナーは root でアトリビュートは755でmysqld はrootメンバーでは無いので、少しセキュリティー的には弱くなるが777にしちゃえ。


投稿者: f-otake 投稿日時: 2016-6-12 2:40:32 (1328 ヒット)

表記の様に止まってしまい、それ以上進まず、インストールが出来ない
(インストールは保存してあるISOイメージを使用し、VERは6.8 LVMの領域を一つ作りそれを指定し、全てを / に指定,SWAPは作らない(後から追加できる))
色々ググったが、ヒットしない。selinux関連だからと、当てずっぽうにインストール時に selinux=0 を指定したらうまくインストール出来た。
そのやり方。
画像1の様にインストール画面間で進み、そこでタブを押すと、画面の様に vmlinuz initrd= ....等と表示が現れますので、
続けて selinux=0(画像2)と入力しEnterを押し、インストールを続けます。後は止まることなく最後まで進みます。
この時気を付けるのは、この時点ではキーボードが日本語になっていませんので(英語キーボードの配列)= を入力するのは、ひらがなの へ のキー(右上の方)です。











投稿者: f-otake 投稿日時: 2016-6-4 2:34:06 (755 ヒット)

そろそろメインのKVMホストをMONDOでバックアップしようとinit 1 でシングルユーザーにしてmondoarchive をやっても最後の方で
I cant find the boot catalog directory 'syslinux'! になる。google先生に聞いても答えが得られない。
yumでmondo関連をremoveし、再インストールをしてみたが、状況は変わらない。
途方に暮れ、もう一度インストールし直そうと思い
# yum list installed | grep mondo
でインストールされているものを調べると
afio.i386 2.5-1.rhel6 @mondorescue
buffer.i386 1.19-4.rhel6 @mondorescue
mindi.x86_64 3.0.1-1.rhel6 @mondorescue
mindi-busybox.x86_64 1.21.1-1.rhel6 @mondorescue
mondo.x86_64 3.2.1-1.rhel6 @mondorescue
perl-MondoRescue.noarch 3.2.1-1.rhel6 @mondorescue

ありゃー、afioとbufferが32bitになっている。(原因は前にこのホストをリストアした時に32bit を使っていた。)
# yum remove afio buffer mindi mindi-busybox mondo perl-mondoRescure
とアンインストールし、
# yum clean all
で、念のためキャッシュを消し、さらに念のため再起動をした。(多分ここまでやる必要は無いと思うが)
そして、再インストール
# yum install afio buffer mindi mindi-busybox mondo perl-mondoRescure
でもって、mondoarchive をインターラクティブモード(引数を与えなければ、このモードになる)
無事成功。
なので、
# init 1
でシングルユーザーにして
# mondoarchive
で無事終わった。
めでたし、めでたし


投稿者: f-otake 投稿日時: 2016-5-29 5:51:16 (775 ヒット)

先日、カーネルのアップデート(もちろんそれ以外も色々たくさんあった)したらエラーが出た。
内容は次の通り

1:サブホストのブート時、ip6tables-restore がエラーを出す(画像1)

2:1の問題の為、IPV6を止めたら、dovecot がエラーを出す(画像2)

3:vncにログインしていると突然ログアウトする。

さっそく1番のip6tables-restore がエラーを出すから対処していきます。私はIPV6を止めていた筈なのですが、多分カーネルのアップデート時に有効になったみたいです。
参考URL:http://easyramble.com/disable-ipv6.html
# service ip6tables stop
でip6tablesをストップし
# chkconfig ip6tables off
で再起動時も無効にします。
次にIPV6自体を無効にするために
# echo "install ipv6 /bin/true" >> /etc/modprobe.d/disable-ipv6.conf
ネットワーク関連の設定ファイルも変更します。
# gedit /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no ← これを追加する
HOSTNAME=XXXXXX
GATEWAY=192.168.XX.XX

# gedit /etc/sysconfig/network-scripts/ifcfg-eth0
IPV6INIT=no ← 最後に追記

IPV6の状態を知りたければ http://open-groove.net/linux/disable-ipv6/ が参考になる
これでサブホストを再起動すると
ありゃー、dovecot がエラーを出す(画像2)。どうやらIPV6 を見に行っている。dovecotの設定を見る
# gedit /etc/dovecot/dovecot.conf
# listen = *, :::: ← 26行目位にある
listen = * ← 追記する

これでサブホストをまたも再起動、やっとブート時にはエラーを出さなくなった。

私はサブホストにはVNCでログインしているが、これが突然ログアウトをするようになった。それも数分以内で必ずログアウトする。これでは使えない。
他のサブホストにもVNCでログインしているが、こちらはそんなことが無い。VNCサーバーはCentOSの標準のtigervnc なので、これをインストールし直す。
# yum remove tigervnc-server
# yum install tigervnc-server
これでも、状況はは変わらない。うーん。バージョンを調べる
# rpm -qa |grep tigervnc
tigervnc-server-1.1.0-18.el6.x86_64
それで、正常なサブホストでも調べる。
tigervnc-server-1.1.0-16.el6.x86_64
やはりバージョンが少し古い。
少々強引ではあるが、このVNCをコピーして見る。

正常なサブホストで /usr/bin にあるXvncを問題のあるサブホストからも見える所にコピー(samba, NFS 等を使って)
そして強引にそのファイルを問題のあるサブホストの /usr/bin にコピーする。
この時(当然ではあるが)tiger-vncserver 経由だとXvnc を使っているのでコピー出来ないので、GUIの仮想マシンマネージャーを使いログインする事。もちろん上書きするかのウィンドウが出るが。
そして、xinetd (VNCはxinet経由)を再起動
# service xinetd restart
これでやっと、突然ログアウトはしなくなった。


投稿者: f-otake 投稿日時: 2016-5-23 23:47:37 (2833 ヒット)

現在XOOPSのDATABASEの文字コードはEUCーJPである。これはXOOPSのバージョンが2.0.16だった頃からの遺産である。そろそろUTFにしようと思う。
OSはCentOS6.7なのでこちらは既にUTFであるので、データーベースの文字コードを変更する。その前に現在の状況を把握する。まずはデーターベース、mysqlにログイン
# mysql -u ユーザー名 -p
パスワードを聞かれるので入力
mysql> show variables like 'char%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
全部 UTF8(もちろんファイルシステムとDIRは違う)
XOOPSで使用しているデーターベースの各テーブルの文字コード(mysqlは各テーブルに文字コードを設定できる)
mysql> show table status from データーベース名;
でテーブルの設定が表示されるので、Collation の所を見ると全部 ujis_japanese_ci になっていたので、EUC-JPである。
続いてPHPの設定の確認、
# gedit /etc/php.ini
抜粋
;default_charset = "iso-8859-1"

;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.encoding_translation = Off
;mbstring.detect_order = auto
;mbstring.substitute_character = none;
;mbstring.func_overload = 0
;mbstring.strict_detection = Off
;mbstring.http_output_conv_mimetype=
全部コメントアウトしてある(php.iniは ;(セミコロン)がコメントである)
私の自宅サーバーのapacheはバーチャルホストの設定があり、自身が管理していないWEBがあり、UTFー8、shift-jis、EUCーJPを使用している。
一様 mysqlの設定も
# gedit /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 256M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
datadir=/XXXXXXX/XXXXXX デフォルトから変更してある
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

character-set-server = utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid



ここから本題、二つの方法を書いておく。どちらかでいい、まずは phpMyAdmin を使う方法
XOOPSのデーターベースを選んでから、右ペインの上のタブで エクスポート をクリック、その後、実行をクリックすると、開くか保存か聞いてきますので、保存を選び、OKをクリック、次に保存場所を聞いてきますので、適当に選びOK。すると選んだデーターベース名.sqlというファイルが保存されます。このファイルの文字コードはOSのコードつまりUTF−8で保存されています。
但し、このファイルには各テーブルの文字コードがujis(EUC-jp)になっていますので、utf8に変更します。
# cat データーベース名.sql | sed -e 's/ujis/utf8/g' > データーベース名-1.sql
これで、インポートする時にテーブルの文字コードはUTF-8になります。
次にインポートしますが、その前にデーターベースを作ります。
画像2の右ペインの上の データーベース タブをクリック(左ペインで、データーベースを選んでいると、このタブが表示されませんので、PhpMyAdminのロゴの下、一番左をクリックすると表示されます)。データーベース名を適当に付け、照合順序を utf8_general_ci にし、作成をクリックすると、データーベースが作成されます。

作成されたデーターベースを選び(画像3)右ペインで インポート タブをクリック、参照をクリックし、先ほど保存したデーターベース名-1.sqlを選び、ファイルの文字セットがUTF-8になっているのを確認し、実行をクリックすると、インポートされます。 インポートは正常に終了しました。と表示がでたらOKです。
その後、作ったファイルを削除する(データーベース名.sqlとデーターベース名-1.sql。セキュリティーの為)

次はphpMyAdminを使わないでやる方法
Xoopsで使用しているデーターベースをバックアップする。
# mysqldump -u ユーザー名 -p --databases XOOPSのデーターベース名 > xoops.sql

このファイルの文字コードを調べる(OSの文字コードの筈だが)端末の上部メニューの 端末(T)、文字コードの設定(C)とクリックし、Unicode(UTF-8)が表示されるのを確かめて
# cat xoops.sql
これで端末上にデーターが流れるように表示される(データー量が多いので)その時、漢字が文字化けしていなければ、このファイルの文字コードはUTF-8である。
見にくい時は more を付けて
# cat xoops.sql | more
でスペースを押すと、次になるので漢字が表示される所までやる。確認後 ctrl+c で終わらせる。
確認が出来たら xoops.sql を編集しますが、する事はデーターベース名の変更(変更しないとオリジナルのデーターベースに上書きするので)各テーブルの文字コードをutf8にする。
# cat xoops.sql | sed -e 's/XOOPSのデーターベース名/新データーベース名/g' -e 's/ujis/utf8/g' > xoops4.sql
出来た xoops4.sql をmysqlにインポートします。
# mysql -u ユーザー名 -p < xoops4.sql
パスワードを聞かれますので入力。
これで、新データーベース名でデーターベースが出来ていることを確認しておきます。
又、セキュリティーの為、作ったファイル(xoops.sqlとxoops4.sql)を削除しておきます。
これでやっとデーターベースの各テーブルの文字コードとデーターの文字コードがUTF-8になりました。

ここからはXOOPSの設定
まずはデーターベースを変更する
# gedit XOOPSのルートディレクトリー/mainfile.php
	// Database Name
	// The name of database on the host. The installer will attempt to create the database if not exist
	define('XOOPS_DB_NAME', 'UTF8にした新データーベース名'); ←データーベース名を変更



保存したら、
つぎはXoopsのwebに管理者としてログイン後、ユーザーメニューの管理者メニューをクリック、左ペインの SYSTEM ADMIN をクリック後、一般設定、もう一度一般設定で画面を開き(画像5)使用言語を ja_utf8 にしてから、下にスクロールダウンし、送信をクリック。
アレー文字化けはしていないが、文字コードを確認するとEUC-JPのままだ、UTF-8にすると文字化けする。
色々悩んだが、思い出した、このXOOPSはJPExを使っていた。確か何処かに文字設定があった筈、やっと include/ini_settings.php を見つけ
<?php
/**

 ;Example: If your database character is EUC-JP, it should be ujis.
 ;Example: If your database character is UTF-8, it should be utf8.
 ;charcode=utf8

 */
charcode=utf8 ここをujisからutf8に変更
?>

これを保存し、ブラウザでアクセスし、文字コードを確認するとUTF-8になっていた。
但し、一部に文字化けがあるので、多分キャッシュのせい、
XOOPSのルートディレクトリーにある、二つのディレクトリー(cacheとtemplate_c)の中身を全て削除し、再度アクセスすると文字化けは無くなっていた。
私の場合はXOOPSにJPExを使っているので、Language以下の定数が漢字で定義している部分などは既にutf-8ようがあるので、問題ないが、他のバージョンでは多分必要、他にも文字コード変更が必要かも?


« 1 ... 3 4 5 (6) 7 8 9 ... 35 »
テーマ選択

(4 テーマ)
ピックアップ画像
燕山荘の日の出2009_07_15
最近の画像
IMG_0004.jpg (2023-3-17)
IMG_0004.jpg
IMG_0003.jpg (2023-3-17)
IMG_0003.jpg
IMG_0010.jpg (2023-3-17)
IMG_0010.jpg
IMG_0013.jpg (2023-3-17)
IMG_0013.jpg
IMG_0007.jpg (2023-3-17)
IMG_0007.jpg
IMG_0005.jpg (2023-3-17)
IMG_0005.jpg
IMG_0002.jpg (2023-3-17)
IMG_0002.jpg
IMG_0011.jpg (2023-3-17)
IMG_0011.jpg
IMG_0009.jpg (2023-3-17)
IMG_0009.jpg
IMG_0008.jpg (2023-3-17)
IMG_0008.jpg
人気画像
ゴーキョピー... (6008 hits)
ゴーキョピー...
ギャチュンカ... (5867 hits)
ギャチュンカ...
ばあちゃんミ... (5768 hits)
ばあちゃんミ...
ヒマラヤ壁 (5677 hits)
ヒマラヤ壁
タムセルク残... (5483 hits)
タムセルク残...
Powered by Xoops2 Theme Modified by F-Otake
copyright (c) 2006 All rights reserved.