LiveCodeプログラミングでCGIを動かす

LiveCodeサーバーは日常英語のようなわかりやすいプログラミングで、インターラクティブなウェブページを作ります。ずいぶん前にMacOSについてきたサーバーで少し遊んだことはあるのですが、まだLiveCodeサーバーもない頃だったので、今回ラズベリーパイを使い始めたのが良い機会でした。LiveCodeプログラミングを使ったCGIのテストが、ローカルでできるようにというのが、私のLiveCodeサーバーをインストールする目的です。もちろんインターネットに繋ぐこともできます。私の場合はLiveCode社の運営する「On-Rev」と言うプロバイダーにアカウントをもっているので、LiveCodeプログラミングのインターネット書類は、すべてそちらを通しています。LiveCodeサーバーは現在グラフィックを扱うことはできません。テキスト・データをLiveCodeプログラミングで加工して、ウェブブラウザーのHTMLとして書き出します。PHPやPearlのような事が、LiveCodeプログラミングを使って書き出せると考えてください。2016年後半に完成する「LiveCode for HTML5」では、LiveCodeエンジンからJavaScriptにコンパイルしたウェブ・アプリが書き出せる予定ですから、LiveCodeサーバーとの組み合わせが期待できます。

サーバーの設定には、ターミナルからディレクトリー(フォルダー)の位置を変えたり、ディレクトリーにあるファイル・リストを見たりする、UNIX/Linuxコマンドの知識が少し必要です。ウェブ書類の作成は、基礎的なHTLMの知識とLiveCodeプログラミングを使います。


新しい Raspberry Pi 2 とカメラ・モデュール


始めにApache2をインストール

新しくパワーアップした「Raspberry Pi 2」を使うことにしました。「Raspberry Pi 2」は、古いバージョンのNOOBSから作ったOSを走らせることができません。「NOOBS_v1_4_0」以降をインストールしてください。 サーバー構築の順序は、始めラズベリーパイにターミナルからWebサーバソフトの「Apache2」をインストールします。その後やはりターミナルからLiveCodeサーバー・エンジンをインストールして、「Apache2」の設定にいくつかのLiveCodeの項目を追加をして、ウェブ・ブラウザーでCGIが働くようにします。

一番始めにターミナルからラズベリーパイをアップデートしておきます。アップデートが終わったらターミナルからApache2をインストールします。

$ sudo apt-get update

$ sudo apt-get install apache2

Apache2のインストール途中で「Y/n」が出て一旦ストップしますから、キーボードから「Y」を送ります。インストールが終わったらラズベリーパイのウェブ・ブラウザーで

http://localhost/

を開くと「It works!」が見えます。「It works!」のHTMLファイルは「/var/www」にあるデフォルトの「index.html」です。ディレクトリーを「/var/www/」に行って、

$ cd /var/www/

$ more index.html 

を送ると「index.html」に書かれている内容が見れます。または実際にファイル・マネージャーから「/var/www/index.html」をテキスト・エディターで開いて見ることもできます。Apacheをターミナルからリスタートさせると

$ sudo /etc/init.d/apache2 restart

エラーが出ますから、「/etc/apache2/envvars」をテキスト・エディター「nano」で修正しなくてはいけません。

$ sudo nano /etc/init.d/apache2/envvars 

で、ファイル「envvars」が開かれます。矢印キーでカーソルを移動させて

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=wwwdata

の2行を見つけたら、最後の「www-data」をユーザー名の「pi」に変更します。

export APACHE_RUN_USER=pi
export APACHE_RUN_GROUP=pi

変更した後「コントロールキー+O」、エンターキーを叩いて保存します。「コントロールキー+X」でnanoから抜けて元のターミナル画面に戻ります。もう一つ作らなくてはいけないファイルがあって「/etc/apache2/httpd.conf」を新しく作ります。

$ sudo nano /etc/init.d/apache2/httpd.conf

先ほど開いた「nano」の何も書かれていない画面が現れますから、 下のラインをトップに書き込ます。

ServerName localhost

これで「コントロールキー+O」の後、エンターキーを叩いて、ファイル「httpd.conf」を保存します。。「コントロールキー+X」でnanoから抜けて元のターミナル画面に戻ります。 これでアパッチのスタートもストップもリスタートもできますから、一旦ストップしてからスタートさせます。

$ sudo service apache2 stop

$ sudo service apache2 start

以上は下に書いた資料「Raspberry Pi - Installing Apache web server」を参考にしました。

テキスト・エディターからファイルをディレクトリー「/var/www/」の中に置いたり、他のマシーンからファイルをラズベリーパイ・サーバーに送ったりするには、ディレクトリーのパーミッションを変えなくてはいけません。その他インターネットに繋ぐ場合のセキュリティーに関する設定等は、他のサイトに沢山の詳しいインフォがありますからそちらをご覧ください。


LiveCodeサーバーをインストール

LiveCodeサーバーをインストールして、ローカルのネットワーク環境で動くようにします。インストールするディレクトリー「/usr/lib/cgi-bin」に移動します。

$ cd /usr/lib/cgi-bin

ダウンロードするファイルはZIPに圧縮されていますから、アンジップするアプリをインストールします。

$ sudo apt-get install unzip

ウェブブラウザーでLiveCodeのダウンロードサイドに行って、ラズベリーパイ用のLiveCodeサーバーの最新版バージョンとリンクを確認してください。

http://downloads.livecode.com/livecode/



