englishjapanesefrench
http://akihiko.shirai.as

[Shortcuts]

メインメニュー

blog[RDF]

検索

Recent Documents

新着ダウンロード

ログイン

ユーザ名:

パスワード:


パスワード紛失

新規登録

オンライン状況

2 人のユーザが現在オンラインです。 (1 人のユーザが documents (wiki) を参照しています。)

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

もっと...

アクセスカウンタ

今日 :3636
昨日 :103103103
今週 :440440440
今月 :3521135211352113521135211
総計 :1947072194707219470721947072194707219470721947072
平均 :457457457
taquino.net


Top / xoopsSniperTips

Documents > Networks > XOOPS > xoopsSniperTips

xoopsSniperTips?



はじめに

ここはコミュニティサイト構築キットxoopsのTIPSを扱っています. なぜ「Sniper」なのかというと「一発で片付ける」ための情報を弾丸的に乗せているから.


インストール以前

商用サイト等で使っているところありますか?

インストール

常識

常識過ぎてREADMEにすら載ってない情報.

インストーラは何度も実行できる?

できます.引越し時などのチェックにも使えてよいです.

mainfile.phpって何?

インストール時に設定した情報が書かれています.読めばわかるように出来ているので,何か変なときには読んだり,変えてみましょう.

インストールディレクトリをドメインのトップに置きたい

パッケージを解凍して/htmlフォルダ以下をドメインのトップになるディレクトリに置けばいいことです.たとえばpublic_htmlなど.横にあるファイル・フォルダ類は必須ではありません.マニュアルを読もう!

MySQLが使えるかどうかわかりません

レンタルサーバの場合,MySQLを許可しているかどうかはサーバ会社に聞きましょう.ちなみに許可していないほうが多数派だと思います.

周辺ツール

あるといいもの,なくてもいいもの.

MySQL関係で良いツールを教えてください

Windowsなら「かねやんのMySQLAdmin」が良いのでは.名前が恥ずかしいので私はあまり好きではありませんが….Linux環境等ならphpMyAdmin?というややこしい名前のWebベースの管理ソフトが便利.でもインストールやセキュリティ等の設定が面倒なので,MySQL標準のコマンドラインが一番便利かも.MySQLのマニュアルどおりに勉強すると,正しいSQLも学べて一石二鳥です.

XSASってなんですか?

Windows上でXOOPSが動くサイトを一時的に作ってしまう特殊なバイナリパッケージ群です.MySQL,Apache,PHP,ディレクトリをマウントするためのスクリプトなどが含まれていて,EXEをダブルクリックするだけで,XOOPSを試せます.

XSASが立ち上がりません

XSASのサイトに聞いてほしいんですが,たぶんファイアーウォールか,ウィルスチェックソフト,Skypeのどれかがポート80番を見張っていて,ぶつかってます.これらをすべて終了・無効にしてみてください.なお,XSASのチューニングは直接Apacheの設定「http.conf」を触るべきだと思います.これを自分で理解しながら設定すると,かなり勉強になりますし,本番サーバではないので,誰の迷惑にもなりませんし.

Linuxじゃないとだめですか?

そんなことないです。上記XSASはWindows上で開発するためには非常に便利なソフトウェアですし、XSASのApacheでなくても、別途セットアップしたApacheやWindows系の標準WebサーバーであるIISでも問題なく動きます(いくつかのPHP関数がWindowsとLinuxで互換がないという問題があります)。以前はLinux環境でしか動作が検証されていないモジュールも多かったのですが、最近はそういうことも減ってきているようです。


Development/Hack

開発系

ユーザに対する所属グループIDを得たい

getGroupsByUser?という関数があります。同様に、getUsersByGroup?というグループに所属するユーザを得るxoopsのAPIもあります。

$member_handler =& xoops_gethandler('member');
// $user_list = $member_handler->getUsersByGroup( $event->groupid ) ;
$groups = $member_handler->getGroupsByUser($row['uid']);
foreach ($groups as $tmp) {
 echo $tmp."<br>";
}

xoops_groups_users_linkに同一ユーザの複数groupidが追加されている

