CentOS-XOOPS作業 のバックアップ(No.2)
※※このサイトは2012年頃より更新を停止しています。※※
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- CentOS-XOOPS作業 へ行く。
- 1 (2005-08-22 (月) 08:04:51)
- 2 (2005-08-23 (火) 04:56:17)
- 3 (2005-08-24 (水) 17:11:23)
- 4 (2005-09-13 (火) 16:52:44)
- 5 (2005-09-13 (火) 16:52:44)
CentOS作業 †
仕事場のcommunityサイト作成に使用しているのがCentOS。
仕事場の環境での作業をそのままインターネットへオープンにするわけにもいきません。
そこで在宅環境への作業の履歴としてフィルタすることで、仕事場作業に際して自学自習で経験したノウハウを公開していくことにします。
常套句ですが、「この通りにやればできる」というものではありません。参考にされる際には、自己責任で行ってください。
作業履歴まるなげリスト †
とりあえず、整理もせずごっそり掲載。
この情報を追いかけるようにしてEndeavor NT1000に自宅のCentOSを入れる予定なので、その作業をしながら下記の情報を順序だてて整理していきます。
- CentOS作業
- 作業履歴/2005-06-03
- 作業履歴/2005-06-08
- 作業履歴/2005-06-07
- 作業履歴/2005-06-10 (redhat8)
- 作業履歴/2005-06-14
- 作業履歴/2005-06-15
- 作業履歴/2005-06-20
- 作業履歴/2005-06-21
- 作業履歴/2005-06-22
- 作業履歴/2005-06-24
- 作業履歴/2005-06-27
- 作業履歴/2005-06-29
- 作業履歴/2005-06-30
- 作業履歴/2005-07-04
- 作業履歴/2005-07-11
- 作業履歴/2005-07-20
- 作業履歴/2005-07-22
- 作業履歴/2005-07-26
- 作業履歴/2005-07-29
- 作業履歴/2005-08-04
- 作業履歴/2005-08-05
- 作業履歴/2005-08-08
- 作業履歴/2005-08-22
作業履歴/2005-06-03 †
仕事場redhat8 ポリシー変更 †
- phpのコンパイルインストール
※参考:
http://www.dolphy.gr.jp/webap/env/php-install.html
http://www.jpring.net/jitaku/redhat9+apache2.0.48+php-4.3.4-ok.html
http://64.233.167.104/search?q=cache:wVwVxQvzjgsJ:49uper.com/memo/linux/php_configure.html+php+enable+cgi+configure&hl=ja&lr=lang_ja- 既存のphp関連のrpmパッケージをアンインストール
RH8デフォrpmはマルチバイト関連が有効になってないため。rpm -e php-4.2.2-8.0.5.i386.rpm rpm -e php-imap-4.2.2-8.0.5.i386.rpm rpm -e php-ldap-4.2.2-8.0.5.i386.rpm
- httpd-develをインストール
依存関係解消の為、下記もインストールautoconf automake libtools
- コンパイル環境も入ってなかった・・・
※参考 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76061
RH8は開発環境のkernelheaderのパッケージ分類がちょいと特殊。
下記をインストールbinutils glibc-kernheaders glibc-devel gcc
- php-4.3.11.tar.bz2を持ってきて展開、configure
./configure --with-apxs2filter=/usr/sbin/apxs \ --with-gd --enable-gd-native-ttf \ --with-freetype-dir=/usr --with-png-dir=/usr \ --with-zlib --with-zlib-dir=/usr \ --with-jpeg-dir=/usr --enable-exif \ --enable-mbstring --enable-mbregex \ --enable-zend-multibyte --with-pgsql=/usr \ --with-mysql=/usr > ../php_configure.txt
ここで、lex: command not found (※参考 http://ns1.php.gr.jp/pipermail/php-users/2001-September/001761.html) Cannot find libz libjpeg.(a|so) not found. libpng.(a|so) not found. freetype2 not found!
と言われた・・・。
それにこれも。configure: warning: You will need bison if you want to regenerate the PHP parsers. configure: warning: You will need bison if you want to regenerate the Zend parser.
というわけで、flex zlib-devel libjpeg-devel libpng-devel freetype-devel bison
をインストールで上記は解決。
でもやっぱこいつは発生。./configure: line 1: /apr-config: No such file or directory ./configure: line 1: /apu-config: No such file or directory
こいつはもうメンドイのでそのままmake; install;
したら/usr/lib/httpd/build/instdso.sh: そのようなファイルやディレクトリはありません
とかゆわれるし・・・。
http://slashdot.jp/journal.pl?op=display&id=107852&uid=6751
ここらへんを参考にinstdso.shをhttpd-2.0.53.tar.bz2から持ってきてinstall。 - だがしかし。
CGI版をインストールするには、with-apxsしちゃいけないそうな。
※参考:http://php.s3.to/man/features.commandline.html
というわけで、--with-apxs2filterを外して再コンパイル。
DSO版は既にインストール済みなので、コンパイルの済んだcgi版と
cli版をそれぞれリネームしながらインストール。
- 既存のphp関連のrpmパッケージをアンインストール
- httpd.conf
- AddHandlerを有効にした。
これと、<Directory "/home/*/public_html/cgi-bin"> Options ExecCGI </Directory>
により、各ユーザはcgi-bin/配下のみでcgiの実行が可能。 - DirectoryIndexにindex.cgiとindex.phpを追加。
- LanguagePriorityの先頭にjaを持ってきた。
- AddType application/x-httpd-php .php を加えた。
- AddHandlerを有効にした。
- 動作確認
- 以上でPHPのCGIもDSOも動作確認済み。
作業履歴/2005-06-08 †
- pukiwikiのCGI版動作はやはり挙動がおかしい
うちでやった時と同じように、MenuBarの更新がなぜか反映されない。
しゃーないのでDSO版php上で動かすことを基本にしよう。 - MySQLの初期化
http://www.foocrane.jp/WAPS3/chapter06/section12.html
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html
MySQLのrootのpasswordを設定しよう。
サーバ起動時にサービス自動起動登録# chkconfig --level 345 mysql on
明日の夜勤でxoops入れたろー。
できれば一気にQuestionLaborも。 ←(こいつぁちょいと楽しみ
ほいで全部まとめて挙動テスト。
作業履歴/2005-06-07 †
- ちょいと気になったツール : QuestionLabor
http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20050607/162211/ ※情報ソース
http://www.labor-project.com/ ※プロジェクトURL
今度これも試しに入れてみよう。
必要な追加パッケージ等MONSTUQI (←めんどくさそう Ruby PostgreSQL
仮にこれらを使うとしたら。
データの移行は可能か?
MSaccessとかのmdbファイルからphpで内容をクエリ抽出ってできたっけ? - xoops設置準備
MySQLが必要ってことなので、phpもコンパイルし直そうかな。
併せて、上記で触れているQuestionLaborの準備もかねてPostgreSQLも入れておく。
phpコンパイルの準備としてdevelパッケージも入れておく。
perlからも使えるようにperl-DB*も必要な分入れておく。
よって下記パッケージ群をインストール- postgresql-perl-7.2.2-1.i386.rpm
- postgresql-server-7.2.2-1.i386.rpm
- postgresql-devel-7.2.2-1.i386.rpm
- postgresql-7.2.2-1.i386.rpm
- perl-DBD-Pg-1.13-5.i386.rpm
- perl-DBD-MySQL-2.1017-3.i386.rpm
- mysql-server-3.23.52-3.i386.rpm
- mysql-devel-3.23.52-3.i386.rpm
- mysql-3.23.52-3.i386.rpm
- postgresql-libs-7.2.2-1.i386.rpm
- perl-DBI-1.30-1.i386.rpm
- で
phpのDSO版、CLI版、CGI版、全部再インストール完了。
作業履歴/2005-06-10 (redhat8) †
- MySQL xoops用ユーザ、データベース追加
mysql> create database DBname; mysql> grant all privileges on DBname.* to username@localhost -> identified by 'password';
- xoops インストール完了
インストール時に設定する項目- 管理者名
- パスワード
- mailaddress
- QuestionLabor - 失敗履歴
06/10 4:00AM現在、Laborシリーズ配布一時停止中。
RubyとMonstuqiのインストールだけ済ませておこうかな。
ということで、まずは下記rubyパッケージ(rpm)をインストール。ruby-libs ruby ruby-docs
Monstuqiのパッケージ群をtarballからインストールlibfixed-current.tar.gz libmondai-1.2.0-031210.tar.gz libglade-panda-current.tar.gz gtk+panda-current.tar.gz panda-1.2.0-031210.tar.gz gw-20031210.tar.gz ※Monstuqiのサンプルプログラム
これらをコンパイルする為に、下記の開発系パッケージ(rpm)が必要gtk+-devel-1.2.10-22.i386.rpm (←こっからgtk+pandaのconfigureで ORBit-devel-0.5.13-5.i386.rpm imlib-devel-1.9.13-9.i386.rpm esound-devel-0.2.28-1.i386.rpm gnome-libs-devel-1.4.1.2.90-22.i386.rpm XFree86-devel-4.2.0-72.i386.rpm indent-2.2.8-3.i386.rpm glib-devel-1.2.10-8.i386.rpm libtiff-devel-3.5.7-7.i386.rpm libungif-devel-4.1.0-13.i386.rpm audiofile-devel-0.2.3-3.i386.rpm pkgconfig-0.12.0-3.i386.rpm libghttp-devel-1.0.9-5.i386.rpm (←たぶんlibfixedあたりのconfigureで libxml-devel-1.8.17-5.i386.rpm (←libglade-pandaのconfigureで libxml2-devel-2.4.23-1.i386.rpm (←libglade-pandaのconfigureで
そしてそれぞれ下記繰り返し$ ./configure; make; make check; $ su # make install
しかし、pandaのmake中に下記エラーでコケる。./enum: error while loading shared libraries: libglade-panda-gnome.so.0: cannot open shared object file: No such file or directory
原因は/usr/local/lib がldconfigの対象になっていなかったこと。
※参考: http://www.atmarkit.co.jp/flinux/rensai/linuxtips/300sharelib.html# vi /etc/ld.so.config に/usr/local/libを追記 # ldconfig
してからmakeしたら、コンパイル完了!長かった(´Д`) - FSwiki
- bbs2,bbs2list プラグインの動作確認
上等。 - calender,recentcalender プラグインの動作確認
セクションの部分表示がうまくいかない。
brプラグインを導入(本家プラグイン投稿ページから持ってくる)
- bbs2,bbs2list プラグインの動作確認
作業履歴/2005-06-14 †
pukiwiki †
- pukiwikiのスキンに機能追加
上部のリンクに「ソース」を追加し、sourceコマンドで表示中のページのHTML整形前のテキスト生データを出力するようにした。
以下、変更箇所- lib/html.php
61行目付近 - 追加:$_LINK['source'] = "$script?cmd=source&page=$r_page"; 86行目付近 - 追加:$link_source = & $_LINK['source'];
- skin/pukiwiki.skin.php
114行目付近 - 追加: <?php _navigator('source') ?> |
- ja.lng.php
131行目付近 - 追加:$_LANG['skin']['source'] = 'ソース'; // HTML整形前テキスト表示
- lib/html.php
作業履歴/2005-06-15 †
vsftpdの設定 †
- ls_recurse_enable
※参考:http://sakaguch.com/PastBBS/0024/B0012531.htmlls_recurse_enable=YES
こいつを有効にしたので、FFFTPでいうミラーリングアップ/ダウンロードや、ディレクトリの丸ごとコピー/削除可能になりました。
作業履歴/2005-06-20 †
ネットワーク設定 †
- nameserver指定
参考:http://search.luky.org/fol.1998/msg00838.html
参考:googleキーワード「ifconfig nameserver」で引っかかったクサイやつ
/etc/resolv.confに下記の記述# vi /etc/resolv.conf nameserver nameサーバのipアドレス
を加えることで、名前解決ができるようになった。しかーし。仕事場のproxy環境での外部へのpingはやっぱできないねぇ。
ここらあたりで、なぜかわかった。ICMPですか。
参考:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5619&forum=11&18
作業履歴/2005-06-21 †
- sshについて
このサイト、しにじょーとー。
ついでにgoogleキャッシュ
作業履歴/2005-06-22 †
postgreSQLのユーザ準備 †
- インストールと初期設定
参考:(googleキャッシュ) http://www.hellohiro.com/jdbcpostgresql.htm
ユーザ:postgres
パスワード:任意 - postgreSQLにユーザ追加
参考:(googleキャッシュ http://park8.wakwak.com/~ein/dbserver.html$ su - postgres <---パスワード入力 -bash-2.05b$ createuser username ←DB接続用のユーザ作成 Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER -bash-2.05b$
作業履歴/2005-06-24 †
XOOPSとpukiwiki †
- 連動したサイトがあるね
参考:http://taketan.mydns.jp/xoops/
XOOPSとpukiwikiを連動させて記事編集ができるよう。XOOPSのモジュールとしてwikiを組み込むみたい。今度これ試してみよう。
コミュニティページとしちゃ最適な組み合わせだと思えるけど、セッティングするの大変そう。。。
pukiwiki - calendar_viewerで表示される記事の設定 †
- plugin/calendar_viewer
記事タイトル表示がh1でなされているので、h2にした。171行目 $head = '<h2>' . $link . '</h2>' . "\n";
- skin/pukiwiki.css.php
75行目ぐらいから- h1とh2を分ける。
- paddingの数値を減らす。
- h2、h3のmarginを変更する。
- plugin/article.inc.php
articleプラグインで簡易掲示板を設置するに当たり、articleプラグインに下記の修正を加えた。34行目 define('PLUGIN_ARTICLE_AUTO_BR', 0); // 改行を自動的変換 1:する 0 :しない 61行目 $article = $subject . "\n" . '>' . $name . ' (' . $now . ')'. " ~\n";
作業履歴/2005-06-27 †
Xoopsとpukiwikiモジュール †
- pukiwikiモジュールを追加
Xoopsの日本語サイトのモジュールページにてwikiモジュールの紹介があります。
そこにあるB-wikiというモジュールは、Built in pukiwikiの略で、pukiwikiをXoops内部に取り込む為のモジュール。
これを使えばかなりコミュニティページとしての機能が揃いそう。
開発者のページのアナウンスによると本家pukiwikiの1.4.5に対応しているとのこと。
pukiwikiは1.4.2-->1.4.3以降で仕様に大きな変更がかかっているので、1.4.5対応でよかった。
でもかなりコードに手を加えてるらしいので、本家版とは別物と考えた方がいいよう。
プラグインに関しても、本家版のままでは動かないものも一部あるかもしれないとのこと。でも実際インストールしてみた感じ、かなり使い勝手良くなりそう。
Xoops+B-wikiでサイト作りこんでいいと思われる。
- やった作業
- B-wikiモジュールを、開発サイトの説明に従ってxoopsにインストール。
- 各種設定&bwikiをxoopsのトップページになるようにブロック設定。
- kifubbsの各種ファイルをbwikiのpluginに追加。
- kifubbsのスタイルシートをbwikiのskin/pukiwiki.css.phpに追記。
- やり残しの作業
- kifubbsの投稿フォームを下部に移動しよう。
そしてそれに伴う配置調整。
- kifubbsの投稿フォームを下部に移動しよう。
作業履歴/2005-06-29 †
xoops B-wiki †
- skin/pukiwiki.css.phpに下記修正
[user@localhost dir]$ diff original/pukiwiki.css.php xoopsdir/modules/bwiki/skin/pukiwiki.css.php 98,104c98,112 < h1, h2 { < font-family:verdana, arial, helvetica, Sans-Serif; < color:inherit; < background-color:#DDEEFF; < padding:.3em; < border:0px; < margin:0px 0px .5em 0px; --- > h1 { > font-family:verdana, arial, helvetica, Sans-Serif; > color:inherit; > background-color:#DDEEFF; > padding:.3em; > border:0px; > margin:0px 0px .5em 0px; > } > h2 { > font-family:verdana, arial, helvetica, Sans-Serif; > color:inherit; > background-color:#DDEEFF; > padding:.2em; > border:0px; > margin:0px 0px .5em 0px; 107,116c115,124 < font-family:verdana, arial, helvetica, Sans-Serif; < border-bottom: 3px solid #DDEEFF; < border-top: 1px solid #DDEEFF; < border-left: 10px solid #DDEEFF; < border-right: 5px solid #DDEEFF; < < color:inherit; < background-color:#FFFFFF; < padding:.3em; < margin:0px 0px .5em 0px; --- > font-family:verdana, arial, helvetica, Sans-Serif; > border-bottom: 2px solid #DDEEFF; > border-top: 0px solid #DDEEFF; > border-left: 10px solid #DDEEFF; > border-right: 0px solid #DDEEFF; > > color:inherit; > background-color:#FFFFFF; > padding:.1em; > margin:0px 0px .5em 0px; 119,120c127,128 < font-family:verdana, arial, helvetica, Sans-Serif; < border-left: 18px solid #DDEEFF; --- > font-family:verdana, arial, helvetica, Sans-Serif; > border-left: 18px solid #DDEEFF; 122,125c130,133 < color:inherit; < background-color:#FFFFFF; < padding:.3em; < margin:0px 0px .5em 0px; --- > color:inherit; > background-color:#FFFFFF; > padding:.2em; > margin:0px 0px .5em 0px; 128,133c136,141 < font-family:verdana, arial, helvetica, Sans-Serif; < color:inherit; < background-color:#DDEEFF; < padding:.3em; < border:0px; < margin:0px 0px .5em 0px; --- > font-family:verdana, arial, helvetica, Sans-Serif; > color:inherit; > background-color:#DDEEFF; > padding:.2em; > border:0px; > margin:0px 0px .5em 0px; 675a684,895 > /* > * ここからkifubbs用の設定 > */ > > div.kifubbs form.post div.postform{ > clear: both; > margin: 15px 50px 0px 50px; > padding: 8px; > text-align: right; > font-size: smaller; > } > > div.kifubbs form.post div.postform span.postform_attension > { > color: #FF99BE; > } > > div.kifubbs form.post div.postform script span.message > { > } > > div.kifubbs hr > { > display: none; > } > > div.kifubbs div.column > { > clear: both; > margin: 30px 50px 0px 50px; > padding: 15px 30px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > } > > div.kifubbs div.withgoban > { > height: 440px; > } > > div.kifubbs div.column h2 > { > margin-right: 1em; > background-color: transparent; > font-size: smaller; > font-weight: bolder; > display: inline; > } > > div.kifubbs div.column span.name, > div.kifubbs div.column span.mail, > div.kifubbs div.column span.url, > div.kifubbs div.column span.number, > div.kifubbs div.column span.timestamp, > div.kifubbs div.column span.res, > div.kifubbs div.column span.ipaddress{ > font-size: smaller; > } > > div.kifubbs p.goban{ > margin: 15px 0px 15px 8px; > padding: 0px; > background-color: white; > float: right; > width: 310px; > } > > div.kifubbs p.goban span.warning{ > color: #FF99BE; > } > > div.kifubbs div.column p.text > { > } > > div.kifubbs div.column div.subcolumn > { > margin: 15px 0px 0px 50px; > padding: 15px 0px 0px 0px; > border-style: solid; > border-color: #cccccc; > border-width: 1px 0px 0px 0px; > } > > div.kifubbs div.column div.withgoban > { > clear: both; > height: 410px; > } > > div.kifubbs div.column div.subcolumn span.name, > div.kifubbs div.column div.subcolumn span.mail, > div.kifubbs div.column div.subcolumn span.url, > div.kifubbs div.column div.subcolumn span.number, > div.kifubbs div.column div.subcolumn span.timestamp, > div.kifubbs div.column div.subcolumn span.res, > div.kifubbs div.column div.subcolumn span.ipaddress{ > } > > div.kifubbs div.column div.subcolumn p.text > { > } > > div.kifubbs form.pagelist{ > clear: both; > margin: 0px 0px 0px 0px; > padding: 5px 0px 0px 5px; > border-style: solid; > border-color: #cccccc; > border-width: 0px; > background-color: #efefff; > text-align: right; > } > > div.kifubbs form.searchform{ > clear: both; > margin: 15px 50px 0px 50px; > padding: 15px 30px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > text-align: right; > font-size: smaller; > } > > div.kifubbs form.pagelist div.pagelist, > div.kifubbs form.searchform p.searchform{ > display: inline; > margin: 0px 0px 0px 0px; > padding: 0px; > font-size: smaller; > } > > div.kifubbs form.command div.commandform{ > clear: both; > margin: 0px 0px 0px 0px; > padding: 0px 5px 5px 0px; > border-style: solid; > border-color: #cccccc; > border-width: 0px; > background-color: #efffef; > text-align: right; > font-size: smaller; > } > > div.kifubbs p.message{ > margin: 15px 50px 0px 50px; > padding: 8px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > font-size: smaller; > color: #666666; > } > > div.kifubbs p.warning{ > margin: 15px 50px 0px 50px; > padding: 8px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > font-size: smaller; > color: #FF99BE; > } > > div.kifubbs ol.threadlist{ > margin: 15px 50px 0px 50px; > padding: 8px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > font-size: smaller; > } > > div.kifubbs ol.threadlist li{ > display: inline; > margin-right: 1em; > } > > div.kifubbs ol.allthreadlist, > div.kifubbs ul.searchlist{ > margin: 15px 50px 0px 50px; > padding: 8px; > border-style: solid; > border-color: #cccccc; > border-width: 1px; > background-color: white; > padding: 15px 30px 15px 50px; > } > > h2.new_post{ > text-align:center; > background-color:#dfffdf; > } > > div.bbs_thread_title{ > background-color:#dddddd; > padding:2px 2px 2px 2px; > margin-bottom:3px; > } > > /* > * kifubbs ここまで > * これだけが全てではないが、これだけあればほとんどのことができるはず。 > */ >
- skin/pukiwiki.skin.phpに修正
[user@localhost dir]$ diff original/pukiwiki.skin.php xoopsdir/modules/bwiki/skin/pukiwiki.skin.php 96a97,98 > <!-- > 159a162,163 > --> >
- plugin/kifubbs/display.inc.phpに下記修正
[user@localhost dir]$ diff original/plugin/kifubbs/display.inc.php.ORG xoopsdir/modules/bwiki/plugin/kifubbs/display.inc.php 71c71,74 < $ret = $this->get_warning(); --- > $ret = $this->newpost_anchor(); > $ret .= $this->get_pagelist(); > $ret .= $this->get_commandform(); > $ret .= $this->get_warning(); 76d78 < $ret .= $this->get_postform('new'); 78d79 < $ret .= $this->get_pagelist(); 80c81,82 < $ret .= $this->get_commandform(); --- > $ret .= $this->get_pagelist(); > $ret .= $this->get_postform('new'); 175a178,187 > * 新規投稿へのアンカーを表示 > */ > function newpost_anchor() > { > $str = '<a href="#bbs_new_post">新規投稿はここをクリック</a>' . "\n"; > return $str; > } > > > /** 231d242 < $str[] = '<hr />'; 233c244 < $str[] = '<p class="pagelist">'; --- > $str[] = '<div class="pagelist">'; 236a248 > $str[] = '<< ページ繰り >>'; 239c251 < $str[] = '<select name="kifubbs_page">'; --- > $str[] = ' もしくは <select name="kifubbs_page">'; 242c254 < $str[] = '<option selected="selected">' . $i . '</option>'; --- > $str[] = '<option value="' . $i . '" selected="selected">' . $i . '</option>'; 249,250c261,262 < $str[] = '<input type="submit" name="kifubbs_command" value="Jump" />'; < $str[] = '</p>'; --- > $str[] = 'ページ目へ<input type="submit" name="kifubbs_command" value="Jump" />'; > $str[] = '</div>'; 263a276 > /* 276a290,291 > */ > return; 291d305 < $str[] = '<hr />'; 293c307 < $str[] = '<p class="commandform">'; --- > $str[] = '<div class="commandform">'; 295c309 < $str[] = 'number <input type="text" name="kifubbs_num" value="" size="6" />'; --- > $str[] = '記事番号 <input type="text" name="kifubbs_num" value="" size="6" />'; 297c311 < $str[] = 'key <input type="password" name="kifubbs_key" value="' . $key . '" size="10" />'; --- > $str[] = '再編集キー <input type="password" name="kifubbs_key" value="' . $key . '" size="10" />'; 300,301c314,315 < $str[] = '<option value="showrewrite" selected="selected">rewrite</option>'; < $str[] = '<option value="delete">delete</option>'; --- > $str[] = '<option value="showrewrite" selected="selected">記事編集</option>'; > $str[] = '<option value="delete">記事削除</option>'; 303,304c317,318 < $str[] = '<input type="submit" value="submit" />'; < $str[] = '</p>'; --- > $str[] = '<input type="submit" value="送信" />'; > $str[] = '</div>'; 477c491,494 < --- > if($cmd == 'new') { > $str[] = "<br />\n"; > $str[] = "<h2 class=\"new_post\"><a name=\"bbs_new_post\">新規投稿フォーム</a></h2>\n"; > } 489c506 < $str[] = 'password <input type="password" name="kifubbs_key" value="' . $key . '" maxlength="10" size="10" /><br />'; --- > $str[] = '再編集キー<input type="password" name="kifubbs_key" value="' . $key . '" maxlength="10" size="10" /><br />'; 494c511 < $str[] = '<input type="submit" value="submit" />'; --- > $str[] = '<input type="submit" value="投稿" />'; 544a562 > $str[] = "<div class=\"bbs_thread_title\">\n"; 557c575,578 < $str[] = '<span class="res"><input type="hidden" name="kifubbs_resto" value="' . $col->num . '" /><input type="hidden" name="kifubbs_command" value="showres" /><input type="submit" value="返信" /></span>'; --- > $str[] = "</div>\n"; > } > if($ismain){ > $str[] = '<div class="res" align="right"><input type="hidden" name="kifubbs_resto" value="' . $col->num . '" /><input type="hidden" name="kifubbs_command" value="showres" /><input type="submit" value="このスレッドに返信" /></div>'; 630c651 < ?> \ No newline at end of file --- > ?>
作業履歴/2005-06-30 †
- well known port
参考:
(googleキャッシュ) - http://www.asi.co.jp/techinfo/unix/tcp.html
(googleキャッシュ) - http://document.othersight.jp/notes/broadband/knownports.html
redhat9 †
- samba - smb.confをいじってみた
参考:http://www.jp.redhat.com/manual/Doc80/RH-DOCS/rhl-cg-ja-8.0/s1-samba-configuring.html
(googleキャッシュ) - http://www.tcn.zaq.ne.jp/gara_k/pc_unix/pc_unix_006.htm
(googleキャッシュ) - http://www.aconus.com/~oyaji/samba/samba.htm
smb.confの「browseable」って、エクスプローラ上で対象フォルダの表示/非表示を切り替えてるだけなんだね。
フルパスでのアクセスは、smb.confに書いてあってsmbデーモンが起動してればbrowseableに無関係でできるよう。それから、smb.conf中のパラメータで使う%Uはアクセスしてるクライアント端末(windows)のログオンユーザのことみたい。
- ntp - ntpdateで時刻同期
参考:(googleキャッシュ) - http://www.mnet.ne.jp/~angie/exp/redhat-linux9.html
仕事場で使ってるツールで「サクラ時計」というのがあり。
それで指定してるnameserverにredhat8端末も時刻同期しましょう。# ntpdate hogehoge.name.server
コマンドとしてはこれでOK。cronとかで定期的に走らせてやればバッチリ。
xoops †
- レイアウト修正
- テーマをdefaultに。
- modules/news/templates/blocks/news_block_new.htmlで、
トップページのニュース表示を日付が頭に来るように編集。
その後モジュールのアップデートをしないと反映されないらしい。 - 下記の極悪な配色決め打ちのbgcolor属性を削除。
templates_c/%%02^02D^02DF536F%%theme.html.php中の <td width="20%" bgcolor="#EFEFEF">
※ROOT/theme/配下を変更しても見栄えが変わらないのは、systemモジュールの設定でthemeに関する項目の影響があるかも。
そこを「反映する」ようにしておけば即座に変更がtemplates_c/に反映されるんだはず。 - 検索フォームの修正
xoopsdir/modules/system/templates/blocks/system_block_search.html
を編集。 - Q&Aの頭に検索フォームを。
- B-wikiのヘッドに新着告知事項を。
- xoopsスタートは告知事項に。余計なモンは省いた。
- B-wiki
skin/pukiwiki.css.phpで、searchform・pagelist・commandformのdivスタイルは同じにした法がいいことに気づく(色だけ変える)
また、plugin/kifubbs/display.inc.phpの中でcommandformがcommandになってる部分発見。
作業履歴/2005-07-04 †
gvim †
- autodate
参考:(googleキャッシュ) - http://members.jcom.home.ne.jp/advweb/build/vim/autodate_vim.html
俺のクライアントで使ってるvimのplugin「autodate」が効かねぇ(ノД`)
どういうこっちゃ。ハラタツー><
この辺から、すでにCentOSだはず。
作業履歴/2005-07-11 †
CentOS各種設定 †
- VNCserver
参考:(googleキャッシュ) - http://u-mex.plala.jp/index2.php?%27%27vnc-server%A4%CE%C0%DF%C4%EA%27%27
OSインストール直後のままユーザ作ってそのままvncserverコマンドやっちゃうと、twnでデスクトップが立ち上がってしまう。
そこで上記URLを参考に、ユーザにスケルトンを用意しておくことにした。# switchdesk GNOME # mkdir /etc/skel/.vnc # cp /etc/X11/xinit/xinitrc /etc/skel/.vnc/
これで、どのユーザでもvncserverコマンドを実行した時にはGNOMEデスクトップがVNCserverで起動される。
あとは適切なディスプレイ番号にVNCclientでアクセスすればOK。
作業履歴/2005-07-20 †
CentOS †
- システムデフォルト文字コードと less と lv
参考:http://www.jp.redhat.com/FAQ/index_support_2.html#17/etc/sysconfig/i18n LANG="ja_JP.eucJP" SUPPORTED="ja_JP.eucJP:ja_JP.UTF-8:ja_JP.SJIS:ja_JP:ja:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16" /etc/man.config # PAGER /usr/bin/less -iRs PAGER /usr/bin/lv -i
と編集してeuc-jpをシステムデフォルト文字コードに。
さらにlv-4.51-5.i386.rpmをferora core4のパッケージから持ってきてインストール。
less をlvにシンボリックリンクしてしまえ。# mv /usr/bin/less /usr/bin/less.ORG # ln -s /usr/bin/lv /usr/bin/less
作業履歴/2005-07-22 †
CentOS †
- SElinux
参考:(googleキャッシュ) - http://www.tomo.ac/goodstream/fedoracore/selinux/tips.html// 有効/無効を確認するコマンド # getenforce // 有効/無効をセットするコマンド # setenforce 1 # setenforce 0 // 起動時の有効/無効を設定するファイル /etc/selinux/config
ちょいメモ †
- gvim
プラグイン等の変数設定状況の確認は:let
また、kaoriya版gvimには便利なコマンドCdCurren
がある。(参考)
カレントディレクトリを現在開いているファイルのあるところに移動するそうな。
- gvim - IEのソース表示に別エディタを設定する
参考:(googleキャッシュ) - http://www.atmarkit.co.jp/fwin2k/win2ktips/286iesourceview/iesourceview.html
IEのソース表示にgvimを設定してみた。
・googleはUTF-8のようだが、ちゃんとコード変換して表示してくれた。
・pukiwiki.orgもUTF-8で変換表示に問題なし。
・FSwikiもeuc-jpで変換表示に問題なし。
・しかし。xoopsのソース表示のeuc-jpをちゃんと判別してくれない(ノД`)
なんでや。
作業履歴/2005-07-26 †
xoops †
- Newsモジュールのテンプレート編集
テンプレートに手を加えて、表示記事が無い場合にはその旨の文言を表示するように設定。- ''編集対象:news_index.html
<!-- start news item loop --> +<{if $stories > 0}> <{section name=i loop=$stories}> 〜 〜 <{/section}> +<{else}> +<div align="center" style="font-weight:900;font-size:15px;">■表示する記事がありません■</div> +<br /> +<br /> +<br /> +<{/if}> <!-- end news item loop -->
- ''編集対象:news_index.html
作業履歴/2005-07-29 †
PHPスクリプト †
- ニュース記事の掲載内容プリントアウトのスクリプト
装飾タグの解釈方法について、xoopsコードからパクってこれないか調べてみた。- まずはとっかかり
$ find ./ -name "*.php" | xargs grep -n "xx-large"
あたり出力結果から./include/xoopscodes.php:42: $sizearray = array("xx-small", "x-small", "small
がクサイと思った。
が、ここでは配列しか定義してなかったので、今度はsizearrayを使ってるファイルを探す。$ find ./ -name "*.php" | xargs grep -n "sizearray"
が、これは見当違いだった。 - 別の切り口
でも「xoopscodes.php」はポイントになるキーワードだと考え、日本xoops公式サイトにて「xoopscode」で検索。
フォーラムの「自作モジュールの中でXoopsのエディターを使いたい」というスレッドにてミソになってそうな関数「MyTextSanitizer()」を見つけた。 - ビンゴ
$ find ./ -name "*.php" | xargs grep -n "MyTextSanitizer" 〜略〜 ./class/module.textsanitizer.php:44:class MyTextSanitizer 〜略〜
で大当たりだった。
この関数をパクって、装飾タグを変換するようにコーディングしてみよう。
- まずはとっかかり
作業履歴/2005-08-04 †
shift-jisで書かれたweb文書ディレクトリの全文検索について †
- namazuを使えるか?
namazuを使って全文検索ができるかどうか。- CentOS版のnamazuパッケージ要確認。
- namazuでの検索が複数文字コードに対応しているかどうか
- Hyper Estraier
この辺(googleキャッシュ)より、namazuはわりと古いとか
そこでHyper Estraierってやつを試してみようかー?なんて思った。
でもちょいと導入に一手間要りそう。configure通ったのにmakeで失敗しよったよ(ノД`)
明日にでもやり直してみるか。
ちょいメモ †
- phpでaccessのmdbを開けるか? - 続き
方法としては、以下2点がある模様。- PHP5のWindows版でCOM extentionを使う
参考:googleキャッシュ - http://php.planetmirror.com/manual/ja/ref.com.php
必要な条件:
mdbを置いてあるWinサーバ上にPHP5が置いてあること。
そのPHP5のアウトプットを受け取れること。
- ODBC経由でアクセスする
参考:googleキャッシュ - http://www.doblog.com/weblog/myblog/33111?STYPE=1&KEY=62708
参考:googleキャッシュ - http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9874&forum=10&1
必要な条件:
mdbを置いてあるWinサーバ上で、ODBC経由で該当mdbファイルへのアクセスができるように設定されていること。
該当WinサーバのODBC接続用のポートが開かれていること。
- PHP5のWindows版でCOM extentionを使う
- 上記のような言い方で当たってるのかどうかもわからんけど。
なんとなくこんな感じだはず。
ほんとにこの件が必要、もしくは有用なら、突っ込んで実験してみよう。
作業履歴/2005-08-05 †
全文検索について †
- Hyper Estraier
コンパイル失敗するのは何かのライブラリが足りないからっぽい。
slocateで見てみるとlibiconvがないでやんの。
配布ミラー見てもCentOSのパッケージにlibiconvはないっぽい。
そこでlibiconv1.9.1を http://www.gnu.org/software/libiconv/ から持って来てコンパイル/インストール。
それからHyper Estraierを再コンパイル。
おっけぃ通った(・∀・)b
そして検索できた!!
作業履歴/2005-08-08 †
phpスクリプト †
- xoopsニュースモジュールの記事をのExcel出力
参考:http://ns1.php.gr.jp/pipermail/php-users/2003-February/013654.html
参考:(googleキャッシュ ) - http://www.fukulog.com/memo/2005-07-06-9.html
参考:http://www.doyouphp.jp/sample/sample_ora_excel.shtml
PEARにExcelファイルとして出力するようなclass(Spreadsheet_Excel_Writer)があるそうな。
こいつに取り組んでみよう。- Spreadsheet_Excel_Writerのインストール
PEARが入ってれば、PEARコマンドでインストールできる。
依存性の解決の為にOLEってやつも併せてインストール。[root@localhost bin]# pear list Installed packages: =================== Package Version State Archive_Tar 1.1 stable Console_Getopt 1.2 stable HTML_Template_IT 1.1 stable Net_UserAgent_Detect 2.0.1 stable PEAR 1.3.5 stable XML_RPC 1.2.2 stable [root@localhost bin]# pear install /home/user/pack/tarball/Spreadsheet_Excel_Writer-0.8.tgz requires package `OLE' >= 0.5 Spreadsheet_Excel_Writer: Dependencies failed [root@localhost bin]# pear install /home/user/pack/tarball/OLE-0.5.tgz install ok: OLE 0.5 [root@localhost bin]# pear install /home/user/pack/tarball/Spreadsheet_Excel_Writer-0.8.tgz install ok: Spreadsheet_Excel_Writer 0.8 [root@localhost bin]# pear install /home/user/pack/tarball/Spreadsheet_Excel_Writer-0.8.tgz Spreadsheet_Excel_Writer already installed
- Spreadsheet_Excel_Writerのインストール
- csv出力
とりあえず、やったことがあるからラクチンっていうことで、Excelファイル出力よりも先にcsv形式での出力を実装。
こんなんなった。<?php // 全体用変数定義 $site_IP = "x.x.x.x"; $site_URL = "http://$site_IP/group/"; $mode = $_REQUEST['mode']; ////////////////////////////////////////////// // スクリプト本体 $xoopsDB = mysql_connect("localhost","dbuser","xoops_DB") or die("接続できませんでした"); mysql_select_db("DBname") or die("データベースを選択できませんでした"); // 登録ユーザ配列準備 $result = mysql_query("select * from group_users"); while ( $line = mysql_fetch_array($result, MYSQL_ASSOC) ){ $num = $line[uid]; $user[$num] = $line[name]; } // story配列から必要データを抽出 $result = mysql_query("select * from group_stories order by published"); while ( $line = mysql_fetch_array($result, MYSQL_ASSOC) ){ // print_r($line); $story_data[] = layout_table_data($line,$user,$mode); } mysql_close($xoopsDB); // データをアウトプット(モードによって振り分け) // mode : "csv", "default" switch ( $mode ){ case "csv": array_push($story_data,mb_convert_encoding("連絡開始日,連絡終了日,記述者,連絡事項\n", "SJIS-WIN", "EUC-JP")); $story_data = array_reverse($story_data); $filename = date("Ymd_His")."morning.csv"; header("Content-disposition: attachment; filename=$filename"); header("Content-Type: application/octet-stream; name=$filename"); foreach($story_data as $tmp){ echo $tmp; } break; default: array_push($story_data,layout_table_title()); $story_data = array_reverse($story_data); header("Content-Type: text/html;charset:EUC-JP"); echo header_output($site_URL); foreach($story_data as $tmp){ echo $tmp; } echo footer_output(); } ////////////////////////////////////////////// ////////////////////////////////////////////// // レイアウト用記述部分 ////////////////////////////////////////////// // ヘッダ〜ボディを生成 function header_output($site_URL){ $str = <<<HTML_END <html> <head> <title>あるニュース記事</title> <link rel="stylesheet" type="text/css" media="screen,print" href="./print_out.css" /> </head> <body> [<a href="$site_URL">groupページへ戻る</a>] <h1 class="morning_title" align="center">ニュース記事</h1> <table border="0" cellpadding="0" cellspacing="0"> HTML_END; return $str; } ////////////////////////////////////////////// // テーブル・ボディ・HTML閉じ function footer_output(){ $str = <<<HTML_END </table> </body> </html> HTML_END; return $str; } ////////////////////////////////////////////// // テーブルの項目タイトル部分 function layout_table_title(){ $str = <<<HTML_END <tr class="tr_terms"> <th align="center" width="50">開始日</th> <th align="center" width="50">終了日</th> <th align="center" width="80">記述者</th> <th align="center" >連絡事項</th> </tr> HTML_END; return $str; } ////////////////////////////////////////////// // 各データの表示テーブル function layout_table_data($line,$user,$mode){ $now_time = time(); $num = $line[uid]; if( empty($line[expired]) || ( $line[topicid] == "2" && $now_time > $line[published] && $now_time < $line[expired] ) ){ switch ($mode){ case "csv": $data = date("n月j日",$line[published]).","; $data .= date("n月j日",$line[expired]).","; $data .= $user[$num].","; $line_tmp = xoopsCodeDecode($line[hometext],1); $line_tmp = ereg_replace("\r\n","[ ]",str_replace(",",",",$line_tmp)); $line_tmp = ereg_replace("<[^>]+>","",$line_tmp); $data .= $line_tmp; $line_tmp = xoopsCodeDecode($line[bodytext],1); $line_tmp = ereg_replace("\r\n","",str_replace(",",",",$line_tmp)); // $line_tmp = ereg_replace("<.+>","",$line_tmp); $data .= $line_tmp."\n"; $data = mb_convert_encoding($data,"SJIS-WIN", "EUC-JP"); break; default: $data = "\t<tr>\n"; $data .= "\t\t<td class=\"start\" valign=\"top\">".date("n月j日",$line[published])."<br />".date("H:i",$line[published])."</td>\n"; $data .= "\t\t<td class=\"end\" valign=\"top\">".date("n月j日",$line[expired])."<br />".date("H:i",$line[expired])."</td>\n"; $data .= "\t\t<td class=\"person\" valign=\"top\">$user[$num]</td>\n"; $data .= "\t\t<td class=\"message\" valign=\"top\">\n"; $line_tmp = xoopsCodeDecode($line[hometext],1); $data .= nl2br($line_tmp)."\n<br /><br />"; $line_tmp = xoopsCodeDecode($line[bodytext],1); $data .= nl2br($line_tmp)."\n\t\t</td>\n\t</tr>\n"; } } else { $data = ""; } return $data; } ////////////////////////////////////////////// ////////////////////////////////////////////// // xoopsエディタの装飾タグ変換用関数(xoopsからのパクリ function xoopsCodeDecode(&$text, $allowimage) { $patterns = array(); $replacements = array(); // RMV: added new markup for intrasite url (allows easier site moves) // TODO: automatically convert other URLs to this format if XOOPS_URL matches?? $patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1](.*)\[\/siteurl\]/sU"; $replacements[] = '<a href="http://'.$site_IP.'/\\2" target="_blank">\\3</a>'; $patterns[] = "/\[url=(['\"]?)(http[s]?:\/\/[^\"'<>]*)\\1](.*)\[\/url\]/sU"; $replacements[] = '<a href="\\2" target="_blank">\\3</a>'; $patterns[] = "/\[url=(['\"]?)(ftp?:\/\/[^\"'<>]*)\\1](.*)\[\/url\]/sU"; $replacements[] = '<a href="\\2" target="_blank">\\3</a>'; $patterns[] = "/\[url=(['\"]?)([^\"'<>]*)\\1](.*)\[\/url\]/sU"; $replacements[] = '<a href="http://\\2" target="_blank">\\3</a>'; $patterns[] = "/\[color=(['\"]?)([a-zA-Z0-9]*)\\1](.*)\[\/color\]/sU"; $replacements[] = '<span style="color: #\\2;">\\3</span>'; $patterns[] = "/\[size=(['\"]?)([a-z0-9-]*)\\1](.*)\[\/size\]/sU"; $replacements[] = '<span style="font-size: \\2;">\\3</span>'; $patterns[] = "/\[font=(['\"]?)([^;<>\*\(\)\"']*)\\1](.*)\[\/font\]/sU"; $replacements[] = '<span style="font-family: \\2;">\\3</span>'; $patterns[] = "/\[email]([^;<>\*\(\)\"']*)\[\/email\]/sU"; $replacements[] = '<a href="mailto:\\1">\\1</a>'; $patterns[] = "/\[b](.*)\[\/b\]/sU"; $replacements[] = '<b>\\1</b>'; $patterns[] = "/\[i](.*)\[\/i\]/sU"; $replacements[] = '<i>\\1</i>'; $patterns[] = "/\[u](.*)\[\/u\]/sU"; $replacements[] = '<u>\\1</u>'; $patterns[] = "/\[d](.*)\[\/d\]/sU"; $replacements[] = '<del>\\1</del>'; //$patterns[] = "/\[li](.*)\[\/li\]/sU"; //$replacements[] = '<li>\\1</li>'; $patterns[] = "/\[img align=(['\"]?)(left|center|right)\\1]([^\"\(\)\?\&'<>]*)\[\/img\]/sU"; $patterns[] = "/\[img]([^\"\(\)\?\&'<>]*)\[\/img\]/sU"; $patterns[] = "/\[img align=(['\"]?)(left|center|right)\\1 id=(['\"]?)([0-9]*)\\3]([^\"\(\)\?\&'<>]*)\[\/img\]/sU"; $patterns[] = "/\[img id=(['\"]?)([0-9]*)\\1]([^\"\(\)\?\&'<>]*)\[\/img\]/sU"; if ($allowimage != 1) { $replacements[] = '<a href="\\3" target="_blank">\\3</a>'; $replacements[] = '<a href="\\1" target="_blank">\\1</a>'; $replacements[] = '<a href="http://'.$site_IP.'/image.php?id=\\4" target="_blank">\\4</a>'; $replacements[] = '<a href="http://'.$site_IP.'/image.php?id=\\2" target="_blank">\\3</a>'; } else { $replacements[] = '<img src="\\3" align="\\2" alt="" />'; $replacements[] = '<img src="\\1" alt="" />'; $replacements[] = '<img src="http://'.$site_IP.'/image.php?id=\\4" align="\\2" alt="\\4" />'; $replacements[] = '<img src="http://'.$site_IP.'/image.php?id=\\2" alt="\\3" />'; } $patterns[] = "/\[quote]/sU"; $replacements[] = '引用:<div class="xoopsQuote"><blockquote>'; //$replacements[] = 'Quote: <div class="xoopsQuote"><blockquote>'; $patterns[] = "/\[\/quote]/sU"; $replacements[] = '</blockquote></div>'; $patterns[] = "/javascript:/si"; $replacements[] = "java script:"; $patterns[] = "/about:/si"; $replacements[] = "about :"; return preg_replace($patterns, $replacements, $text); } ?>
作業履歴/2005-08-22 †
xoops †
- プライベートメッセージ(pm)機能
プライベートメッセージを作成する画面でのテキストエリアのサイズ変更は下記の部分の数値を変更することでできる。- pmlite.php
120行目: xoopsCodeTarea("message",50,20);
- pmlite.php
- サーバを移設する場合
参考:xoops.sourceforge.jpのHOWTO/サーバー移設
上記リンクにてサーバ移設やデータバックアップ手順への参考情報あり。