ARAGO for Internet Unices edition

1.始めに

2.商品パケージ

2.1. パケージ内容

3. インストール

3.1 apacheのconfファイルの設定

3.1.1 aragoi.exeがCGIとして動作できるようにする。
3.1.2 ライブラリーファイルのディレクトリを指定する

3.1.3 日本語を使うために

3.2 必要なファイルのコピー
3.3 属性の変更

4. aragoiで使用するファイル名と属性について

5. Symbolic link

6. Browserにエラーが表示されるとき

7. プログラムのデバッグ

8. Unicesでサポートされない関数、コマンド

9. その他の注意事項


1.始めに

ARAGOIのプログラムでは特別なことはありませんが、Unices版はWindowsとは動作環境の設定でいろいろと異な点があります。  OS環境が全く違うため、最初はいろいろと混乱することがあるかと思います。 Unixを日常的にお使いの方には、回りくどいところがあるでしょう。


面倒でもこのマニュアルは一度は必ず全部に目を通してください。


最後のところでWindows DOSユーザーのための簡単なUnicesのコマンド解説があります。 UnicesではDOSのコマンドプロンプトに相当する部分であるshellが異なるとコマンドもまた幾分違います。
詳しい使い方は別の参考書なりを参照してください。

このマニュアルはARAGOIDOCを補完するものです。 ARAGOIDOCも必ずご覧ください。
ARAGOIはARAGO for Internetの略称です。 ARAGOWはARAGO fort Windowsの略称です。


2.商品パケージ

CDまたはFloppy、または全てをZIPしたZIPファイルにて供給されます。

2.1. パケージ内容

UNICES.HTML このマニュアルです。 Windowws版と異なる注意点を書いてます。
ARAGOIDOC.HTML ARAGOIの基本的な仕様、動作、コマンド、関数、 CGIの動作についてのマニュアルです。
aragoi.zip ARAGOI本体をZIPしたものです。 Unices、WindowsのZIPで解凍できます。
library.zip ARAGOIで使用する、ライブラリーです。 (これ以外にglibがインストールされている必要があります。)
README 変更内容があるとき、注意点などの情報ファイルです。
RPMなどのインストールプログラムは付属しません。

3. インストール

インストールには3つのことが必要になります。

3.1 apacheのconfファイルの設定

Apacheの設定ファイルhttpd.confは /etc/httpd/httpd.conf です。 Unicesのdistributionによっては異なっていることがあります。 
Unices上にインストールされたApacheのディレクトリは通常httpdとなっています。
apacheのconfファイルはDOSとは異なり、行末が\nしかありません。 そのためWindowsの環境でオープンすると、全ての業が改行されない状態で表示されます。
ARAGOWのMODIFY COMMANDで一度オープンしセーブしてください。 行末がCF/LFに変更されてもUnicesで問題はありません。

3.1.1 aragoi.exeがCGIとして動作できるようにする。

Unicesの習慣ではbinaryと実行するディレクトリ、関連ファイルをそれぞれ別のディレクトリに置くようですが、あとでどこにあるのか探すのにはうんざりすると思います。
DOS的にわかりやすいところにまとめるほうが楽かと思います。 動作すればなにをどこに置こうと、symbolic linkにしようと自由です。
cgi-binは、通常は/var/www/cgi-binです。 
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

参考まで
tiger.soupacific.comでcounterの最上位が表示されない理由は次の設定で制限されているためです。
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>

3.1.2 ライブラリーファイルのディレクトリを指定する

cgi-binの下にlibraryディレクトリを作りそこにlibraryファイルをコピーしたとしても、このままではApacheはどこにaragoi.exeのライブラリがあるかわかりません。 
そこでhttpd.confに次のようにこれらの場所を記述してください。 htttpd.confのどこでもかまいません。
SetEnv LD_LIBRARY_PATH /var/www/cgi-bin/library

/var/www/cgi-bin/library もしconfで別の場所を指定したときはその場所を最上位のディレクトリから記述してください。/pathname

それぞれの文字列の間のスペースは1バイトのスペースひとつです。 Unicesでは時々スペースを2つつけるとエラーになるものがあります。 習慣に!

3.1.3 日本語を使うために

ApacheはCGIが最初に返す文字列として Content-type: text/html と \n が2個返されること期待しています。
もし最初にこの文字列が返されないとエラーを返します。

ここでこれから続く文字列が日本語であることApacheに知らせるために次のように出力します。
output('Content-type: text/html; charset= Shift_JIS ',2)

またBrowserによっては日本語 Shift-Jisであることを認識できないことがあります。 そのために
OUTPUT('<head>')
OUTPUT('<title>タイトル</title>')
OUTPUT('<meta content="text/html; charset=Shift_JIS" http-equiv=Content-Type >')
OUTPUT('</head>')


上の例のようにHEAD部分でShift-Jisである旨meta指定することをお勧めします。

さてCGI部分での日本語を正常に表示できるのだが、HTMLの日本語が文字化けするということがあります。
このときBrowserで文字コードをShift-Jisに設定すると日本語が表示される場合は、次の処理で直ります。
Apacheのhttpd.confの次の行を
AddDefaultCharset ISO-8859-1

