ログイン
ユーザ名:

パスワード:


パスワード紛失

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

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

もっと...
投稿者: f-otake 投稿日時: 2016-5-24 8:47:37 (216 ヒット)

現在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ようがあるので、問題ないが、他のバージョンでは多分必要、他にも文字コード変更が必要かも?


投稿者: f-otake 投稿日時: 2016-2-9 17:36:03 (167 ヒット)

今日、ディスクのスペースをチェックしていたら、WEBサーバーのデータースペース用に割り当てているパーティションの残容量が少なくなっていた。
私はGUIなのでアプリケーション→システムツール→ディスク使用料の解析 で調べて見るとXOOPSのcacheのサイズが極端に大きくなっていた。キャッシュの数にして30万件。
その殆どがpiCal関連であった。さらにログを調べると、その殆どがbingbotのからのクローラーである。
どうもgoogle先生に聞いてもbingbotのクローラーのアクセスが多すぎる。ここを参照
それはさておき、こうもcacheが肥大化すると問題なので、piCalのキャッシュをしないようにした。管理メニューのSYSTEM ADMINの一般設定、さらに一般設定で下の方に各モジュールのキャッシュの設定がある。


投稿者: f-otake 投稿日時: 2014-1-18 22:17:48 (344 ヒット)

今日、何気に自分のWEBを見ていて、メインメニューのニュースにすると何も表示されない、トピック(カテゴリー)を選んでも何も表示されない!!!
原因は不明だがどうもデーターベース(MYSQL)が壊れているっぽい。さっそく phpmyadmin に入り、このWEBのデーターベースを選び、見当を付ける。ニュースだけがおかしいので、テーブルとしては xoops_stories か xoops_topics だろう。xoops_stories を表示させると、案の定テーブルが壊れているとよ。早速上の左から三番目のSQLタブをクリックし(sql コマンドを入力する事が出来る)REPAIR TABLE xoops_stories とし、実行をクリックすると、修復してくれて、テーブルの表示が出きるようになった。一様 xoops_topics もチェックしたが問題なかったので、WEBを表示させると直っていた。


投稿者: f-otake 投稿日時: 2014-1-5 21:41:05 (398 ヒット)

今日ニュースをアップデートしようとしてアドミンで入ろうとしてもログイン出来なかった。症状は
WebMasterさん、ようこそ。ログイン処理中です。
ページが自動的に更新されない場合はここをクリックしてください
と表示され、index.phpに戻るが、本来ならここでユーザーメニューが表示される筈が表示されていない。強引にwww.kinryokai,net/admin.php(XOOPSが勝手にリンクするので一部のピリオドをカンマに変更してある)とURLを直接入れても許可が無いと跳ねられる。どうなっているんだ!!
そういえば正月に太陽電池を使った無停電電源のテストの時に間違って電源がOFFになり冷や汗をかいた。mysqlが再起動出来なくなっており(mysql.sockが残っていたから)これだけだと思ったけど、この時mysqlが壊れたかな!色々ググるとxoops_session(Xoops_は環境により変化)が壊れていると同じ現象になるみたい、さっそくphpMyAdminでこのテーブルを読もうとすると、クラッシュしていると表示が出たので、SQLタブから直接 REPAIR TABLE `xoops_session` と打ち込み実行をクリックするとテーブルが治った。これでログイン出きるように成った。やれやれ


投稿者: f-otake 投稿日時: 2012-6-6 7:17:08 (495 ヒット)

このWEBにはXOOPSで3つのサイトを運営していますが、6月4日にOSをアップデートしたら、どうもmysqlやphpのバージョンが上がり、仕様が変更になり,殆ど文字化け!!!
色々試したがどうも判らないので、バックアップしてあった5月22日のデーターに戻した。
無事、文字化けも直ったかに見えたが、ニュースの一部でまだ文字化けがある????
原因はこのWEBに使用しているCMS(コンテンツ マネージメント システム)のXOOPSのキャシュが効いていて、文字化け時のデーターを出力していたので、xoopsのルート直下のcacheとtemplate_c(これは多分必要ない、プログラムは変更していないので)フォルダーの中身を消去したら、正常に戻った。


投稿者: f-otake 投稿日時: 2011-7-16 17:34:16 (675 ヒット)

