Top / KNOPPIX for HDU / パッケージの準備

パッケージ作成の準備

ここでは、apt-get でインストールしないパッケージを作成することにします。

作業環境について

あらかじめ knoppix-install でハードディスクにインストールされている KNOPPIX環境で行ないます。

GBA開発環境

コンパイラ

  • GBA開発/KNOPPIX のページにしたがってインストールします。 エミュレータ VisualBoyAdvance は apt-get にてインストールしますので、 ここではインストールしてもしなくても構いません。
  • PATH設定を /etc/profile に加えておきます。
    export PATH=$PATH:/usr/local/gba/bin

ライブラリSOLA

GBA開発/SOLA/開発環境/KNOPPIX の ページにしたがってインストールします。

LAMP簡単起動スクリプト

Apacheの設定

  • public_html 下で CGI が実行できるようにする
    /etc/apache/httpd.conf
    341行目
    <Directory /home/user/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options IncludesNoExec ExecCGI
    698行目
    LanguagePriority ja en ...
    732行目コメントを外し、.sh .pl は削除する
    AddHandler cgi-scfipt .cgi
    737行目
    AddType text/html .shtml
    AddHandler server-parsed .shtml
    761行目
    AddDefaultCharset off

MySQLの設定

  • 方針:データのディレクトリを各ユーザの .mysql_data ディレクトリに保存ようにする。
    • /etc/mysql/my.conf
      [mysqld], [mysqldump], [mysql] セクションに加える:
      default-character-set=ujis
  • データベースの初期化、サーバ起動・終了方法
    • ソケットが入るディレクトリを書き込み可にしておく
      # chmod 757 /var/run/msqld/
    • データベースの初期化(ユーザ名を student5 とする)。ここ以降は一般ユーザの権限でよい(なお、以下の指示は動作確認のためであり、実際には自動的に行なうスクリプトを用いる)。
      $ /usr/bin/mysql_install_db --datadir=/home/user/student5/.mysql_data
      $ mkdir -p .var/log/mysql
  • データベースサーバの起動
    $ /usr/bin/mysqld_safe --user=student5 --datadir=/home/user/student5/.mysql_data --err-log=/home/user/student5/.var/log/mysql/mysql.log &
  • データベースを匿名で利用できるようにする
    $ mysql -uroot -p
    mysql> grant all on *.* ''@localhost
    mysql> exit
  • データベースの利用
    $ mysql
  • データベースサーバの終了
    $ mysqladmin -u root -p shutdown
  • 上記のユーザ権限によるデータベース設定を自動的にやってくれるスクリプトを作っておこう。なお、再配布版では /etc/hdu/init が実行されないので、このスクリプト内で chmod 757 /var/run/mysqld を行っておく:
    • /etc/init.d/mymysql
      #!/bin/sh
      #
      # MySQL daemon start/stop script.
      #
      
      DATADIR="$HOME/.mysql_data"
      LOGDIR="$HOME/.var/log/mysql"
      LOGFILE="$LOGDIR/mysql.err"
      
      case "${1:-''}" in
        'start')
       # check for config file
       if [ ! -r /etc/mysql/my.cnf ]; then
         echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian."
              fi 
      
              if [ "$USER" = "knoppix" ]; then
                sudo chmod 757 /var/run/mysqld
              fi
      
       if [ ! -e "$LOGDIR" ]; then
         mkdir -p "$LOGDIR"
       fi  
      
       if [ ! -e "$DATADIR" ]; then
         /usr/bin/mysql_install_db --datadir="$DATADIR" > /dev/null 2>&1
       fi
      
       # Start daemon
       echo -n "Starting MySQL database server: mysqld" 
       /usr/bin/mysqld_safe --user="$USER" --datadir="$DATADIR" --err-log="$LOGFILE" > /dev/null 2>&1 &
      echo "."
      ;;
      
       'stop')
      echo "Stopping MySQL database server: mysqld" 
      mysqladmin -u root -p shutdown
      ;;
      
       'status')
      $MYADMIN version
        ;;
      
       *)
      echo "Usage: $SELF start|stop"
      exit 1
      ;;
      esac
  • 起動はユーザ権限で /etc/init.d/mymysql start、終了は /etc/init.d/mymysql stop
  • /etc/hdu/init にソケットのためのディレクトリの属性変更を加えておく。
    chmod 757 /var/run/mysqld