現在最新版のSTABLEな「Community Server RPi」は「LiveCode 7.0.1」です。マウスを「RPi」に重ねるとリンクが下に見えます。右クリックで「RPi」をマウスダウンすると、メニューの「Copy Link Address」が出てコピーできます。ターミナルから下のスクリプトを送って、ディレクトリー「/usr/lib/cgi-bin」に「livecode-community-server」をインストールします。

$ sudo wget http://downloads.livecode.com/livecode/7_0_1/
                        LiveCodeCommunityServer-7_0_1-rpi.zip
    (このスクリプトは1行です。ファイルは最新のSTABLEにしてください)

ダウンロードした「LiveCodeCommunityServer-7_0_1-rpi.zip」をアンジップして、出てきたファイル「livecode-community-server」を全ユーザーに実行権限を与えるパーミッションにします。(下のスクリプト)

$ sudo unzip LiveCodeCommunityServer-7_0_1-rpi.zip

$ sudo chmod a+x livecode-community-server

LiveCodeサーバーのシンボリック・リンク(エイリアス)を「/usr/local/bin/」内に作ります。

$ sudo ln -s /usr/lib/cgi-bin/livecode-community-server 
                    /usr/local/bin/livecode-community-server
    (このスクリプトは1行です。行を変えた最後にスペースがあります)    

Apache2のコンフィグ・ファイル「000-default」に、LiveCodeサーバーのための行を追加するので、ターミナルからテキストエディターの「nano」で開きます。

$ sudo nano /etc/apache2/sites-enabled/000-default 



上図のファイルが開かれます(上図はすでに追加項目が書き込まれています)。矢印キーとリターン・エンターキーで位置を設定して、以下の5行を <Directory /varwww/> に書き加えます。

AddHandler livecode-script .lc
Action livecode-script /cgi-bin/livecode-community-server
AddHandler irev-script .irev
Action irev-script /cgi-bin/ireviam-engine
DirectoryIndex index.irev index.lc index.html

「コントロールキー+O」の後、エンターキーを叩いて保存。「コントロールキー+X」でnanoから抜けて元のターミナル画面に戻ります。これでLiveCodeサーバーのインストールは終わったので、「Apache2」をリスタートさせます。

$ sudo service apache2 restart

あるLiveCodeディベロッパーによると、リスタートさせるには以下の3つのコマンドもターミナルから送るとあります。もしリスタートできなかったり、テスト・ファイルが働かなかったらこれを送ってください。

$ sudo a2enmod actions

$ sudo a2enmod cgi

$ sudo a2enmod rewrite

テスト・ファイルを作ってみます。ウェブ・ブラウザーのファイルはディレクトリー「/var/www/」以下に作ります。「livecode」というディレクトリー(フォルダー)を始めに作って、Apache2のコンフィグを書き加える時に使った「nano」で「index.lc」というファイルを作ります。LiveCodeで動かすファイルは「.lc」または「.irev」という拡張子を付けます。「.irev」はLiveCodeがRevolutionと言われていた時の拡張子で、現在でも使用できますが、LiveCodeのアップデートで追加された言葉は使えません。日本語を表示するファイルの書き方に少し違いがあります。ここでは新しい「.lc」を使うこととします。

$ sudo mkdir /var/www/livecode

$ sudo nano /var/www/livecode/index.lc

これで「nano」の新しい書類が開かれますから

<?lc put "Hello LiveCode!<br>" & the date && the time ?>

と書き込んで(下図)、「コントロールキー+O」の後「Enter」で保存、最後に「コントロールキー+X」でターミナルの画面に戻ります。

ウェブ・ブラウザーをから

http://localhost/livecode/

を開きます。



少しliveCodeで書いたサンプル画像を載せておきます。piユーザーからテキスト・エディターを使ってファイルを書く場合は、パーミッションを変えないと「/var/www/」ディレクトリーに保存できません。



HTMLが少しわかれば簡単に読むことができます。LiveCodeプログラミングの始めは「<?lc」終わりは「?>」のタグで括ります。日本語を表示するファイルはトップに「utf-8」を設定するスクリプトを書き込みます。普通のメタタグの「utf-8」の設定は必要ありません。ボディータグのトップにテキストエンコーディングを「native」にするLiveCodeスクリプトを書き込みます(この辺りのロジックが私にはわからないのですが、とにかくそうすると日本語も英語もうまく表示できます)。LiveCodeプログラミングで得た結果は「put」でHTMLとして書き出されます。「<?lc」タグで括ったLiveCodeプログラミング以外は、すべてHTMLの書き方に沿ってください。



$SERVER[キー]で返される一覧(上図):lcSERVER.lc ファイル ダウンロード
LiveCodeで俳句プログラミング試作:http://kenjikojima.com/haiku/
LiveCode CGIの基礎:http://kenjikojima.com/basic_iRev/ (かなり前にirevファイルを中心に書いたページです)





参考にしたウェブサイト

・アパッチ・インストール・ビデオ:Raspberry Pi - Installing Apache web server

・How To - LiveCode Server Tasks: Installing LiveCode Server
    http://lessons.runrev.com/m/4070



ページトップに行く

統合開発環境:
LiveCode 6 プログラミング 初心者開発入門

LiveCode 7 プログラミングをラズベリー・パイで!




ⓒ 小島健治 / Kenji Kojima


Email: index@kenjikojima.com
LiveCode 7 Japanese Tutorial