| 無料ホームページスペース無料メールアドレスをご提供します。 KANSAI WEBサービス会員規約 |
| コンピュータ/通信総合サイト・広島の関西商事 管理人:大内 雅司 |
ApacheでWebサーバを構築する
| このセクションのポイント |
| @Webサーバは、World Wide Webのためのサーバであり、Apacheが最も有名である。 AWebでは、URLを用いてオブジェクトにアクセスし、その際に用いられるプロトコルはHTTPである。 BApacheはhttpdパッケージにてインストールされる。 |
★URLによるWebアクセスの仕組み
Webサーバは、ホームページを閲覧させるためのサーバで、Webブラウザがそのクライアントソフトウェアになります。
ブラウザのアドレス欄に「URL」を入力すれば、自動的にホームページが表示されます。
URLは、Uniform Resource Locatorの略で、インターネットのどこにアクセスしたいリソース(情報や仕組み)があるのかを記述する形式です。
▼URL→http://kansai.homelinuc.com/index.html
@スキューム名
最初のhttpの部分で、これからアクセスしようとしている、リソースの種類を”http”と指定しています。
Aアクセスするサーバのアドレスを指定しています。アドレスの指定は、”kansai.homelinux.com”のほかに”210.134.165.147”といったIPアドレスでも可能です。
Bアクセスしたサーバで、どの位置にあるリソースにアクセスするかをパスで指定します。
Webサーバとブラウザでのやり取りは「HTTP」というプロトコルで行なわれており、サーバはTCPのポート:80番で待受けしています。
★Apacheのインストール(Apacheのパッケージはhttpdです。)
| [root@linux ~]# yum install apr apr-util httpd [enter] |
次にホスト名を解決できる状況にしておきます。次のコマンドを実行してみてください。
| [root@linux ~]# nslookup kansai.homelinux.com [enter] |
ここで次のようなエラーメッセージが出て、自分自身のホスト名が解決できない場合があります。
| kansai.homelinux.com: Unknown host |
この場合は、DNSの設定を正しく行なうか、”/etc/hosts”ファイルに次のような1行を加えます。
| 192.168.0.12 kansai.homelinux.com kansai |
”/etc/hosts”ファイルには、”IPアドレス 正式なホスト名 ホストの別名”の順で、IPアドレスに対応するホスト名を記述することができます。
”nslookup”コマンドでホスト名の解決ができるようになれば、Apacheを起動してみます。
| [root@linux ~]# /etc/rc./init.d/httpd start [enter] |
これでApacheが起動しました。最後に、Linux起動時にApacheも立ち上がるように、いかのコマンドを実行しておきます。
| [root@linux ~]# chkconfig httpd on [enter] |
★ブラウザからApacheにアクセスする
Apacheを起動したら、ブラウザからローカルでアクセスできるはずです。DNSにより名前解決ができる場合はホスト名(FQDN)でアクセス可能ですが、そうでない場合はIPアドレスでアクセスしてみましょう。サーバのIPアドレスは「192.168.0.12」でURLを指定してください。
Apacheのテストページが表示されればインストールと起動の成功です。
★Apachenoモジュールの追加と機能(ここでは、説明だけに留めて置きます。)
多くのモジュールを組み込んだ場合は、Apacheを多機能な構成にすることが可能です。逆にモジュールを取り外せば、パーフォーマンスを高めることにつながります。
Fedora Core付属のApacheには様々なモジュールが”/etc/http/modules”ディレクトリに用意されています。
| モジュールな | 役割 |
| mod_access.so | クライアントのホストまたはIPアドレスでアクセス制限を行ないます。 |
| mod_cgi.co | CGIを使用するために必要です。 |
| mod_dav.co | WebDAV機能を利用するために必要です。 |
| mod_log_config.so | ログファイルの記録や、ログ書式の変更を行ないます。 |
| mod_alias.so | URLパスの部分と実際のディレクトリの位置との関連付けを行ないます。 |
| mod_auth.so | ユーザ名とパスワードによる、ユーザ認証を行ないます。 |
上記のようなモジュールを使用するためには、Apacheの設定ファイルである”/etc/httpd/conf/httpd.conf”や”httpd.comf”から読み込まれる”/etc/httpd/con.d/*conf”ファイルに記述を行なう必要があります。
★ホームページを公開
| このセクションのポイント |
| @ホームページのデータを置く所はデフォルトでは、”/var/www/html”となっている。 Aホームページを作るには、上記ディレクトリ内のファイルを直接書き換えるか、Windowsクライアント等から転送する。 BWindowsで作成したファイルをLinuxへ移転するには様々な方法がある。 |
★Linux上でホームページ作成
「vi」エディタを使ってHTMLファイルを作成することで、Linuxじょうで直接ホームページを作成できます。Apacheのデフォルトでは、HTMLは”/var/www/html”に設置するようになっておりますので、まずはこのディレクトリに移動します。
| [root@linux ~]# cd /var/www/html [ener] |
ここで、テスト用ホームページ作成用ディレクトリとして、”test”という名前のディレクトリを作成します。
| [root@linux ~]# mkdir test [enter] [root@linux ~]# ls [enter] test |
”test”ディレクトリに移動して、「vi」エディタで簡単なホームページを作成してみましょう。ここでは、”hello.html”というファイル名でホームページを作ってみます。
| [root@linux html]# cd test [enter] [root@linux test]# vi hello.html [enter] |
”hello.html”の内容は、以下のようなものでOKです。
| <html> <head><title>Hello</title><head> <body> Hello! </body> </html> |
保存すると、”/var/www/html/test/hello.html”というファイルができていることになります。
このファイルにブラウザからアクセスするには、以下のようにURLを指定します。
「http://192.168.0.12/test/hello.html」
★Windowsで作成したページを公開
ここでは、Windowsで作成したホームページをLinuxにアップロードし、Apacheで公開するための方法を説明します。
まず、Linux上にファイルをアップロードする方法ですが、ここでは4通りの方法があります。
@FTPサーバを利用する。
ASambaサーバを利用する。
BWebDAVシステムを利用する。
CSCPを利用する。
※BのWevDAVシステムはFedora CoreのApacheに標準で付属するWebDAVモジュールを使用することによってApacheにWebDAVの機能を持たせることができます。
★Apacheの設定を」いろいろ変更してみる
| このセクションのポイント |
| @Apacheの設定は、”/etd/httpd/conf/httpd.conf”ファイルにて行なう。 ASeerverAdminとServerNameで管理者ネールアドレスとサーバ名を変更できる。 BDocumentRootを使用するとホームページを設置するディレクトリを指定できる。 BDirectoryIndexで、省略時に使用するファイル名を変更できる。 |
★Apache設定の概要
Apacheのメインの設定ファイルは”/etc/httpd/conf/httpd.conf”ファイルです。このファイルを書き換えることによって、Apacheの動作を様々に変更することができます。
設定の変更は「vi」エディタで直接編集しておこないます。
| [root@linux ~]# vi /etc/httpd/conf/httpd.conf [enter] |
”#”で始まる部分はコメントで、設定としては機能しません。
”#”で始まってない部分が実際に設定として機能する部分です。
コメント部分には英語で設定に関する説明が書いてあります。
このファイルを変更したり、追記したりすることによって、Apachの設定変更が可能となります。編集し終わったら保存して、Apacheに設定ファイルをリロード(再読み込み)させれば、新しい設定が有効になります。
リロードの手順は次のようになります。
| [root@linux ~]# /etc/rc.d/init.d/httpd reload
[enter] httpdを再読み込み中: [ OK ] |
★管理者アドレスとサーバ名の設定
| [root@linux -]# vi /etc/httpd/conf/htpd.conf [enter] |
■管理者アドレスは、以下の”root@localhost”の部分を書き換えて下さい。
| # # ServerAdmin: your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents # #ServerAdmin root@localhost(del2005/02/08)------------>この行を"#"でコメントにするか書き換える ServerAdmin masashi@ms8.megaegg.ne.jp---------------->実際の管理用のメールアドレスを書き込む |
■次にサーバ名を設定します。IPアドレスではなくサーバ名で設定を行なう場合には、事前にDNSの設定を行なって名前解決ができるようにしておかなければなりません。
サーバ名の設定は】最初はコメントになっていますので」”#”を外してから、サーバ名を記述するか、新たに追加書き込みを行ないます。
| # if your host doesn't have a registered
DNS name, enter its IP address her. # you will have to access it by address anyway , and this will make # redirections work in a sensible way # #ServerName www.example.com:80--------------->(mod 2005/02/08) ServerName kansai.homelinux.com--------------->実際のドメインを追加書き込みしました。 |
※変更を保存した後、設定ファイルをリロード(再読み込み)すれば、変更した設定が有効になります。
| [root@linux ~]# /etc/rc.d/init.d/httpd reload
[enter] httpdを読み込み中: [ OK ] |
★トップページとして表示されるファイルを変更する
多くのサイトでは、アクセスしたとき際にファイル名を指定しなくても、トップページが表示されます。これは、”/etc/httpd/conf/httpd.conf”ファイルに、ファイル名が指定されなかった場合に表示するファイルのリストが設定されているからです。インストール初期の設定では、”index.html”と”index.hml.var”が設定されています。
このようなトップページとして表示されるファイルを、「インデックスファイル」と呼びます。
| # DirectoryIndex: sets the file that Apache
will serve if a directory # is requested # # The index.html.var file (a type-map) is used to deliver content- # negotiated documents. The MultiViews Option can be used for th # samw purpose, but it is much slower # #DirectoryIndex index.html index.html.var------------->(add 2005/02/08)"#"で無効にする。 DirectoryIndex index.html index.html.var index.htm index.cgi index.php default.php <--------追加する |
※変更を保存した後、設定ファイルをリロード(再読み込み)すれば、変更した設定が有効になります。
| このセクションのポイント |
| @DocumentRootを使用するとホームページを設置するディレクトリを指定できる。 Aユーザごとのホームページ公開用ディレクトリの設定 B文字化けを直す CCGIを実行できるよう設定する。 DApacheの各オプションの説明 |
★ドキュメントルートの変更(特に変更の必要は無い)
初期設定では、”http://192.168.0.12/ファイル名”でアクセスするとサーバ側の”/var/www/html/ファイル名”が表示されるようになっています。
”/var/www/html/”のように、URLによるアクセスで起点となるディレクトリを、「ドキュメントルート」と呼びます。
「ドキュメントルート」をを他のディレクトリに変更したい場合は、”/etc/httpd/conf/httpd.conf”ファイル内の「DocumentoRoot」という設定をおかないます。
例えば、”/home/www”ディレクトリをドキュメントルートにしたければ、まず、「vi」エディタで”/etc/httpd/conf/httpd.conf”ファイルを編集します。
| [root@linux ~]# vi /etc/httpd/conf/httpd.conf [enter] |
そして、以下のようになっている設置を変更すればOKです。
| # # DocunentRoot: The directory out of which you will server your # documents, By default, all requests are taken from this directory, but # symbolic links and aliases may be used topoint to other locations. # #DocumentRoot "/var/www/html"---------->(mod 2005/02/08)”#"で無効にする。 DocumentRoot "/home/www"<-------------変更した。 |
※変更を保存した後、設定ファイルをリロード(再読み込み)すれば、変更した設定が有効になります。
★ユーザごとのホームページ公開用ディレクトリの設定
サーバーに登録されているユーザーそれぞれが自分のWebページを持てるようにしたい場合もあります。このような場合、一般的に「http://サーバー名/ユーザー名/」というURLでそれぞれのユーザーのWebページにアクセスできるように設定します。これらのWebページは設定次第で任意のディレクトリに対応付けられますが、通常はユーザーのホーム・ディレクトリにある「public_html」というディレクトリに設定されることが多いです。
つまり、”/home/user01/public_html”ディレクトリにある(index.html)インデックスWebページには、「http://サーバー名/〜user01/」というURLでアクセスできます。
この関連付けは、Apacheの設定ファイルの中で「UserDir」という命令を使って設定します。
| [root@linux ~]# vi /etc/httpd/conf/httpd.conf [enter] |
■編集が必要になるのは2行だけです。
| <IfModule mod_userdir.C> # # UserDir is disabled by default since it can # of a username on the system (dependeng on h # permissions). # # UserDir disable------------>"#"を付ける # To enable requests to /~user/ to serve the # directory, remove the "UserDir disaable" lin # #UserDir public_html<---------"#"を取り除く |
これにより、ホーム・ディレクトリとの関連付け処理が有効になり、「http://サーバー名/〜ユーザー名/public_html」とした際にアクセスされるディレクトリが、
「/home/ユーザー名/public_html」と設定されます。
※変更を保存した後、設定ファイルをリロード(再読み込み)すれば、変更した設定が有効になります。
文字化けを直すには
Apacheの標準設定では、日本語が正常に表示されない場合があります。これはApacheの標準言語が「ISO−8859−1」と固定されているからです。
標準言語を指定しないようにすると、日本語が正常に表示されるようになります。
また、httpd.comfを編集します。
| [root@linux ~]# vi /etc/httpd/conf/httpd.conf [enter] |
設定ファイル中の「AddDefaultCharset ISO-8859-1」という行に”#”を付け加え「#AddDefaultCharset
ISO-8859-1」に書き換えるだけです。
※変更を保存した後、設定ファイルをリロード(再読み込み)すれば、変更した設定が有効になります。
★CGIを実行できるよう設定する。
Apacheの初期状態では、「/var/www/cgi-bin」という特定のディレクトリのみがCGIディレクトリを実行可能になっています。
そのため、Apacheがドキュメント・ルートでもCGIが起動できるよう設定の必要があります。
| # # AddHandler allows you to map certain file estensions to "handlers": # actions unrelater to filetype . These can be either built into the server # or added with th Action directive (see below) # # To use CGI scripts outside of ScriptAliased derectories: # (you will also need to add "ExecCGI" to th "Options" directives.) # #AddHandler cgi-script .cgi .pl-------->"#"を削除して「.pl」を追記する。 |
| <Directory "var/www/html"> Options Indexex incledes FollosSymLinks ExecCGI<----追記する。 AllowOverride None Allow from all Order allow,neny </Directory> |
★Apacheの各オプションの説明
| オプション | 意味 |
| ExecCGI | CGIぷろぐらむの実行機能を有効にします。 |
| FollowSymlinks | シンボリック・リンク先へのアクセスを許可します。 |
| Includes | SSIのりようを許可します。 |
| IncludesNOEXEC | #execと#incledeを除くSSI命令の利用を許可します。 |
| Indexes | URLでディレクトリを指定し、かつそのディレクトリにDirecoryindex で指定したファイルが存在しないとき、ディレクトリのファイル一覧を 返送します。 不用意にこのオプションを設定すると、意図しないファイルへのアクセス を許してしまうので、注意が必要です。 |
| MultiViews | 各言語用のコンテンツを用意し、同一のURLに対して返送するコンテンツ を切り替える機能を有効にします。 |
| SymLinksIfOwnerMatch | シンボリック・リンクの所有者とリンクが参照しているファイルの所有者が 同一のばあいのみ、リンク先へのアクセスを許可します。 セキュリティは高まりますが、若干Apacheの処理性能が落ちます。 |
| copy right kansai-syoji,.co all right reserved Web-Master masashi ouchi http://kansai.homelinux.com/~Linux |