ウェブプログラミング用 LAMP 起動スクリプト

  • MySQL
    /etc/hdu/service/mymysql
    #!/bin/sh
    #
    # MySQL daemon start/stop script.
    #
    
    DATA="mysql_data"
    DATADIR="$HOME/$DATA"
    LOGDIR="$HOME/.var/log/mysql"
    LOGFILE="$LOGDIR/mysql.err"
    DONE_DATADIR=""
    
    case "${1:-''}" in
      'start')
     # check for config file
     if [ ! -r /etc/mysql/my.cnf ]; then
       echo "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian."
            fi 
    
     if [ "$USER" = "knoppix" ]; then
       sudo chmod 757 /var/run/mysqld
     fi
    
     if [ ! -e "$LOGDIR" ]; then
       mkdir -p "$LOGDIR"
     fi  
    
     if [ ! -e "$DATADIR" ]; then
       /usr/bin/mysql_install_db --datadir="$DATADIR" > /dev/null 2>&1
       kdialog --title "データ保存用ディレクトリの作成" --msgbox="データ保存用 ディレクトリ $DATADIR を作成しました。\n データベースのデータをバックアップするときには、このディレクトリをバックアップしてください。\n データを初期化するときにはこのディレクトリを削除してください。"
     fi
    
     # Start daemon
     echo -n "Starting MySQL database server: mysqld" 
     /usr/bin/mysqld_safe --user="$USER" --datadir="$DATADIR"  --err-log="$LOGFILE" > /dev/null 2>&1 &
     echo "."
     
     kdialog --title "MySQLデータベースサーバの起動" --msgbox "MySQLデータベースサーバを起動しました。"
     ;;
    
      'stop')
     echo "Stopping MySQL database server: mysqld" 
     mysqladmin -u root -p shutdown
     ;;
    
      'status')
     $MYADMIN version
       ;;
    
      *)
     echo "Usage: $SELF start|stop"
     exit 1
     ;;
    esac
  • Apache
    /etc/hdu/service/myapache
    #!/bin/sh
    #
    # MySQL daemon start/stop script.
    #
    
    case "${1:-''}" in
      'start')  
       if [ ! -e "$HOME/public_html" ]; then
     mkdir "$HOME/public_html"
     chmod 755 "$HOME/public_html"
     chmod 755 .
     kdialog --title "Webページ公開用ディレクトリの作成" --msgbox "ウェブページの公開用ディレクトリとして $HOME/public_html を作成しました。\n 例えば、このディレクトリのなかに test.html というファイルを作成した場合、ブラウザの場所欄に http://localhost/~knoppix/test.html と入力すれば test.html を閲覧できます。"
     fi
       TITLE='ウェブサーバの起動' 
     MSG='ウェブサーバ Apache'
       LOG=`sudo /etc/init.d/apache start`
     RESULT=`echo $LOG | grep failed` 
     if [ -z "$RESULT" ]; then
     kdialog --title "$TITLE" --msgbox "${MSG}を起動しました。"
     else
       RESULT=`ps aux | grep /usr/sbin/apache`
       if [ -z "$RESULT" ]; then
       kdialog --title "$TITLE" --msgbox "${MSG}は起動できませんでした。\n  $LOG"
       else
       kdialog --title "$TITLE" --msgbox "${MSG}はすでに起動されています。"
       fi
    fi
     ;;
    
      'stop')
       TITLE='ウェブサーバの停止' 
     MSG='ウェブサーバ Apache'
       LOG=`sudo /etc/init.d/apache stop`
     RESULT=`echo $LOG | grep killed` 
     if [ -z "$RESULT" ]; then
     kdialog --title "$TITLE" --msgbox "${MSG}を停止しました。"
     else
       RESULT=`ps aux | grep /usr/sbin/apache`
       if [ -z "$RESULT" ]; then
       kdialog --title "$TITLE" --msgbox "${MSG}は起動されていないため、停止する必要はありません。"
       else
       kdialog --title "$TITLE" --msgbox "${MSG}は停止できませんでした。\n $LOG"
       fi
     
     fi 
     ;;
    
      *)
     echo "Usage: $SELF start|stop"
     exit 1
     ;;
    esac

メニューに追加

  • メニューエディタで
    • 項目「ウェブプログラミング」
    • サブ項目「WebサーバApache」
      コマンド
      /etc/hdu/service/myapache start
      「起動フィードバックを有効に」にチェック
    • サブ項目「データベースサーバMySQL」
      コマンド
      /etc/hdu/service/mymysql start
      「起動フィードバックを有効に」にチェック
  • ここで設定した内容は、次のファイルに反映される
    • /home/knoppix/.config/menus/applications-kmenuedit.menu
    • /home/knoppix/.local/share/desktop-directories/ウェブプログラミング.directory
    • /home/knoppix/.local/share/applications/WebサーバApache.desktop
    • /home/knoppix/.local/share/applications/データベースサーバMySQL.desktop

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-03 (金) 06:37:03 (95d)