modules/myalbum/index.phpをチェックしていると48行目くらいの
$prs = $xoopsDB->query( "SELECT l.lid, l.cid, l.title, l.ext, l.res_x, l.res_y, l.status, l.date, l.hits, l.rating, l.votes, l.comments, l.submitter, t.description,c.title AS cat_title FROM $table_photos l USE INDEX (date) INNER JOIN $table_text t ON l.lid=t.lid LEFT JOIN $table_cat c ON l.cid=c.cid WHERE l.status>0 ORDER BY date DESC, lid" , $num , $pos ) ;
を // でコメントアウトすると、登録写真は表示されないが、他は表示できた。ここが問題か。データーベースから、写真のデーターを取り出している所みたいだか、良く分からない。select文の中で使っている変数を表示させて見よう。index.phpのコメントアウトした文のすぐ上の行に
echo "$table_photos; $table_text; $table_cat" ;
と入力し、保存してから表示させると、一番上に変数の内容が表示される。結果は
$table_photosはxoops_myalbum_photos, $table_textはxoops_myalbum_text, $table_catはxoops_myalbum_catだった。
それを使ってmysqlからselect分を表示させてもエラーが出ないぞー!!($num, $posはselect文と関係ないから入力しない)
それではとコメントアウトを外し、54行目位の $xoopsTpl->append( から始ま行をコメントアウトするとエラーがでない。今度コメントアウトした所は、変数 $prs を使っているので、ここで問題を起こしている見たい。でもオリジナルのxoopsではエラーが出ていない??? 何で???
色々やったがどうもmysql,phpなどのバージョンが問題みたい(centos 6.2)では問題ない。このWEBのOSはcentos 5なのでJPEXのバージョンを1.8に戻したらOKになった。


投稿者: f-otake 投稿日時: 2011-7-16 12:47:31 (749 ヒット)

1:直接アップグレードし、何かあるといけないのでテスト環境を作る。私は自宅にwebサーバーがあるので、virtual.confに新しいテスト用の設定をした。
xoopsをテスト環境にコピーするが、この時オリジナルのwebはadminの一般設定、一般設定のモジュールのキャッシュは全てオフにし、ログアウトしてから、テスト環境にコピーをし(この時cacheとtenplates_c、もコピーしておく)、JPEX-1.9のmainfile.php以外をテスト環境に上書きコピーをする。この後、テスト環境のinclude/ini_settings.phpの内容をそのコメントにあるように、自分のデーターベースに併せて、charcodeを設定しておく。そしてmainfile.phpをテスト環境に合わせて変更する。その後私の場合は、オーナーとアクセス権が変更されていたので(JPEXからコピーした後)
テスト環境のディレクトリーに移り、
# chmod -R 777 cache
# chmod -R 777 templates_c
# chmod -R 777 uploads
# chown -R xxxx:apache ./

で設定しておいた。
データーベースも壊してもいいように,detabase名を適当に決め作っておき、オリジナルのデーターベースからコピーしておく。
$ mysqldump -u root -pパスワード データーベース名 > ファイル名
$ mysql -u root -pパスワード 新データーベース名 < ファイル名

そしてテスト環境のURLにアクセスすると、無事表示されたが、ザーとチェックするとマイアルバムとアカウント情報が真っ白になる!!!アカウント情報はオリジナルから変更した記憶があるので、多分そのせい、マイアルバムは変更した覚えが無いがいずれにしても、原因究明をしなければ。
色々試したが原因は判らないので。1.8に戻した。


投稿者: f-otake 投稿日時: 2011-7-14 10:51:50 (585 ヒット)

私はこのサーバーでXOOPSを使ったコミュニティーのWEBをやっていますが、ある時、気がつくと、予定を新規登録しても、メンバーにメールが行かない事態になっておりました(原因は不明。サーバーの引越しなどをやったせい?)
色々調べていくと、本来はカレンダーのリスト表示や各予定の詳細表示の時、表示される筈のイベントの選択画面が表示されていませんでした。
mysqlの何処かにこの設定があると見当を付け、色々なテーブルを調べると、(mysqlのやり方は下の方の続き...をクリックして下さい)xoops_config(最初のxoopsは初期設定の時の接頭語)というテーブルがあり、ここに色々な設定を保存しているようです。調べるとconf_modidが15(私の場合はpicalのmodidは15になっていた)conf_nameがnotification_enabled、conf_valueが1になっているデータを発見しました。他のモジュールでイベントを表示する分は3になっていましたので、此所を強引に3にしたら、無事リスト表示などにイベントが表示され,ここにチェック・マークを付けて、今すぐ更新をクリックした後は、メールが来るようになり、問題が解決しました。
本来なら、なんでこのデーターが1なったのか、原因を調べなければいけないし、3にするためのプログラムが何処かにあると思うのですが、私の能力では分かりませんでした。
memo:メールの送信判断はxoops_xoopsnotificationsというテーブル。
モジュールIDを調べるにはxoops_modules。

Read More... | 3343 bytes more | Comments?

テーマ選択

(4 テーマ)
ミニカレンダー
前月2018年 1月翌月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
<今日>
ピックアップ画像
蓼科山修行 10
最近の画像
人気画像
ギャチュンカ... (4562 hits)
ギャチュンカ...
ゴーキョピー... (4478 hits)
ゴーキョピー...
タムセルク残... (4418 hits)
タムセルク残...
ばあちゃんミ... (4399 hits)
ばあちゃんミ...
ヒマラヤ壁 (4371 hits)
ヒマラヤ壁
Powered by Xoops2 Theme Modified by F-Otake
copyright (c) 2006 All rights reserved.