« 2005年02月 | メイン | 2005年04月 »
2005年03月31日
Vine の apt で入れられるパッケージ名を探す
[ カテゴリ : memo - 自宅サーバ設定(Linux、たまにWindows) ]
まぁ、 ftp で見るとか言う手もあるんだが、そこまでしなくても良い場合も多い。
「samba ナントカってパッケージは何があるの?」とかいうときだ。
そんなときは
# strings /var/cache/apt/pkgcache.bin | grep samba
とかやればよい。早いし。
strings は binutil に入ってます。
でも、もっとまっとうな方法もありそうなもんだが。
#コメントいただきましたが、 apt-cache search ってのがまっとうな方法のようですw(でも遅いよな、これ)
投稿者 JK : 13:52 | コメント (3) | トラックバック
2005年03月29日
Vine 3.1 の apache で 特定 Virtual Domain で suEXEC する。
[ カテゴリ : memo - 自宅サーバ設定(Linux、たまにWindows) ]
1:
# chmod 4711 /usr/sbin/suexec
する。
2:
IP Addresss xxx.xxx.xxx.xxx で
virtualdomainname.pizzica.to というホスト名によるバーチャルドメインで
User: username, Group: groupname という権限で cgi を動かす場合の httpd.conf 例
NameVirtualHost xxx.xxx.xxx.xxx
<VirtualHost xxx.xxx.xxx.xxx>
User username
Group groupname
ServerAdmin mailaddress@yourdomain
DocumentRoot /home/httpd/html/somefolder
ServerName virtualdomainname.pizzica.to
ErrorLog /path/error_log
CustomLog /path/access_log combined
</VirtualHost>
NameVirtualHost はどこかで1つだけ指定する。
★重要
/home/httpd/html/somefolder は /home/httpd/html/ の中にある必要がある。
/home/httpd/html/ の外へのシンボリックリンクも不可。
3:
/home/httpd/html/somefolder/index.html が
http://virtualdomainname.pizzica.to/index.html に対応するって具合なので、好きにファイルをいろいろ置く。
ただし、(重要)
cgi を置くサブディレクトリの permission は 755 とかに。
cgi の permission も 755 とかに。
(ユーザー権限で、誰でも書き換えられるファイル・誰でも書き換えられるディレクトリ内のファイルを cgi として実行するのは危険なので、やってくれない)
4:
# /sbin/service httpd restart
して再起動。
うまくいかないときは、
上記 httpd.conf に書いた error_log とか
/var/log/httpd/suexec.log とか
/var/log/httpd/error_log とか
そのへんを見る。
2005年03月25日
IEコンポーネントで表示している文書のBODY内HTMLを得る
[ カテゴリ : memo - VC6 で IEコンポーネント ]
前のメモで作った最小限の奴を編集して、BODY 内容(HTML)を CString に格納したりファイルに保存したり。
もちろん、見るだけじゃなくてBODY 加工(特定ワードを強調表示する 差し込んだり)のための情報収集をしたいわけだが、、、、
問題点は、ここで得られる HTML はタグとか確かにあるものの、いわゆるソースとは違うという点。タグが大文字になっていたり \n の場所が違ったりなんだり。
あと、ヘッダ情報はどーもソースで得るのは大変らしい。
いずれにせよ、本文のタグを変更するなどしていじりたい場合は、ここで得られる内容がどうなるか把握しておかないとならない。
なので、サンプルのようにファイルに保存して、内容みてみることが必要だったので、そこまでをメモに。
(HTML 書き換えについては別途メモを書く予定。カテゴリアーカイブで見てね)
1. CHtmlView 派生クラスの cpp にて、
#include <mshtml.h>
#include <atlbase.h>
する。
2. ClassWizard かなんかで、仮想関数 OnDocumentComplete を実装する。
なお、OnBeforeNavigate2 とか OnNavigateComplete ではダメ。
後述の get_body が失敗する。(IHTMLDocument2 取得くらいはいけたり)
3.CHtmlView の OnDocumentComlete イベント発生時(またはその後)に
・GetHtmlDocument() で LPDISPATCH を 得る
・QueryInterface で IHTMLDocument2* を得る
・get_body で IHTMLElement* を得る
・QueryInterface で IHTMLTxtRange* を得る
・get_htmlText で BSTR* を得る(=BSTR型の文字列として BODY 内 HTML を得る)
・BSTR は CString に代入できる。
まぁ、ソース見た方が早いね。
IHTMLDocument2 *lpHtmlDocument = NULL;
LPDISPATCH lpDispatch = NULL;
IHTMLElement *lpBodyElm;
IHTMLBodyElement *lpBody;
IHTMLTxtRange *lpTxtRange;lpDispatch = this->GetHtmlDocument();
if ( !lpDispatch ) return;lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&lpHtmlDocument);
lpDispatch->Release();
if ( !lpHtmlDocument ) return;lpHtmlDocument->get_body(&lpBodyElm);
lpHtmlDocument->Release();
if ( !lpBodyElm ) return;lpBodyElm->QueryInterface(IID_IHTMLBodyElement,(void**)&lpBody);
lpBodyElm->Release();
if ( !lpBody ) return;lpBody->createTextRange(&lpTxtRange);
lpBody->Release();
if (!lpTxtRange) return;CString str;
BSTR* p = new BSTR;
lpTxtRange->get_htmlText( p );
str = *p;
delete p;CFile file;
file.Open("c:\\out.txt", CFile::modeCreate|CFile::modeWrite,NULL );
file.Write( (LPCTSTR)str, str.GetLength() );
file.Close();
VC6 で IEコンポーネント
[ カテゴリ : memo - VC6 で IEコンポーネント ]
とりあえず動かすところを。
・MFC AppWizard で、View を CHtmlView にする
・できたソースの CHtmlView の OnInitialUpdate関数の中に、
Navigate2 関数を呼ぶパラメータとして URL が定数であるので、
好きなところに書き換える。
これでとりあえず動く。これだけなら楽勝。
んで help で CHtmlView とか見ていけばいいわけで。
ま、わざわざ自作するからには body を読んだりなんだりしたいわけで、
でも、ヘルプじゃわかんねーので、それはまた別のメモってことで。
2005年03月14日
CYGWIN で w3m を build する
[ カテゴリ : memo - CUI環境 ]
後になってわかったが、cygwin-je で入れればいいみたい(アホか・・・)
CYGWIN の setup.exe で、URLとして
http://cygwin-je.sourceforge.jp/cygwin_je
を与えれば、w3m パッケージいれられる。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
テキストブラウザである w3m の build。 CYGWIN の場合。
gcc とかは、CYGWIN の setup.exe あたりで入れてしまう。
で、gc が setup.exe では入らないので、gc をこさえてから、w3m をこさえることに。
でも自分はいつも gc を入れるのを忘れて無駄に時間を使うのでメモっておこう。
GC http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
w3m http://w3m.sourceforge.net/
からソースの ナントカ.tar.gz ファイル (tarball) をひろってくる。
どっちも tar zxvf で解凍してできたディレクトリで
$ ./configure
$ make
$ make install
でおしまい・・・・・と思いきや!
w3m の make で error が出る。
> mv: cannot stat `t-ja.gmo': No such file or directory
しかし、この時点で w3m.exe は完成している。
make install すると、やっぱり同じようなエラーで終わるが
/usr/local/bin/w3m.exe は install されている。
使うと・・・・動く。いいんだろうか、これで。