Last Modifide Thursday, 17-Feb-2005 10:17:33 JST

玄箱/HG(KURO-BOX/HG) - MySQL / PHP4 / perl5.6

MySQL / PHP4 / perl5.6 の導入

MySQL

パッケージのインストール

  • apt-getでインストール
    # apt-get install mysql-server mysql-client mysql-doc
  • インストール時の質問に対して
    Remove all databases sfter "purging" the mysql-server package? ←No(default)
    Should MySQL start on boot? ←Yes(not default)

設定

  • デフォルトのユーザ
    UserNamePasswdHostGrant用途
    root@localhost-localhost全て管理ユーザー
    @localhost-localhosttest*に対して全ての操作localhostの匿名ユーザー
    debian.....-localhostDebianからのコントロール
この下…出先でのメモ書きです。。。(^-^;

ユーザーの登録と権限

mysqlコマンドをroot権限で使用して、新しいユーザーを作成する。ローカルホストから接続するユーザーで、権限は与えない(USAGE)で後からDBレベル、TABLEレベルの権限を与えるようにする。
mysql> grant USAGE on *.* to user@localhost;
mysql> grant ALL on user_db.* TO 'user'@'localhost'; ← user に対しuser_db への権限を与える
MySQLのユーザーはlinuxユーザとは別に登録する。linuxのユーザとは完全に切り離して考えてよい(同じ名前にすることはあっても)。登録されたユーザに対しては適当な権限を与える。データベースが無くてもデータベースレベルの権限を設定できるので、データベース登録と権限の設定はどちらが先でも良い

データベースの登録と権限

新規のデータベースはmysqladminコマンドで作成する。権限のあるユーザー以外はデータベースを作成できない。mysqlコマンドでは create database...
mysql> create database user_db;
データベース名は大文字と小文字が区別される

その他(ユーザーデータベースの考え方)

レンタルスペースなどでのデータベース使用は、ユーザ毎に唯一のデータベースを作成して複数のテーブルを各ユーザーが作成して使用する。その場合、データベースのサイズやテーブル数などの制限をかける。そのデータベースはそのサーバー(localhost)からユーザーのMySQLでのID(user)とパスワード(password)でのアクセスを行う。規模の大きなデータベースアプリケーションはテーブルの接頭語を決めるなどして、一つのデータベース内でテーブルで区別する。アクセスもとのhostは、データベースに対してSQL発行などを発行するクライアントの動作するhost…シェルでのmysqlコマンドやPHPなどのwebアプリケーションで、そのクライアントが動作しているサーバのこと。webサーバとDBサーバが同じならhostはlocalhostとなる?

確認

こんなPHPスクリプトで試してみます。
権限の範囲なら何でも出来てしまいますので注意!
sql.php

<?php
    $user = "user";             // ユーザー名
    $pswd = "passwd";           // パスワード
    $host = "localhost";        // サーバー名
    $db   = "database";         // データベース名
    $tabl = "table";            // テーブル名
?>

<html>
<form action='sql.php' method='post'>
    実行するSQL文を入力
    <input type=text name=sql size=40 maxlengh=40>
    <input type=submit value="実行"><input type=reset value="取消">
</input><br>

<?php
    // $HTTP_POST_VARSによりフィールドの内容を取り出し格納
    $sql = $HTTP_POST_VARS["sql"];
    if( $sql ){
        print( "[".$sql."]<hr>\n" );
        //DBへ接続
        $dbHandle = mysql_connect( $host, $user, $pswd );
        if( $dbHandle == False) { print ( "DBに接続できません\n" ); exit; }
        if( !mysql_select_db( $db ) ){ print( "DBが存在しません\n" ); exit; }
        //SQL文を実行する
        $result = mysql_query( $sql );
        if( $result == False ){ print( "SQLの実行に失敗しました<br>\n" ); exit; }

        // 列数を取得する
        $fields = mysql_num_fields( $result );
        // ヘッダーの取得・表示
        print ("<table width='100%' border=1 cellspacing=0>\n<tr>");
        for ( $i=0; $i < $fields; $i++ ){
            print("<td>".mysql_field_name( $result, $i )."</td>");
        }
        print("</tr>\n");
        // 各行のデータを取得・表示
        while( $row = mysql_fetch_array( $result ) ){
            print("<tr>");
            for( $j=0; $j < $fields; $j++ ){
                print("<td>".$row[$j]."</td>");
            }
            print("</tr>\n");
        }
        print("</table>\n");

        mysql_free_result( $result );   //結果レコードを開放
        mysql_close( $dbHandle );       //DBからの切断
    }
?>
</html>

PHP4

パッケージのインストール

  1. apt-getでインストール
    # apt-get install php4 php4-mysql
  2. インストール時の質問に対して
    Do you want me to run the apacheconfig script now[y/N]? ←No(default)
    >Do you want me to add it now [Y/n]? ←Yes(default) MySQL

設定

/etc/apache/httpd.conf

  • PHP4モジュールの組み込み指定
    LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
  • デフォルトドキュメントにindex.phpを指定
    DirectoryIndex index.html index.htm index.shtml index.cgi index.php
  • ドキュメントタイプの追加
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

/etc/php4/apache/php.ini

  • MBSTRの設定
    [mbstring] mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = EUC-JP mbstring.detect_order = auto mbstring.substitute_character = none;

確認

以下のファイルを test.php 等のファイル名で作成しブラウザで確認する。
全ての設定が表示されますので確認したら、消しておきましょう
  <?php
      phpinfo();
  ?>

perl5.6(多分、perlは導入済み)

パッケージのインストール

  1. パッケージのインストール
    # apt-get install perl-5.6 apache-perl

webmin用のMySQLモジュールのインストール

パッケージのインストール

  1. パッケージのインストール
    # apt-get install webmin-mysql
  2. webminの再起動
    # /etc/init.d/webmin restart

参考リンク

MySQL / PHP4 / perl5.6

玄箱全般

Debian GNU/Linux 公式サイト

[an error occurred while processing this directive]
(C)2005 青山葵 (Aoi AoYama) / Blue Hibiscus Web Pages

[ 自宅サーバーWebRing |ID=265 前後5表示乱移動サイト一覧 ]