の ISO-8859-1 を Shift_Jisに変更してください。

3.2 必要なファイルのコピー
. 
zipファイルを直接Unices上でApacheのhttpd.confで指定するディレクトリにコピーし解凍するか、解凍した上でftpなどで必要なディレクトリに書き込んでください。

aragoi.exeまたはaragoi.zipです。 これはLinux版のaragoi.exeです。
library.zipはaragoi.exeが使用するlibraryファイルです。


コピーしたあとにこれらのファイルの属性(file permission)を変更してください。 ftpクライアントソフトには、これらの属性の変更する方法が一般的には着いています。
基本的なそれらの使い方は、それらのヘルプまたはマニュアルを参照ください。


3.3 属性の変更

Windws NT ではファイルの属性としてファイルのowner、ファイルの実行権があります。 ただ日常ではあまりこのことに気を使いませんが、 Unicesではこれがとても大事な問題です。
Unicesでは通常はroot権限でcgi-binなどをアクセスしますが、apache自体にはroot権限が与えられていません。
またFTPでファイルをアップロードしても、アップロードされたファイルはそのままではこのftpが持つ権限しか与えられません。

またterminalからroot権限で ./aragoi.exe xxx.prgと実行すると生成されたPROファイルはroot権限のものしか実行できなくなります。

属性を変更するために
chmode go+rwx   filename


また生成されたPROがあるときには、作業を終了したあとには、rm *.PRO で消すことをお勧めします。


4. aragoiで使用するファイル名と属性について

DOSやWINDOWSではファイル名の大文字小文字を識別しません。 unicesでは大文字小文字で待った区別のファイルを意味します。
aragoiはその引数として受け取ったファイル名が小文字であろうと内部で大文字に変更しそのファイルをサーチします。
たとえばABCとABcとAbcとabcは全く別のファイル名です。
aragoiではこれらの区別はしません。 すべてABCとしてサーチします。
この識別を可能にすると、データベースファイルなどはWindowsでしか作成できません。 識別されるべき複数のファイルをWindowsで作業するときにこれらは同一のファイルとして上書きされてしまいます。
そのためDOSと同じように全てのファイルは大文字で記述されなければいけません。

aragoi.exe?abc.prgのときのabc.prgはaragoiの引数ですので、小文字で記述してもかまいませんが、ファイル名自体は大文字である必要があります。
aragoiで使われるファイルの属性は全てapacheがアクセスできるように属性を変更してください。

5. Symbolic link

Unicesの参考書をご覧ください。

6. Browserにエラーが表示されるとき

いちばん簡単なプログラムを実行してみてください。
Unicesの ll コマンドでファイルの属性を確認してください。
ファイル名が大文字か見てください。

サンプル
output('Content-type: text/html; charset= Shift_JIS ',2)

output('<HTML>')
output('hello')
output('</HTML>')

の先頭のある output('Content-type: text/html; charset= Shift_JIS ',2) が無いとき、\nがひとつしかない時、apacheはエラーを返します。
必ず先頭で出力してください。 これによってapacheはcgiからデータが送られてくることを認識します。
 
.PROが生成されているか?を見てください。 もし生成されていないとすると、ファイル名が間違えているか、大文字でないか、SetEnv LD_LIBRARY_PATH で指定するところにライブラリーファイルが無いかです。


7. プログラムのデバッグ

もしWindows版のaragoiをお持ちでしたら、それでデバッグすることができます。 Windows版とに違いは大文字、属性の二つです。
またARAGO for WindowsでOUTPUTウィンドウにプログラムの結果を出力することができます。 ただしARAGOWでは環境変数も、formのデータも受け取ることができません。
デバッグするプログラムの先頭で、それらの値を指定してARAGOWで実行してください。

CGIで使用されるプログラムはセキュリティに十分注意してください。 また実際に使用する前に、Unicesをインストールした開発用のPCで十分に全てのコードを実行しバグの無いことをご確認ください。

termanlでWindows DOS Promptのように、 aragoi.exeを実行できます。 そのときにはライブラリファイルがどこにあるかを指定する必要があります。
aragoi.exeを実行する前に次の行を実行ください。

export LD_LIBRARY_PATH /var/www/cgi-bin/library

この実行結果で生成される.PROの属性はログインしたユーザーに設定されます。 これではApacheから呼ばれたaragoiはこれらのファイルにアクセスできなくなる可能性があります。
必ずデバッグ終了後に、rm *.PRO で.RPOファイルを削除してください。

8. Unicesでサポートされない関数、コマンド

8bit時代のOSであったCP/Mで発明されたドライブという概念はUnicesにはありません。 C:とかD:とかは使えません。
トップディレクトリは/です。 rootは/rootというrootユーザーのhomeディレクトリです。 混乱の無いように。

次のコマンド関数はサポートしません。 
EXTERN

RUN RUN() 将来的にサポートの予定

内部でのサーチパスはサポートしていません。

必要なときはSymbolic Linkなどで明示的に指定してお使いください。
ARAGOIでは、.INIファイルは起動時に読み込みますが、変更内容をセーブしません。


