Apr 12, 2023
Debianをupgrade
「うろこシティ」サーバのLinuxをbusterからbullseyeにupgradeした。
「/etc/apt/sources.list」の書式がbusterのときとちょっと変わる。これはリリースノートに書いてあると思う。
灰皿町サーバをupgradeしたときと同じ問題が出た。proftpdの設定ファイルの設定項目の1カ所を変える必要がある。
proftpd problems after update buster to bullseye
上のページを見ればわかるが、22行目と書いてあるが、今日viで書き加えたのはもっと前だった。
あとは、nvidiaのドライバーを手動で更新する必要があった。「apt-get install nvidia-driver-libs」をリカバリーモードで実行した。
ほかには問題が出なかった。
写真の左側のパソコンが「うろこシティ」のサーバ。
(下の英語文はchatGPTによる翻訳です)
Upgrading Debian
I upgraded the Linux on the "Urokocity" server from buster to bullseye.
The format of "/etc/apt/sources.list" is a little different from when it was buster. This should be mentioned in the release notes.
I had the same issue as when I upgraded the Ashtray Town server. I needed to change one setting in the proftpd configuration file.
There were proftpd problems after updating from buster to bullseye.
proftpd problems after update buster to bullseye
You can see it on the page above, which says 22nd line, but what I added today with vi was even earlier.
In addition, I had to manually update the nvidia driver. I ran "apt-get install nvidia-driver-libs" in recovery mode.
There were no other issues.
The computer on the left in the photo is the "Urokocity" server.
Dec 04, 2020
imageindexによるwebalbumの作成
nucleus blogでは志郎康さんの写真投稿は比較的少なかったので、全投稿で1アルバムでもよさそうだった。
僕も含めてほかの方の写真・画像はせめて1年ずつ分割しないと見にくくなりそうだ。
というわけで、2004年の僕の分のアルバムをテストで作ってみた。
たくさんあるので、アルバムの目次ファイルを作るので、1階層ディレクトリが増える。
2004年のアルバムをざっと見ると、ウチのカオスやベルがまだいる。
また夏に桐田さんと式根島に行っているのがわかる。
Dec 03, 2020
imageindexを使う
imageindexはperlのプログラムで、コマンドラインからディレクトリ中の画像ファイルをHTML形式でアルバムにする。
写真のメタ情報(フラッシュを焚いていないとか、絞りなど)を取り出して、detailsに表示する。またスライドショーページを生成する。
下がコマンドライン実行の例。
extractingはメタ情報を取り出しているという意味。
補助的にホームディレクトリに「.imageindexrc」というファイルを作り、たとえば下記は上位ディレクトリの「index.html」のリンクをコマンドラインで指定している。
perlのプログラムの一部になるので、行頭の「#」以下は無視されるので、下の画像で使っているのは1行だけ。
ほかは作業しているときのメモのようなもの。
perlのプログラムなので、半角空白を使うときにはコマンドラインにシングルコーテーションマークを使う。
Feb 11, 2008
linux-imageがupgradeされるとき
1月23日付でDebian GNU/Linux etch は2.6.18-5-686から2.6.18-6-6-686にupgradeされた。
kernel-imageという呼び方はなくなり、linux-imageになっている。
Linux debian 2.6.18-6-686 #1 SMP Wed Jan 23 03:23:22 UTC 2008 i686 GNU/Linux
これに伴い、upgradeする際にnvidia-kernel-legacyもupgradeする必要がある。
以下のようにすると、linux-image-2.6.18-6-686も引きずられてupgradeされて、nvidiaデバイスドライバは再ビルドされて、「m-a m-i nvidia-kernel-legacy-source」を実行する必要がないことがわかった。ただし、これはlegacy varsionの場合なので、新しいカードならlegacyがついていないPackageをインストールする。
#apt-get install linux-headers-2.6.18-6-686
#apt-get install nvidia-kernel-legacy-2.6.18-6-686
これで再起動するとkernelもnvidiaデバイスドライバもupgradeされている。
初めてnvidiaデバイスドライバを使うときには、
nvidia-glx-legacy
nivdia-kernel-source
をインストールしておく必要がある。また、glxinfoを取得するためにetchからは「mesa-utils」が必要になっている。
Sep 01, 2007
captchaによるwritebackの画像認証
コメントに画像認証を導入を参考にして、captchaによる画像認証をこのblosxom blogに導入した。
1 3つのpluginをblosxomのpluginディレクトリに入れる。
新しく入れるpluginは、captchaとinterpolate_fancy、error(名前を00errorにしておく)の3つ。
このうち、captchaとerrorはBill Wardさんのサイトから入手できる。
interpolate_fancyは、blosxom :: the zen of blogging :: pluginsから入手できる。このサイトに行った際、字が小さいのでブラウザの「編集」から「このサイトを検索」で、interpolateを検索するとすぐ見つけられると思う。
2 captcha画像を一時的に保存するディレクトリを作る(captcha pluginにある説明参照)。
3 captchaとwritebackを書き換える。
captchaは、画像を保存するディレクトリ(permissionは707か777で、captchaというディレクトリを作成する)とアクセスできるURLを指定して書き換える必要がある。通常変更箇所は2カ所
次にblosxom starter kitの場合には、writback pluginに1行を挿入する。挿入するコードはcaptchaに書いてあるが、場所はJcodeで文字コードをコンバートするブロックのすぐ下(カーリーパーレンの下、print行のすぐ前)。
4 error.htmlというflavourを作る。内容は最低「$error::msg」を書く。
5 blosxom starter kitでは「foot.htm」に「captcha」に出ているformを参考にコピーアンドペーストする。
May 18, 2006
kernelのupgrade時、nvidiaデバイスドライバを再ビルドする
「apt-get upgrade」でkernel-imageの新しいのが「保留」されるときは、
#apt-get -u dist-upgrade
とやれば、grubも書き換えられて新しいkernelで起動させることができるが、ここでnon-freeコンポーネントのnvidiaデバイスドライバを使っていた場合、新たにモジュールをビルドしなければならない。
この際、画面にプロンプトが見えない場合には、モニタのメニューで調整して見えるようにしてから、jfbtermを起動して日本語表示にする。
#jc
そして、
#m-a a-i nvidia-kernel-source
とすると、kernel-headersがない、と言われるので、upgradeされるバージョンのヘッダをインストールする。
#apt-get install kernel-headers-2.6.8-3-686
としてから上のコマンドを実行すると、ビルドされる。
前にnvidiaデバイスドライバをインストールしていれば、
nvidia-glx
はインストールされていて、「/etc/X11/XF86Config-4」の「Generic Video Card」の「section "Device"」の欄はすでに、
Driver "nvidia"
になっているはずであるが心配だったら調べる。
これで再起動すると「nvidia」のロゴが最初に表示されて正常にXが起動される。
Apr 02, 2006
blogの日本語エンコーディング
b2evolutionとMyscrapbookを試した。
両方ともPHPとMySQLを組み合わせたblogである。
両方文字コードはUTF-8。
灰皿町のPHPコードとMySQLのデータはいちおうEUCにしてあるので、PHPコードも保存するデータもEUCにするのがほんとうはピュアだ。
しかし、なんとなくUTF-8でやったほうがよさそうであるので、以下の内容の「.htaccess」ファイルを作り、UTF-8を使うようにした。
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
この設定は、このファイル「.htaccess」を置いたディレクトリ以下で、「php.ini」より優先される。
唯一問題は、phpmyadminでデータを表示するときにutf-8を選ばなければいけないことだが、どうもEUCより日本語の問題があまり出ないような気がする。
このblosxom blogはUTF-8でスクリプトは書かれていて、データもUTF-8であるが、スクリプトもデータも、perlのCGIのみで完結するエンコーディングなので、ためらいなくこの設定にできる。
こんどb2evolutionでUTF-8を使ってみて、PHPを使うときにもそんなにデータのエンコードの違いを恐れることはないように感じてきた。
Mar 11, 2006
MySQLでのLIKEとREGEXPの挙動
MySQLの保存文字エンコードがEUCで、PHPスクリプトがEUCである。
これで検索スクリプトを作っていて、パターンマッチング演算子「LIKE」を使っていたのだが、どうも変な感じでヒットする。たとえば魚へんの「鱒」で「鱗造」がヒットしてしまうのだ。これが長い文字列なら問題ないので、まあいいかと思っていて、ふと正規表現によるパターンマッチング演算子「REGEXP」を使ったらまったく問題なく検索されることがわかった。
つまり、
$sql .= " WHERE (bbs_msg LIKE '%".cnv_sqlstr($key)."%')";
ではなくて、
$sql .= " WHERE (bbs_msg REGEXP '".cnv_sqlstr($key)."')";
を使えば問題ない。
内部エンコードがutf-8でスクリプトがutf-8なら「LIKE」でも問題がないかもしれないと想像する。ウチのMySQLはEUCでインストールしているので試せない。
Mar 02, 2006
MySQLのデータベースからデータを抽出する
PHPなどとMySQLの連携だと、MySQLの文法の学習も必要になる。
またにわか勉強(^^)。
下の記事で作ったデータベースとテーブルから、投稿記事の多い順に書き手の方々を抽出する。それも100件以上書かれた方(自分含む^^)を。
書き手でグループ化して、その書き手の書いた数を「as」で名前をつけて、それで並べる。
mysql> select count(bbs_auth) as cnt,bbs_auth from gs_book group by bbs_auth having count(bbs_auth)>=100 order by cnt desc;
+------+------------------+
| cnt | bbs_auth |
+------+------------------+
| 1449 | 清水鱗造 |
| 1078 | 冨澤守治 |
| 525 | 桐田真輔 |
| 448 | mitsui K&T |
| 414 | A・T |
| 285 | TISATO |
| 238 | 河合民子 |
| 210 | 木村 |
| 196 | 関ofuji |
| 164 | tomizawa |
| 122 | ぺこ (¨*)(*¨) |
| 121 | (*''*)peco! |
| 106 | (*''*)peco! |
+------+------------------+
13 rows in set (0.10 sec)
Feb 23, 2006
MySQLのデータベースにBBSのログファイルをインポートする
データベースとPerlないしPHPの連携は、進化するwebページに必須のことのようだ。
そこで、試しにBBSのログファイルをデータベースにインポートしてみた。
まずMySQLにBBSというデータベースを作り、そこに、gs_bookというテーブルを作る。
これはPhpmyadminから実行した。
CREATE TABLE gs_book (
id int(11) NOT NULL,
bbs_date text NOT NULL,
bbs_auth text NOT NULL,
bbs_mail text,
bbs_msg text NOT NULL,
bbs_ip text NOT NULL,
PRIMARY KEY (id)
);
この場合、どうしてもPRIMARY KEYを設定する必要があるので、ログの各行に通番をふる。しかも通常の順とは逆に古いものを若い番号にする。
これは、perlでやる。
open(LOG,'logfile');
@all=<LOG>;
$num=1;
while($gyou=(pop @all)){
print $num,'|',$gyou;
$num++;
}
区切り子は、各ログファイルで違うが、<>が多いようだ。ぼくの場合はこの区切り子をviで|に直してしまったが、その必要はないかもしれない。
mysql -uroot -pパスワード --local-infile=1
を実行する。
この「--local-infile=1」は重要である。ぼくもなぜかはわからないが(^^)。これをいれないとエラーになる。
つづいて、
mysql>use BBS;
mysql> load data local infile './logfile' into table gs_book
-> fields terminated by '|'
-> lines terminated by '\n';
を実行する。
なおテキストファイルからのインポートは、Phpmyadminからもできる。
これでPerl DBIを使っていろいろできるし、BBSのログを全部リアルタイムでデータベースに送ることもできる。
Feb 17, 2006
Perl CGIでメールアドレスをエンティティ化する
掲示板などでメールアドレス収集ロボットに捕捉されないようにするには、まず、
HTML::Entities
モジュールをCPANからインストールして、
スクリプトに、
use HTML::Entities;
と書いたうえで、メールアドレスの保存に次のサブルーチンを通す。
sub entitiy{
$email=(encode_entities($_[0] ,"\x00-\xff"));
}
試しに右のリンクの「灰皿町ゲストブック」に使ったらうまくいった。
まだ巷の掲示板ではエンティティ化は行われていないようだ。灰皿町では徐々にメールアドレスの表示にエンティティ化された文字列を使うようにしていきたい。
Feb 12, 2006
Mozillaのjava plug-in設定
Mozillaでjavaアプレットやゲームなどを表示させるには、plug-in登録が必要である。
「編集」から「設定」の「ヘルパーアプリケーション」とたどる。
「新しいタイプ」を押して、
「MIMEタイプ」に、「application/x-java-jnlp-file」
「説明」「拡張子」に「jnlp」
「このタイプのファイル処理法」の「アプリケーション」のラジオボタンを押して、
「/usr/lib/j2sdk1.5-sun/jre/javaws/javaws」
を選択する(下図参照)。
JAVAで使うfontと環境変数の設定
fontの設定
fontはなぜかkochiだと駄目なようなので、sazanamiをインストールする。
#apt-get install ttf-sazanami-mincho ttf-sazanami-gothic
まず下のディレクトリに行く。もちろん「j2sdk1.5-sun」の部分はインストールしたバージョンによって違う。
shimirin@debian2:/usr/lib/j2sdk1.5-sun/jre/lib$
rootになって、
#cp fontconfig.RedHat.8.0.properties.src fontconfig.properties
とする。
#vi fontconfig.properties
から、中で
:%s/-misc-kochi /-sazanami-/g
とすると、40カ所ぐらい置換されるはずである。kochiの後に空白を1つ入れないと駄目。
環境変数の設定
「/etc/profile」をrootからviで開き、次の2行を追加する。
export JAVA_HOME=/usr/lib/j2sdk1.5-sun
export PATH=${JAVA_HOME}/bin:$PATH
ログアウトして、またログインして、
java -versionを実行。
shimirin@debian2:~$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
と表示されればOKである。
もうひとつ、Mozillaのplug-inに設定しなければならないが、また後ほど。
Feb 11, 2006
J2SE SDKのインストール(Debian GNU/Linux)
まず、java-packageをインストールしておく。
手順としては、
1.java-packageをインストール
2.Sunのサイトから、J2SE SDKのLinux用自己解凍のファイルを入手(自己解凍を実行するわけではない)。
3.Debian GNU/Linux上で、J2SE SDKのパッケージを作成して、インストール(NetBeans同梱でないものを選ぶ)。
4.fontの設定
である。
#apt-get install java-package
「Java 2 Platform Standard Edition 5.0 のダウンロード」から、 「JDKのダウンロード」を選び、表のなかから「jdk-1_5_0_06-linux-i586.bin」(現在最新のもの)を選んで、保存する。
3.上記の「java-package」をインストールすると、「fakeroot」もインストールされるので、それを使う。保存したディレクトリに行って、
$fakeroot make-jpkg jdk-1_5_0_06-linux-i586.bin
とすると、ライセンス承諾などで「yes」と答えて最終的に、「sun-j2sdk1.5_1.5.0+update06_i386.deb」ができる。
これはユーザプロンプトから「fakeroot」しないと、abortされる。
rootになって、
#dpkg -i sun-j2sdk1.5_1.5.0+update06_i386.deb
と実行すると、インストール終了。このままだと文字化けする。4.はまた後ほど。
Feb 09, 2006
SSIモジュールのLoad
このあいだも書いたが、Apacheのモジュールのロードの仕方が、1.3系の新しいのだと変わっている。
shimirin@debian2:/etc/apache$ cat modules.conf
# Autogenerated file - do not edit!
# This file is maintained by the apache package.
# To update it, run the command:
# /usr/sbin/apache-modconf apache
それで、SSIを有効にするには、
#/usr/sbin/apache-modconf apache enable mod_include
とする。
「mod_include.c」でも「mod_include.so」でもなく、「mod_include」だけでないと駄目なようだ。うまくいくと、
「Replacing config file /etc/apache/modules.con with new version」と表示が出る。