ApacheでWebサーバを作ろう!
ここでは、Apacheのインストール手順を掲載しています。
※CentOS 5のサポートは2017年3月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
Apacheとは…?
Apacheはオープンソースで開発されているWebサーバ(HTTPサーバ)です。HTTPとはHyperText Transfer Protocolの略で、Webページで使われるHTMLや画像ファイルのデータ(コンテンツ)を送受信するためのルールのことです。
長年シェアナンバー1だったのですが、最近はNginxなどの新サーバが台頭してきています。
が!慣れているということで、今回はApacheで設定していきます。
Apacheのインストール
[root@co5 ~]# yum -y install httpd
Installed:
httpd.x86_64 0:2.2.3-92.el5.centos
Dependency Installed:
apr.x86_64 0:1.2.7-11.el5_6.5 apr-util.x86_64 0:1.2.7-11.el5_5.2
postgresql-libs.x86_64 0:8.1.23-10.el5_10
Complete!
Apacheの設定
[root@co5 ~]# vi /etc/httpd/conf/httpd.conf
ServerTokens OS
↓
ServerTokens ProductOnly
ServerAdmin root@localhost
↓
ServerAdmin ************@gmail.com (管理者のメールアドレス)
#ServerName www.example.com:80
↓
ServerName mhserv.info:80 (取得したドメイン)
<Directory "/var/www/html">
Options Indexes FollowSymLinks
↓
Options Includes ExecCGI FollowSymLinks
AllowOverride None
↓
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<IfModule mod_userdir.c>
UserDir disable
↓
#UserDir disable
#UserDir public_html
↓
UserDir public_html
</IfModule>
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
↓
<Directory /home/*/public_html>
AllowOverride All
Options Includes ExecCGI FollowSymLinks
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
DirectoryIndex index.html index.html.var
↓
DirectoryIndex index.html index.htm index.php index.cgi index.shtml
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
↓
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
↓
CustomLog logs/access_log combined env=!no_log
SetEnvIf Request_URI "default\.ida" no_log
SetEnvIf Request_URI "cmd\.exe" no_log
SetEnvIf Request_URI "root\.exe" no_log
SetEnvIf Request_URI "Admin\.dll" no_log
SetEnvIf Request_URI "NULL\.IDA" no_log
SetEnvIf Request_URI "xmlrpc\.php" no_log
SetEnvIf Request_URI "zero_vote" no_log
SetEnvIf Request_URI "sumthin" no_log
SetEnvIf Request_URI "~akirin" no_log
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" no_log
#LANのネットワークアドレスを指定
SetEnvIf Remote_Addr 192.168. no_log
ServerSignature On
↓
ServerSignature Off
<Directory "/var/www/icons">
Options Indexes MultiViews
↓
Options MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AddDefaultCharset UTF-8
↓
#AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
↓
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .pl
コンテンツの圧縮転送
コンテンツを転送するときに、サーバ側で圧縮して転送する"mod_deflate"というモジュールもがあります。
以下のように入力をすることで、設定された形式のファイルに対し圧縮転送を行うことが出来ます。
もはや意味があるかは分かりませんが、一応入れておきましょう。
[root@co5 ~]# vi /etc/httpd/conf.d/deflate.conf
<IfModule mod_deflate.c> SetOutputFilter DEFLATE # Mozilla4系などの古いブラウザで無効、しかしMSIEは除外 BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html # gifやjpgなど圧縮済みのコンテンツは再圧縮しない SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary SetEnvIfNoCase Request_URI _\.utxt$ no-gzip # htmlやcssなどは圧縮 AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php </IfModule>
Perlへのシンボリックリンクの作成
CGIによって実行場所が/usr/bin/perlだったり/usr/local/bin/perlだったりするので、それに対応するため、シンボリックリンクを張ります。
[root@co5 ~]# ln -s /usr/bin/perl /usr/local/bin/perl
[root@co5 ~]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
次は通信を暗号化しましょう。
今回新しく登場したコマンド
- ln
- whereis
[広告]
トップページ
CentOS 5
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○その他