このガイドでは、mod_mysql_vhostを使用して、Ubuntu12.10のlighttpdWebサーバー上に単純な仮想ホストを作成する方法について説明します。 mod_mysql_vhostを使用すると、lighttpdはMySQLデータベースからvhost構成を読み取ることができます。現在、ドメインとドキュメントルートをMySQLデータベースに保存できるため、非常に単純な仮想ホストになります。 vhostにさらにディレクティブが必要な場合は、lighttpd.confのグローバルセクションでディレクティブを設定する必要があります。つまり、すべてのvhostで有効になります。したがって、vhostがドメインとドキュメントルートのみが異なる場合は、mod_mysql_vhostが理想的です。
これがあなたのために働くという保証はありません!
1予備メモ
このチュートリアルのすべてのステップをroot権限で実行する必要があるため、このチュートリアルのすべてのコマンドの前に文字列sudoを付けるか、「
」と入力して今すぐrootになります。sudo su
2MySQL5のインストール
まず、次のようにMySQL5をインストールします。
apt-get install mysql-server mysql-client
MySQLルートユーザーのパスワードを入力するように求められます。このパスワードは[メール保護]ユーザーと[メール保護]ユーザーに有効であるため、後でMySQLルートパスワードを手動で指定する必要はありません。
MySQLの「root」ユーザーの新しいパスワード:<-yourrootsqlpassword
MySQLの「root」ユーザーのパスワードを繰り返します:<-yourrootsqlpassword
3Lighttpdとmod_mysql_vhostのインストール
次のようにlighttpd(まだインストールされていない場合)とmod_mysql_vhostをインストールできます。
apt-get install lighttpd lighttpd-mod-mysql-vhost
mod_mysql_vhostを有効にするには、/ etc / lighttpd / lighttpd.confを開き、server.modulesスタンザで「mod_mysql_vhost」を追加/有効にします。
vi /etc/lighttpd/lighttpd.conf
server.modules = ( "mod_access", "mod_alias", "mod_compress", "mod_redirect", "mod_mysql_vhost", # "mod_rewrite", ) [...] |
その後、lighttpdを再起動します:
/etc/init.d/lighttpd restart
4mod_mysql_vhostの構成
次に、MySQLにログインします...
mysql -u root -p
...そしてデータベースlighttpdを作成します:
CREATE DATABASE lighttpd;
次に、lighttpdデータベースのSELECT権限を持つデータベースユーザー(lighttpdとも呼ばれます)を作成します。
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
GRANT SELECT ON lighttpd.* TO [email protected] IDENTIFIED BY 'secret';
FLUSH PRIVILEGES;
(シークレットを任意のパスワードに置き換えてください。)
次に、lighttpdデータベースにドメインテーブルを作成し、MySQLを終了します:
USE lighttpd;
CREATE TABLE domains (
domain varchar(64) not null primary key,
docroot varchar(128) not null
);
quit;
ここで、/ etc / lighttpd / lighttpd.confを開き、ファイルの最後に次のmod_mysql_vhost構成を追加します。
vi /etc/lighttpd/lighttpd.conf
[...] mysql-vhost.db = "lighttpd" mysql-vhost.user = "lighttpd" mysql-vhost.pass = "secret" mysql-vhost.sql = "SELECT docroot FROM domains WHERE domain='?';" mysql-vhost.hostname = "localhost" mysql-vhost.port = 3306 |
(シークレットをlighttpd MySQLユーザーに以前に設定したパスワードに置き換えます。)
lighttpdを再起動します:
/etc/init.d/lighttpd restart
次に、仮想ホストを構成します...
5仮想ホストの構成
次に、2つの仮想ホストを構成します。1つはwww.example.com用(ドキュメントルート/var/www/www.example.com/webを使用)、もう1つはwww.example.org用(ドキュメントルート/ var / wwwを使用)です。 /www.example.org/web)。
まず、両方のWebサイトのドキュメントルートを作成します(まだ存在しない場合):
mkdir -p /var/www/www.example.com/web
mkdir -p /var/www/www.example.org/web
次に、MySQLにログインします...
mysql -u root -p
USE lighttpd;
...そして次のようにvhostsを作成します:
INSERT INTO domains VALUES ('www.example.com','/var/www/www.example.com/web/');
INSERT INTO domains VALUES ('www.example.org','/var/www/www.example.org/web/');
これで、MySQLシェルを離れることができます:
quit;
これで、vhostが構成されて機能し、lighttpdを再起動する必要がなくなりました。
vhostが期待どおりに機能しているかどうかを確認するために、各ドキュメントルートにindex.htmlファイルを作成します。1つは文字列「www.example.com」、もう1つは文字列「www.example.org」です。 ..
echo "www.example.com" > /var/www/www.example.com/web/index.html
echo "www.example.org" > /var/www/www.example.org/web/index.html
ブラウザでhttp://www.example.comとhttp://www.example.orgを呼び出します。 http://www.example.comにはwww.example.comが表示され、http://www.example.orgにはwww.example.orgが表示されます。
6つのリンク
- mod_mysql_vhost:http://redmine.lighttpd.net/projects/1/wiki/Docs:ModMySQLVhost
- lighttpd:http://www.lighttpd.net/
- Ubuntu:http://www.ubuntu.com/