DISKSPACE()

上記のコマンド関数は-1を返すか、何も実行しません。
ID()
COUNTRY()
LANGUAGE()
SET DATE TO date
SET TIME TO


9. その他の注意事項

FLOCK() RLOCK() Unicesではつい最近までファイルをLockする方法がありませんでした。
現在BSD系のOSではLockは強制的なものとして動作しますが、LinuxではFlagが立っているだけで、無視してファイルを別のアプリケーションからオープンすると何事も無くオープンできます。
これはWine projectでも問題なはずです。 aragoiが動作している環境で、別の方法によってファイルを操作するとファイルは破壊されます!
例えばWindows上のARAGOWからLinux上のDBFを操作してもLockは動作しません!

SygwinはLinuxを擬似的にWindowsで動作させようとするものですが、system call は全てWindowsです。 Unices版、Windows版のどちらのaragoiも動きません!
もしWindowsでaragoiをお使いになるときはWindows版のaragoiをWindowsとしてお使いください。


apacheのconfファイルはDOSとは異なり、行末が\nしかありません。 そのためWindowsの環境でオープンすると、全ての行が改行されない状態で表示されます。
ARAGOWのMODIFY COMMANDで一度オープンしセーブしてください。 ARAGOWが行末をCR/LFに変更します。 行末がCF/LFに変更されてもUnicesで問題はありません。

Linuxをインストールするときに、Linuxになれていない方は、GUIをインストールすることをお勧めします。
不要なサービスはSecurity問題を起こす引き金になります。 serviceで不要なserviceは全て止めることをお勧めします。

Linuxをserverとしてインストールすると、gccを標準ではインストールしません。 現実的にはいろいろなserviceをあとから追加しようとすると、ソースコードをダウンロードしコンパイルする必要が出てきます。
またaragoi.exeのライブラリがglib(gccのライブラリ)を呼んでいます。 必ず最低限glibをインストールしてください。

aragoi.exeでライブラリ呼んでいる部分は小さいので、static linkしたいのですが、compilerのbugで現在は不可能です。

ftpd(FTPサーバー)は、いろいろと調べたのですが、Windowsで現在使っているものと比べると使いかっても、機能もずいぶんと差があります。
お勧めできるものはありません。 ご自分で検討してください。 

aragoi.exeで呼ばれるプログラムはできる限り最短、最小時間で処理できるようにしてください。
ARAGOWで同じ機能を持つ処理ルーチンをいくつか作り、それぞれを10000回連続で廻し、どれだけの処理時間の差が出るかで調べてください。
CPUがひとつで複数の重い処理を同時に処理すれば、当然CPUの負荷は最大になります。 全てのレスポンスは当然重くなります。
重い処理が必要なときにはCPUをmultiで使用できるようにしてください。 Dualまでなら安いのですが? それ以上になるとギョッとする価格帯のようです。

その高い費用を取るか、プログラムを直すかバランスです!

Windowsのaragoi.exeでも時々、lan上の別のPCのファイルをアクセスしたいとの話がありましたが、Apacheではそのような概念自体がありません。
またUnicesではドライブという概念もありません。 それ以上にいまだに紙テープの概念でmountしなければいけないようです。
D:とかE:とかunices版のaraoi.exeでは記述できません。

Windows PCに対するattackが頻繁に起きています。 業務でお使いになるBrowser、Mail ClientはMS以外のを使用することを強くお勧めします。
いろいろとMSの最近の機能が使えなくなりますが、security上、安全な方法をおとりください。


10. Unicesの基本コマンド
大体のコマンドは command -h か --helpで簡単なヘルプを表示します。
Unices コマンド DOS コマンド  
cd 該当するものはありません。 home directoryに移動
pwd CD 現在のディレクトリの表示  
cd path CD PATH ディレクトリの変更  
ls DIR 現在のディレクトリにあるファイルおよびディレクトリを表示  
ll DIR option 現在のディレクトリにあるファイルおよびディレクトリを表示の属性などの詳細情報を表示  
cp source destionation COPY file   
mv MOVE ファイルの移動   
mkdir MD ディレクトリの作成  
chmomde 属性の変更  
zip unzip ZIP UNZIP ファイルの解凍、ファイルのZIP  
rm DELETE ファイルの削除  
rmdir ディレクトリの削除  
mount DOSには該当するものはありません。

FloppyやCDをアクセスできるようにディレクトリに割り当てる。
mount -t vfat /dev/fd0 /mnt/floppy 
umount DOSには該当するものはありません。

FloppyやCDのmount解除、このとき初めて実際にファイルがコピーされる 注意してください!
 

注意 Unicesではbackupファイルとして ~fileを作成する。
Notepadの代用としてviが使えます、 日本語を使うときにはUnicesが日本語でShift-Jisに設定されていない限りファイルをセーブするとShift-Jisでかかれた日本語はすべて文字コードが違いますので、全て文字化けします。
viの使い方については、別の参考書をご利用ください。

このマニュアルの一部、全部を無断で外部に発表することは、southern pacific computer incの書面による許諾が無い限り禁止されています。
copyright by southern pacific computer inc.