上記のソースを実行すると、複数のgroupidが登録されていることを発見することがあります(おそらく開発上のテストをやっているうちに起きる)。一度、ユーザをグループから削除して追加しなおせば元通りになります。

Hack

ユーザ情報を拡張したい

「白扇」というモジュールがあったのですが、配布が終了してしまっています。「ミニ白扇」なども出ていますが、そこそこにPHPやMySQLが理解できる人が、手っ取り早く行うのであれば、xoops_usersテーブルを拡張してしまうのが面倒がなくてよいように思います。結局テンプレートの管理などもしなければならないので。

デフォルトの通知方法を「メール」にしたい

このトピックが参考になる。

/kernel/user.phpの100行目付近
       // RMV-NOTIFY
//      $this->initVar('notify_method', XOBJ_DTYPE_OTHER, 1, false);
       $this->initVar('notify_method', XOBJ_DTYPE_OTHER, 2, false);

こんだけ。ちなみに「2」がメール。後からでもMySQLのデータを「2」にしてしまえば普通にメールで配信されるようになる。


module

modulesに細かい情報は載せていきますのでそちらもご参考.

標準装備すべきモジュールを紹介してほしい(整備中)

  • 個人ポータル向け
  • 学会等イベント向け

bwiki

b-wikiの入手先がわからない

ここです

表示言語を変えたい

pukiwiki.ini.php にて,
// LANG - Internal content encoding ('en', 'ja', or ...)
//define('LANG', 'ja');
define('LANG', 'en');

…とすればよい

ファイル添付の最大サイズを変えたい

(bwiki/plugin/attach.inc.php)
// Max file size for upload on PHP (PHP default: 2MB)
ini_set('upload_max_filesize', '2M');
// Max file size for upload on script of PukiWikiX_FILESIZE
define('PLUGIN_ATTACH_MAX_FILESIZE', (1024 * 1024)); // default: 1MB
ここの数字を変えてあげてください.たとえば4MBなら,
ini_set('upload_max_filesize', '4M');
define('PLUGIN_ATTACH_MAX_FILESIZE', (4*1024 * 1024)); // default: 1MB
というかんじ.当然,php.iniで書かれるPHPのアップロードファイル制限も4MB以上にしないといけないはず.
(php.ini)
; Maximum allowed size for uploaded files.
;upload_max_filesize = 2M
upload_max_filesize = 4M

#pcommentにゲストが書き込み出来ません。

#commentを使いましょう。

xoops gallery

gallery remoteを使いたい

Javaで動くgallery remoteを使うとアップロードがえらい簡単になります。 入手はこちら JavaVMつきのやつがよいと思います。

設定はこちら。簡単に言うと、xoopsのID、パスワードを打って、PHPnukeの設定で、 LoginURLを

http://site.com/modules/xoopsgallery/?PHPSESSID=9590cd01febcb0bd95932ce39e92

Module URLを

http://site.com/modules/xoopsgallery/$GALLERYFILE$

とするだけです。 本当に簡単に動きます!

Liaise

日本語化ファイルがありません

