2011年5月19日木曜日

Fedora14でApache Webサーバー(LAMP完結編)

今回は, MySQLの設定を行います。
これで, FedoraCore14 で LAMP を構築したことになります。

●まとめ
1.  L   :   Linux インストール
2.  A  :   Apache の設定 (初期設定編参照)
3.  M :   MySQLの設定(今回)
4.  P  :    PHPの設定(PHP編参照)

●MySQL の設定手順
1.  MySQL のインストール
2.  MySQL の設定・ ファイアウォールの設定
3.  データベース, テーブルの作成
4.  PHP, MySQL の設定
5.  PHPプログラムの作成
6. アクセステスト
の順で行います。

1. MySQL のインストール
"Add/Remove Software" より,
MySQL server and related files
をインストール(これで, MySQL のサーバがインストールされました)

2. MySQL の設定
コンソールを開いて, (初期設定でパスワードは設定されていません)
mysql -uroot 

でMySQL につないでみましょう。
しかし,

Can't connect to local MySQL server through socket '/tmp/mysql.sock'

となります。MySQL は, ネットワークでつなぐような形式になっており
ソケットがダメだと言っているようです。
ついでに, デフォルトでは, 3306ポートで接続するので, 適切なファイアウォール設定が必要です。
iptables の3306を許可しましょう。

- ファイアウォールの詳細は(初期設定編)をご覧ください

ソケットを正しく生成するために, mysql を再起動します(rootになる必要あり)。
etc/rc.d/init.d/mysqld restart


これで mysql に接続できるようになりました。

3.  データベース, テーブルの作成
コンソールから, mysql -uroot でMySQL にアクセス
テスト用のデータベースと, テーブルを作成します。


mysql > create database akb48;                         データベースの作成
mysql > show databases;                                   データベースが作成されたかチェック
mysql > use akb48;                                           akb48データベースを使用する

mysql> create table no3b(id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(255)
NOT NULL, rank INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id))ENGINE=InnoDB;

テーブルを作成

mysql > insert into no3b(name, rank) values('Takamina' 6);
mysql > insert into no3b(name, rank) values('Kojiharu', 7);


データを2つほど入れておきます.

mysql>  select * from no3b;    

これでデータがとれます。

4. PHP, MySQLの設定
前回, Apache でPHPを動かすための設定を行いましたが, それでは, MySQLの設定は不十分です。
"Add/Remove Softtware" より以下の2つのパッケージをインストールします


・A module for PHP applications that use MySQL databases
php-mysql

・A database access abstraction module for PHP applications
php-pdo


MySQL と PHPをつなぐためのモジュールのインストールです。

※モジュールインストール後, Apache の再起動が必要です。
/etc/init.d/httpd restart


5.  PHPプログラムの作成
先ほど作成したデータベースに接続し, データを取るサンプルを書きます。


<?php
mysql_connect('localhost', 'root') or die('Cannot connect');
mysql_select_db('akb48');
mysql_query('SET NAMES UTF8');

$results = mysql_query('select * from no3b');

while ( $data = mysql_fetch_assoc($results) )
{
print('<div>' . $data['name'] . ':' . $data['rank'] . '</div>');
}

こんな感じです。これを dbtest.php で保存し,
/var/www/html に入れます。


6. アクセステスト
前回と同様の要領で http://localhost/dbtest.php
でアクセスすると, 以下のような画面になります。


DBからとった値が表示されます。

●MySQL WorkBench
というGUIツールがLinux でもあります。Fedoraのパッケージとして利用できますので
Add/Remove Software で "mysql-workbench" で検索してみましょう。

A MySQL visual database modeling, administration and query

というパッケージがあります。これをインストールしましょう。
こんなのです。
個人的には, 古いバージョンの Query Browser が好きですが, コンソールでたたくより
いいです, 絶対。

今回の設定では, MySQLのパスワードやファイアウォールなどをセキュアな設定にしておりません。
実際の運用では, MySQLにパスワードを入れて, 3306ポートもローカルまたは
許可されたホストのみの接続許可にしましょう。

0 件のコメント:

コメントを投稿