Pandora Pocket

IT系と日常系の備忘録。三日坊主。

VPSでUbuntuサーバー 未完成備忘録 其の二 -Apacheの設定-

f:id:Ovis:20061014153348j:plain

 

続き。

必要なアプリケーションのインストールとApacheの設定を行う。

 

 

 

 

まずはいらないものを削除する。

私の場合はFTPサーバもメールサーバもいらないので

 

aptitude purge -y vsftpd

aptitude purge -y postfix

aptitude purge -y dovecot-common

 

としておいた。

 

次に(おそらく)必要なもののインストールを行う。

 

aptitude install -y apache2-dev

aptitude install -y xinetd

aptitude install -y php-pear

aptitude install -y php5-dev

aptitude install -y libapache2-mod-speedycgi

aptitude install -y sqlite3 php5-sqlite php-mdb2-driver-sqlite

aptitude install -y imagemagick libmagick9-dev

 

このうちSpeedyCGI、SQLiteImageMagickは利用するCGIなどが求める場合に入れるだけでいいかと。

私の場合SpeedyCGIはがっくしメニュー、SQLiteImageMagickphpBBが利用するので入れた。

 

 

 

インストールが終わったらApacheの設定。

 

まずはいらないモジュールを外す。

index.htmlなどがない場合ディレクトリ内のファイル一覧が表示されてしまうのを防ぐために

 

a2dismod autoindex

 

だけ外しておいた。他には特に今のところ外すものがないのでこれだけ。

 

逆に必要なものを有効にする。

 

a2enmod cache expires headers include rewrite speling

 

このうちincludeはSSIを利用する場合に必要なだけなので外してもいいかもしれない。また、spelingもユーザーの利便性を考慮しないならいらないかも。

 

必要なもののインストールが終わったらApacheの設定ファイルをいじることにする。

 

vi /etc/apache2/apache2.conf

 

Timeout 60

<IfModule mpm_prefork_module>

StartServers 3

MinSpareServers 3

MaxSpareServers 5

MaxClients 50

MaxRequestsPerChild 15

ServerLimit 128

</IfModule>

 

タイムアウトを短めにして、起動するApacheの数を制限するなどしてメモリー使用量を削減。

 

vi /etc/apache2/sites-available/default

 

<VirtualHost *:80>

ServerAdmin webmaster@localhost

 

DocumentRoot /var/www

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

 

CustomLog /var/log/apache2/access.log combined

ErrorLog /var/log/apache2/error.log

 

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

 

</VirtualHost>

 

あまりいじる必要がなさそうだったけど、ちょっと変えておいた。お好みで。

 

vi /etc/apache2/mods-available/deflate.conf

 

<IfModule mod_deflate.c>

 

# DEFLATEの有効化

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css

 

# 送信先ブラウザがNetscape 4.xの場合はtext/htmlのみ圧縮

BrowserMatch ^Mozilla/4 gzip-only-text/html

 

# 送信先ブラウザがNetscape 4.06-4.08の場合は圧縮しない

BrowserMatch ^Mozilla/4.0[678] no-gzip

 

# 送信先ブラウザがMSIEの場合は全て圧縮する

BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html

 

# プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを送信しないようにする

Header append Vary User-Agent env=!dont-vary

 

#画像ファイルは圧縮しない

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png|ico|pdf|mp3|ogg|wma|rm|wmv|mov|mpe?g)$ no-gzip dont-vary

SetEnvIfNoCase Request_URI .(?:z|taz|t?gz|t?bz2?|zip|lzh|sit|rar)$ no-gzip dont-vary

 

#コンテンツの圧縮転送

SetOutputFilter DEFLATE

</IfModule>

 

圧縮転送の設定。

 

vi /etc/apache2/mods-available/dir.conf

 

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

DirectoryIndex index.html index.htm index.php index.cgi index.xhtml index.shtml index.pl

 

/で終わるURLの場合に読み込まれるインデックスページを指定。左にあるファイルが優先される。

 

vi /etc/apache2/mods-available/httpd.conf

 

SetEnvIf Request_URI "^/favicon.ico$" no_log

 

faviconがないとログにいちいち記載されて気持ちが悪いので追加。

 

vi /etc/apache2/mods-available/mime.conf

 

gzip有効化

#AddEncoding x-gzip .gz .tgz

AddEncoding x-gzip .gz .tgz

欄の最上部にあげる

AddLanguage ja .ja

 

CGIを有効化

#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi .pl

 

PHPを有効化(追記)

AddType application/x-httpd-php .php

 

CGIなどの実行ができるように変更。なお、後で記述するsuPHPを利用する場合はCGIを有効化及びPHPを有効化の欄は書かないこと。

 

vi /etc/apache2/mods-available/negotiation.conf

 

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

 

正直必要性0なのだけど、一応。MultiViewでブラウザの言語ごとにページを変えたいときに設定するとかどうとか。よくわからなければやらなくてもいいのかもしれない。

 

vi /etc/apache2/conf.d/security

 

Apacheのバージョン情報を隠す

ServerTokens OS

ServerTokens Prod

 

HTTP レスポンスヘッダ

#ServerSignature Off

ServerSignature On

ServerSignature Off

#ServerSignature On

 

セキュリティ上表示されるとあまり好ましくないものを見せないように変更。

ServerSignatureは変えなくてもいいなんて話があるそうだけどよくわからないので変更しておいた。

 

vi /etc/apache2/sites-available/virtualhost.conf

 

<virtualHost *:80>

ServerName ドメイン

DocumentRoot /home/ユーザー名/public_html/

CustomLog /home/ユーザー名/log/access.log combined env=!no_log

ErrorLog /home/ユーザー名/log/error.log

Options ExecCGI FollowSymLinks MultiViews

LogLevel notice

<directory "/home/ユーザー名/">

AllowOverride All

Allow from All

Options +ExecCGI

</directory>

</virtualHost>

 

バーチャルホストの設定。上記は私が作ったテンプレートなので間違えているかも。

設定し終わったら下のコマンドを実行することでApacheに組み込まれる。

 

a2ensite virtualhost.conf

 

vi /etc/logrotate.d/apache2

 

"/var/log/apache2/*.log" {

"/var/log/apache2/*.log /home/*/log/*.log" {

 

バーチャルホストでアクセス、エラーログをユーザーのホームディレクトリにしたのでログローテートされるよう変更。

最近ようやくログローテートの意味を知った・・・。

 

vi /etc/hosts

 

サーバのIPアドレス rad-xen-vweb localhost.localdomain localhost

サーバのIPアドレス ドメイン rad-xen-vweb localhost.localdomain localhost

 

初期状態だとApacheの再起動時にエラーが出るのでこれで対処。

 

 

 

これでApacheの設定はひとまず終了。

 

次の記事へ続く。