1.23でよければこちらfileliaise_japanese.zipからどうぞ。 ↓ [[Liaise公式サイト>http://www.brandycoke.com/home/modules/cryptica/ ]]で追加言語パックとして配布されているようです。ああ…アップデートしないと…。

受信メールが文字化けます

一般設定のエンコード方法を「EUC」から「ISO-2022-JP」にしてください。

管理画面で「XOOPSのバージョンがこのモジュールの動作する条件を満たしていません。Liaiseは適正に働かないかもしれません」と表示される

[[こちら>http://jp.xoops.org/modules/newbb/viewtopic.php?viewmode=flat&topic_id=10003&forum=17 ]]にいろいろ情報がありますが、最も簡単な方法は[[Liaise公式サイト>http://www.brandycoke.com/home/modules/cryptica/ ]]から最新のバージョンにアップデートすることです。実害としては、すでに作成したフォームのリストが表示されなかったりします。

sqMail (SquirrelMail? for Xoops) 1.4.1

ダウンロード

http://sourceforge.net/forum/forum.php?forum_id=292113

インストール

  • 全てのファイルを解凍、/xoops/modules/sqmail へ。
  • CHMOD to 777を /xoops/modules/sqmail/data ディレクトリへ。
  • /xoops/modules/sqmail/config/config.php を同ディレクトリのconfig.default.phpよりコピーして編集。$domain, $imapServerAddress?, $imapPort, $smtpServerAddress?,$smtpPort等を変えろとある。 日本語ファイルは上記パッケージに含まれている。

Courier IMAPでのセッティングを教えて

自分も試行錯誤だが、以下の設定ですんなり動いた。

  • $imap_server_type = 'courier';
  • $default_folder_prefix = '';
  • $default_charset='iso-8859-1';

お勧めmodulesを教えてください.

専用ページを作りました.modules


セキュリティ対策

安易なツールだからと言ってセキュリティ管理しなくていいとは誰も言ってない.

XOOPSに必要なセキュリティ管理って何ですか?

わたしも専門家じゃありませんが,思い当たるだけ以下のとおり.

  • うかつなモジュールの利用によるセキュリティ情報の漏洩
    • たとえば,パスワードとか人間の目には見えないようにしつつ表示しようと思えば誰でも出来る.それからSpyWare?のような使い方も可能.(まだ見たことはありませんが)怪しいモジュールはちゃんと調べてから使うようにしよう.
    • hogehoge.phpといったように,表向きには利用できない(リンクがない)PHPも,実際にはいくらでも実行できる.また(module)/admin/index.phpも,適切なセキュリティ対策をしていなければ,URL直接指定でいつでもアクセス可能である.
      • わけわからんモジュールは「使わない」と決めたら,さっさと「非アクティブ→アンインストール」だけではなくて,ディレクトリから削除したほうがいいかもね.
  • モジュール,グループ,ブロックの設定ミスによる情報漏洩
    • グループを増やしすぎると管理が増えるので注意.
    • 特に新モジュールのインストール直後は「登録ユーザ」にモジュールアクセス権限が渡されているので注意しましょう.
    • モジュールを非アクティブにしておいて,再度アクティブにしたときも注意が必要.過去のDBへ登録された情報などは全部残っていますし,セキュリティも未確認のままです.
    • 各グループのダミーユーザを作って地道に確認するのが一番確実かも.
  • 個人情報保護法準拠
    • 私,法律の専門家じゃないんですが,デフォルトのサイト利用登録時の承諾文だけではすべての法律的事故を防ぎきれないと思います.
    • たとえば,下のuserinfo.phpの対策をしないと,登録ユーザの意図やサイトのデザインとはまったく別に,個人情報を漏洩してしまう恐れがあります.下のようなソースでの対策だけではなくて,マヌケな設定のために,ユーザの個人情報が丸見えになったり,改変できたりしてしまいますので注意.特に利用者もXOOPS用のパスワードは,他の(銀行とか…)重要なサイトとは別のパスワードを使ったほうがいいと思います.

userinfo.phpでユーザ情報が丸見え

http://(yoursite)/userinfo.php?uid=*

にアクセスすると、ゲストにもユーザの情報が見えますが、これを見られない様には出来ないんでしょうか?

userinfo.phpの先頭のほうに以下のコードを追加

include 'mainfile.php';
include_once XOOPS_ROOT_PATH.'/class/module.textsanitizer.php';
//security patch
if ( !$xoopsUser ) {
redirect_header(XOOPS_URL."/",3,_NOPERM);
exit();
}

ユーザ登録をした人は,まさか,そこでメールアドレスや個人情報が公開されるとは思いませんし,もし本人の意図とは別に公開されることがわかっているならそのサイトに登録しないでしょう….ちなみに,ゲスト宛にnewbbやnewsを公開していると,googleでも検索できてしまいますし.xoops管理者は必須の対応項目だとおもいます. 時々セキュリティを確認するために自分のメールアドレスやらURLやらをgoogleに聞いてみるといいですね.

それにしても個人情報保護法とかできてますし,userinfo.phpの対策はしたほうがいいと思います.できればこういったパッチ・ハックではなくて,xoops標準で対策してほしいところですね(ならここでなくてソースに書け,という話も).

他のグループウェアとなんか違うので理解しづらい

たしかに.私もなれるまで時間がかかりました.以下の点に気をつけるとよいと思います.

  • 各モジュールへのアクセス権限
    • 「グループ管理」で行います.モジュールのON/OFFや「ブロック管理」ではありません.
    • 個々のモジュールがインターネットゲストへの使用を想定しているかなんて,保証はないので,念のためログアウト後にみえるかどうか,とURL直打ちなどで試してみるといいと思います.
  • インターネットゲストへのモジュール利用許可
    • 流れとしては,以下のようになります
      • インストール後,管理者もしくは一部グループのみで,恥ずかしくないよう,データの作りこみ.
      • 各モジュールの管理画面での適切な管理機能の設定(ゲストの編集権限など)
      • 使用するブロックの絞込み(無意味に公開してもしょうがないので)
      • 「グループ管理」においてゲストに対する「モジュールアクセス権限」の追加,個々の「ブロックアクセス権限」の追加
      • 「ブロック管理」において,表記や表示順の調整 …といった感じが良いと思います.

引越し

サーバを構築するときには,引越しするなんてことを考えたりはしないものだが,必ず将来ありえる話ではある.

Windows環境からLinux環境に移植したい

現在稼動中のサイトが5つ程ありますが、それらを別のサーバに引っ越す事が可能なのでしょうか、Windows2000⇒Linuxのように。可能であればその出来るだけ簡単な方法をお教え下さい。

この手順でほぼ問題なく移行できます.

http://www.totsusangyo.com/xoops/modules/newbb/viewtopic.php?topic_id=31&forum=2&post_id=105

漢字コードがEUCになっているはずですので普通にテキストファイルへのmysqldumpで大丈夫です.うまくリストアできないときは -Q --opt のオプションをはずしてみたりするといいです.

また全部のMySQLのDBを一気に移行するより,個々に確認しながらやったほうが安全でしょう.

Linux上でのセットアップはWindowsほどパーミッションが甘くないので,確実にしましょう.一発で移行できないときは,/install/index.phpを使って,パーミッションとDBの駆動を確認するとよいです(mainfile.phpを直接直してもよいです).真っ白画面になったときは,admin.phpを直接指定してみましょう.

後は個々のモジュールの設定ですが,ついでにアップデートしたり,パーミッションをたくさん設定する必要があるので,元サイトでは「アクティブ」でない状態にしておいたほうがよいかも. (「アンインストール」するとテーブルを棄ててしまうので注意)

なおLinuxのApacheの設定については,ApacheとIISを同じURL・同じ公開IPで同居させながら移行する方法を見つけたので,IIS2Apacheにまとめておきました.

★IISの情報は少ないんですが,Win→Linuxへの移行はもっと情報があってもいいな,と思いますね.

引っ越したらデータベース問題が出てお手上げ

mainfile.phpのMySQLへのアクセスのためのDB名,ユーザ名,パスワードなどが間違っている可能性があります.localhostのDBにつなぐのであれば,shellのコマンドラインから…

mysql -u(ユーザ名) -p(パスワード) (指定したDB名)

とやって接続できないなら,何か間違ってます.MySQLのサイトを見て詳しく確認してみましょう.

ひとつのMySQLサーバを複数のhttpサーバ,XOOPSサイトで共有できますか?

普通はローカル(localhost)のMySQLを使うことが当たり前だと思いますが,たとえばサイト移行時,3階層モデル構築時(やらないと思うけど…)など,httpとXOOPSが動いている物理的なフロントエンドのサーバと,MySQLだけが動いているバックエンドのサーバといったかんじに処理負荷を分ける事が可能です.MySQLの知識があれば簡単なはず.フロントエンドのサーバからバックエンドのMySQLサーバの該当DBに読み書きができるユーザを作って,mysqlコマンド等でアクセスを試してみましょう.うまくいったらmainfile.phpを書き換えて,出来上がりです. なお,WindowsとLinuxのDB共有はやめたほうがいいです.sendmailやその他のpath記述がぜんぜん違うので,動くどころか,訳わからないことになります.この作業をするときには必ずDBをバックアップすること.


バックアップ/リストア

XOOPSのデイリーバックアップは比較的簡単かも.

どうやったら安心できますか?

/html以下のすべてのソースを圧縮して,MySQLの該当のDBをすべてダンプしておくcrondを書いておけばよいと思います.

リストア時の注意は?

各モジュールのパーミッションをすべて確認するのが非常にめんどくさいです.できればパーミッション込みで相対パスでアーカイブを作っておくことが大事でしょう.MySQLはロードしそこなってもdropすれば何度でもやり直しききます.ただし最初のダンプを作ったときに,ロードできるかどうか試しておくこと(漢字コードとか--Qオプションとか).また環境が変わったときにはmainfile.phpの記述を確認しましょう.


アップデート

XOOPSはまだまだアップデートすると思う.

ユーザ認証やその他の項目のソースに手を入れた場合,どうしましょう?

アップデート時に,差分を書くのは非常に面倒なことになってしまいますし,たぶん忘れますので,可能な限り,コメントを書きまくるか,別ファイル(hoge.inc.php)などにして上書きして消失するのを防ぎましょう.他に何か良い方法があるなら教えてほしい.


開発-メンテナンス-トラブル

ここまでくれば,もう中級者.でも開発の最初の一歩でどはまりすると,あとがつらいからねえ.

管理画面にログイン出来なくなった!

自分でモジュールを開発しようといろいろやってたら,ログインできなくなってしまいました.どうしたらいいんでしょう?

http://(sitename)/user.php でログイン画面がでてきます.
http://(sitename)/admin.php で管理画面がでてきます.

ここまでたどりつければ,何かは出来るはずです.

モジュールを開発してたら,何かの拍子で画面が真っ白になってしまった

たぶん,開発中のモジュールのタグをどこかで間違えてます.だめもとでソースを表示してみる,管理画面が出せるなら「PHPデバッグ」ONにしてみる,モジュールをアップデートしてDBに読み込みなおしてみる…など.けっこう単純なHTMLのミスでも真っ白になることがありますので,コピーして拡張子をHTMLにして,構文チェックしてみるのも良いかも.あとはGoogleとかXOOPS日本で聞いてみるのをお勧めします.

何もしてないんだけどある日突然ログインできなくなった

私の場合はディスクパンクしたWindows+Apache1.3.3の環境で起きました。ログインの認証には成功するんだけど、トップページに戻ってしまう。これではメンテナンスも出来ません。 データベースのバックアップ時に

 B:\>c:\mysql\bin\mysqldump -A -uroot -pmysql -Q --opt -rDBDUMP.sql  c:\mysql\bin\mysqldump: Got error: 1016: Can't open file: 'xoops_session.MYI'. (errno: 145) when using LOCK TABLES …と出たら、xoopsのセッション管理テーブルが壊れています。 以下のコマンドで簡単に直せます(以下Windowsの場合、Linuxはmysqlコマンド)。

B:\>c:\mysql\bin\mysql -uroot -p (xoopsのテーブル名)
Enter password: *****
(中略、コマンドラインで)
mysql> REPAIR TABLE xoops_session;

これで復旧できます。


(以下拡充予定)


Notice

このドキュメントは無保証です.
This document has no warranty.


Comment Please!

Show recent 10 comments. Go to the comment page.

  • パッケージを解凍して,htmlフォルダを移動して,パーミッションまで自動設定するようなインストールスクリプトがあるといいな. -- aki? 2005-04-12 22:10:16 (火)
Name:

Last update at 2005-07-09 07:46:59

Counter: 660, today: 1, yesterday: 0

Attach file: fileliaise_japanese.zip 86 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Counter: 660, today: 1, yesterday: 0
Last-modified: Mon, 11 Sep 2006 12:39:44 GMT (4054d)
楽天トラベル株式会社
Powered by XOOPS Cube The XOOPS Project / all rights are reserved by Akihiko Shirai / XOOPS Cube
Theme Designed by OCEAN-NET