ホームページに戻る


Webデータベースアプリケーションを作ってみる!

とりあえずApache と MySQL と Perl を導入できたので、次はCGIで作るWEBデータベースアプリでしょ!! ということで、また新たなことにチャレンジしてみました。間違いや改善点見つけたら、メールで教えて頂けると幸甚です。


復習がてら、Apache/MySQL/Perlの導入についてまとめてみました。

  1. Apache
    1. インストールプログラムをhttp://httpd.apache.orgよりダウンロードし、インストーラの指示に従ってインストール。
    2. デフォルトのままなら、「Apache\htdocs\」がドキュメントルート、「Apache\cgi-bin\」がCGIスクリプトの置き場。
    3. .htaccessによるユーザー管理を行うなら次のような設定も必要
      1. 「Apache\conf\httpd.conf」の中にある「AllowOverride None」を変更して.htaccessの設置を認める。必要な(と思われる)変更点は次の通り。
        1. <Directory />
            AllowOverride None → AllowOverride AuthConfig
        2. <Directory "C:/httpd/Apache/Apache/htdocs">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None → AllowOverride AuthConfig
        3. <Directory "C:/httpd/Apache/Apache/cgi-bin">
            AllowOverride None → AllowOverride AuthConfig

        • 尚、AllowOverride指令の引数は以下の通り

          1. None・・・.htaccessの設置によるディレクトリ毎の設定を不許可
          2. AuthConfig・・・.htaccessにより認証関係のディレクティブ(ex. AuthName, AuthGroupFile, AuthFile, AuthUserFile, require等)を許可
          3. FileInfo・・・Document types設定関係のディレクティブ(Addtype, AddEncoding等)を許可
          4. Indexes・・・Directory Indexing関係のディレクティブ(AddIcon等)を許可
          5. Limit・・・アクセス制御関係ディレクティブ(Allow, Deny, Order)のみ許可
          6. Options・・・上記の他、特定の設定のみ変更することを許可(詳細はココ)

      2. 今回は、http://localhost/jinji(\htdocs\jinji)というディレクトリを作り、ここに.htaccessを設置する。
      3. また、CGIプログラムにもパスワードをつけるため、http://localhost/cgi-bin/jinji(\cgi-bin\jinji)というディレクトリを作り、ここに.htaccessを設置する。
      4. .htaccessの内容はhtodcs\jinji\.htaccessもcgi-bin\jinji\.htaccessも同一内容で、下記の通り。
        AuthUserfile c:\password
        AuthName "パスワードを入力して下さい"
        AuthType Basic
        require valid-user
      5. パスワードファイル「c:\password」を作成する。ここでは、ユーザーjinjiを設定。
        C:\httpd\Apache\Apache\bin > htpasswd -c c:\password jinji
        Automatically using MD5 format on Windows.
        New password: ********
        Re-type new password: ********
        Adding password for user jinji
      6. これで、http://localhost/jinji/とhttp://localhost/cgi-bin/jinji/にアクセスする際に認証が必要となります。

  2. MySQLの導入
    1. インストールプログラムをhttp://www.mysql.comよりダウンロードし、インストール。
    2. インストール完了後、「c:\mysql\bin\winmysqladmin.exe」を実行。
    3. 「root」にパスワードを設定。(下の例では「myPwd」がパスワード)
    4. C:\mysql\bin > mysqladmin -u root password myPwd
      

    5. Webシステムで使用するデータベース「jinji」を作成する。データベース「jinji」の中に、各種テーブルを作成することになる。
      C:\mysql\bin > mysqladmin -u root -p create jinji
      Enter password: ********
      
      C:\mysql\bin > mysqlshow
      +-----------+
      | Databases |
      +-----------+
      | jinji     |     ←jinjiデータベースが増えた!!
      | mysql     |
      | test      |
      +-----------+
      
    6. Webシステムから操作する際のユーザーを設定。Webシステムのログイン名(上記c:\passwordにあるUserID)と連動したセキュリティ管理もあり得ますが、今回はもっと単純に、このCGIプログラムからMySQLを操作する際の権限を「webuser」というユーザーに割り当てます。ApacheにログインしてCGIを実行したら、Apacheのログイン名に関わらず「webuser」としてMySQLへログインします。
      C:\mysql\bin>mysql -u root -p
      Enter password: ********
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 2 to server version: 3.23.41
      
      Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
      
      mysql>
      mysql> grant select, update, insert, delete on jinji.* to
          -> webuser@localhost IDENTIFIED BY 'webuser';
      Query OK, 0 rows affected (0.22 sec)
      
    7. 「jinji」データベースに、「syain」テーブルを作成する。
      mysql> CREATE TABLE syain(
        ->  syain_id int(6) NOT NULL,
        ->  name char(20) DEFAULT '' NOT NULL,
        ->  email char(50) DEFAULT '' NOT NULL,
        ->  memo char(240) DEFAULT '',
        ->  PRIMARY KEY (syain_id),
        ->  KEY key_name (name)
        -> );
      Query OK, 0 rows affected (0.06 sec)
      
      mysql> show fields from syain;
      +----------+-----------+------+-----+---------+-------+
      | Field  | Type   | Null | Key | Default | Extra |
      +----------+-----------+------+-----+---------+-------+
      | syain_id | int(6)  |   | PRI | 0    |    |
      | name   | char(20) |   | MUL |     |    |
      | email  | char(50) |   |   |     |    |
      | memo   | char(240) | YES |   |     |    |
      +----------+-----------+------+-----+---------+-------+
      4 rows in set (0.00 sec)

  3. Perlの導入
    1. http://www.activeperl.comよりインストールプログラムをダウンロードし、インストール。
    2. DBIとDBD::MySQLモジュールをインストール
      c:\Perl\ > set HTTP_PROXY=http://myproxy.hoge.co.jp
      c:\perl\ > ppm
      PPM > install DBI
      PPM > install DBD-MySQL

      1行目−必要であれば、ProxyサーバーをHTTP_PROXY変数に設定

      2行目−PPMプログラム(ActivePerl付属)を実行

      3行目−DBIをインストール

      4行目−DBD−MySQLをインストール

これで、Webアプリを構築するための環境はそろいました。次は、どのようなアプリを作るかを検討します。


つづく


ホームページに戻る