とりあえず、前回までで、サーバーのインストールの準備ができました。ここから、各サーバーをインストールしていきます。
- データベース(mysql)のインストール
- phpのインストール
- apacheのインストール
と、これだけインストールすれば、joomla!やWordpressなどがインストールできる環境ができます。
まずは、データベース mysqlをインストールしましょう。
- 目次
- 履歴
2010年7月17日 初版
mysqlのバージョンを選択する
まずは、バージョンを選択しなければなりません。 FeeBSD 8.0では、以下のmysqlのバージョンがports対応しているようです。
- 3.23系
portsディレクトリ
- /usr/ports/databases/mysql323-client
- /usr/ports/databases/mysql323-scripts
- /usr/ports/databases/mysql323-server
- 4.0系
portsディレクトリ
- /usr/ports/databases/mysql40-client
- /usr/ports/databases/mysql40-scripts
- /usr/ports/databases/mysql40-server
- 4.1系
portsディレクトリ
- /usr/ports/databases/mysql41-client
- /usr/ports/databases/mysql41-scripts
- /usr/ports/databases/mysql41-server
- 5.0系
portsディレクトリ
- /usr/ports/databases/mysql50-client
- /usr/ports/databases/mysql50-scripts
- /usr/ports/databases/mysql50-server
- 5.1系
portsディレクトリ
- /usr/ports/databases/mysql51-client
- /usr/ports/databases/mysql51-scripts
- /usr/ports/databases/mysql51-server
- 5.4系
portsディレクトリ
- /usr/ports/databases/mysql54-client
- /usr/ports/databases/mysql54-scripts
- /usr/ports/databases/mysql54-server
- 6.0系
portsディレクトリ
- /usr/ports/databases/mysql60-client
- /usr/ports/databases/mysql60-scripts
- /usr/ports/databases/mysql60-server
ここでは、無難な5.1系でインスールしてみましょう。 もし、どのバージョンが良いか迷ったら、5.1系で良いと思います。
mysqlをインストールする
先で決めたバージョンを、FreeBSDでは、おなじみのportsでインストールします。 ここでは、5.1系をインストールします。
- mysqlクライアントのportsディレクトリへ切り替える
$ cd /usr/ports/databases/mysql51-client
- mysqlクライアントをインストールする
$ make WITH_CHARSET=utf8 WITH_XCHARSET=all install clean ...
ここで指定すべきは、WITH_XCHARSETです。どの文字コードに対応させるかを指定します。
例えば、UTF8だけで良ければ、 WITH_XCHARSET=utf8 とします。 WITH_XCHARSET=all は、すべての文字コードという意味です。 もし、わからない場合は、WITH_XCHARSET=allで良いと思います。 日本語(+英語)以外に使わないなら、 WITH_XCHARSET=ujis,sjis,utf8 で十分です。さらに、UNICODEは一切使わないなら、最後の”utf8″も削除して良いでしょう。
ただ、最近では、ほとんどのphp関連ツール(CMSなど)では、通常、”utf8″を使うのが一般的になっていますから、”utf8″は含めておいた方が無難でしょう。
- mysqlサーバーのportsディレクトリへ切り替える
$ cd /usr/ports/databases/mysql51-server
- mysqlサーバーをインストールする
$ make WITH_CHARSET=utf8 WITH_XCHARSET=all install clean ...
ここで指定しているWITH_XCHARSETは、先のクライアントでも指定したものを同じです。どの文字コードに対応させるかを指定します。
例えば、UTF8だけで良ければ、 WITH_XCHARSET=utf8 とします。
- mysqlへperlでアクセスする場合は、p5-DBI,p5-DBDもインストールします。
※perlでアクセスする必要がない場合は、インストール不要です。
- p5-DBIのportsディレクトリへ切り替える
$ cd /usr/ports/databases/p5-DBI
- p5-DBIをインストールする
$ make BATCH=yes install clean ...
- p5-DBDのportsディレクトリへ切り替える
$ cd /usr/ports/databases/p5-DBD-mysql
- p5-DBDをインストールする
$ make BATCH=yes install clean ...
- p5-DBIのportsディレクトリへ切り替える
とりあえず、ここまででインストール完了です。 perl以外で、mysqlへアクセスする場合は、別途、インストールが必要な場合があります。 phpについては、別途、phpのインストールの記事で記載します。
この場合、再インストールが必要になるので、注意しましょう。
mysqlの初期設定を行う
とりあえず、mysqlのインストールが完了したら、次に、mysqlの初期設定を行います。
- my.cnfの編集
- サンプルのmy.cnfをコピーし、権限を変更し、編集を開始します。
$ cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf $ chmod 644 /etc/my.cnf $ vi /etc/my.cnf
- my.cnfの各カテゴリ下に、以下の行を追記します。
[mysqld] skip-character-set-client-handshake default-character-set = utf8 datadir=/home/mysql [mysql] default-character-set = utf8
【意味】
skip-character-set-client-handshake : クライアントの文字コードに依存しない
default-character-set = utf8 : デフォルト文字コードをUTF-8とする
datadir=/home/mysql : mysqlのホームディレクトリ(mysqlのバイナリデータの格納ディレクトリ)
- サンプルのmy.cnfをコピーし、権限を変更し、編集を開始します。
- mysqlのホームディレクトリを作成する
$ mkdir /home/mysql $ chown -R mysql:mysql /home/mysql
- mysqlサーバーを常時起動するようにrc.confへ追記する
$ vi /etc/rc.conf ... mysql_enable="YES" ...
mysql_enable=”YES”を追記します。
この記述を行うことでりブートしても自動的にmysqlサーバーが起動します。
- mysqlサーバーを起動する
$ /usr/local/etc/rc.d/mysql-server start ...
- mysqlサーバーの基本設定を行う
- mysqlサーバーの管理者でmysqlへログインする
$ mysql -u root ... mysql> use mysql; mysql>
mysql> のプロンプトが表示されてばOKです。
以降の説明は、mysql>のプロンプトから、mysqlのsql分を発行して、mysqlサーバーの設定を行っていきます。 そのため、必ず最後に;の文字列を入力することをお忘れなく。
- mysqlサーバーの管理者パスワードを設定する
mysql> set password for root@localhost=password('hogehoge');
上記では、hogehogeがパスワードになります。
- 不要なmysqlのデフォルトユーザを削除する
mysql> select user,host from mysql.user; +------+-----------------+ | user | host | +------+-----------------+ | root | 127.0.0.1 | | | localhost | | root | localhost | | | host.hoge.orz | | root | host.hoge.orz | +------+-----------------+ 5 rows in set (0.00 sec) mysql> delete from mysql.user where user='';
最初のselect user … で、現在登録されているユーザをすべて表示しています。
この中で、userの欄に空白があるものがありますから、この空白のユーザは、まず、削除しておきます。
delete from mysql.user … で、実際に削除しています。
※特に空白のユーザ名がない場合は、この操作は不要です。
- mysqlのユーザを追加する
mysql> insert into user set user="hoge", password=password("hogehoge"), host="localhost";
hoge@localhostで、hogehogeでログインできるようになります。
また、他のホストからのアクセスを許可したい場合は、ここで指定している host=”localhost” の localhostを変更し、上記のイメージでSQLを発行します。
例)
host2.exmapl.com というホストから許可したい場合は、以下のようにすれば良いです。
mysql> insert into user set user="hoge", password=password("hogehoge"), host="host2.exmapl.com";
また、このホスト名は、IPアドレスを指定することもできます。
例えば、ローカルLAN内の”192.158.1.128″からのアクセスを許可したい場合は、以下のようにすれば良いです。
mysql> insert into user set user="hoge", password=password("hogehoge"), host="192.158.1.128";
- データベースを追加する
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql> drop database test; mysql> CREATE DATABASE hogedb;
最初にshow databases;で、現在登録されているデータベースを確認します。
この中で、testがあれば、それは、デフォルトで設定されているテスト用のデータベースなので、ここでは、次のdrop database test;で削除しています。
最後にCREATE DATABASE hogedb;で、hogedbというデータベースを作成しています。
- mysqlの新規ユーザが新規データベースを操作できるようにする
mysql> grant all on hogedb.* to hoge@localhost;
上記の設定で、hogedbへのフルアクセスをhoge@localhostが行えるようになります。
以下のようなエラーが発生したら、
ほとんどの場合、データが更新されていないので、そんなデータありません・・・みたいなエラーなので、mysql> grant all on hogedb.* to hoge@192.158.1.128; ERROR 1133 (42000): Can't find any matching row in the user table
のようにFLUSH PRIVILEGES を実行してあげてデータを更新してあげるとうまくいくことがほとんどです。お試しを。mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.04 sec) mysql> grant all on hogedb.* to hoge@192.158.1.128; Query OK, 0 rows affected (0.00 sec)
- 最後に今まで編集したmysqlの情報を更新する
mysql> flush privileges;
この作業で、現在動作中のサーバーの情報も更新されます。
- mysqlサーバーの管理者でmysqlへログインする
これで、データベースができましたから、後は、phpとapacheが動けば、wordpressもjoomla!も動かせます。
それに簡単なSQLの勉強も、できますね。
やっぱし、大変と言えば、大変ですよね。好きじゃないとね。
格安レンタルサーバーでは、mysqlを完全に別のサーバーで稼働させることが多いです。
それは、負荷分散のためでもありますし、共有サーバーである以上、mysqlを使う人とmysqlを使わない人で、格差があまり出ないようにもしているんでしょうね。
何度も言いますが、ただブログやホームページを公開したいだけなら格安レンタルサーバーで十分です。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
2011年11月26日, 11:00 AM
mysqlの初期設定を行う
とりあえず、mysqlのインストールが完了したら、次に、mysqlの初期設定を行います。
my.cnfの編集
サンプルのmy.cnfをコピーし、権限を変更し、編集を開始します。
$ cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf
ココで質問なんですが、なんでファイルをコピーして編集するんでしょうか?
元ファイルのアクセス権を変更して編集じゃだめなんですか?
2011年11月26日, 1:43 PM
ysksn さん、コメントありがとうございます。
おっしゃるとおり、それでもOKです。
ここでは、my-medium.cnf というよく使われるサンプル設定ファイルをベースに設定すると楽なので、それを使っています。
mysqlの設定サンプルには、他にも my-small.cnf などもあります。
/usr/local/share/mysql/のディレクトリを参照されると良いと思います。
2011年11月27日, 4:02 PM
お返事ありがとうございます。
今日もこちらのサイトを参考にFreeBSD楽しくいじってます。
2011年11月28日, 9:20 AM
ysksn さん、返信ありがとうございます。
また、何かあったらコメントいただけたらうれしく思います。