レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

apacheをインストールする(Debian,Ubuntu編)

2013年3月14日 2015年5月15日
apache Debian,Ubuntu

今回は、apache(WEBサーバー)をインストールしてみます。
CentOS,ScientificLinux では、httpd という名前のパッケージですが、 Debian,Ubuntu では、そのままapache2 という名前のパッケージになります。

本当は、名前は、そのままapacheの方が良いとは思いますが、RedHatからの経緯があってhttpd と名前になっているらしいです。

では、早速、apache(httpd)をインストールしてみましょう。

CentOS,ScientificLinux編は、
httpd(apache)をインストールする(CentOS,ScientificLinux編) を参照してください。

apache(httpd)をインストール

apache(httpd)のインストールは、他のパッケージとなんら変わりません。aptで簡単にインストールすることができます。

$ aptitude -y install apache2
...

apache(httpd)のインストールが正しく行えたら、IPアドレスでアクセスしてみてください。
以下のようなデフォルトの初期ページが表示されればOKです。

apacheの最初の画面イメージ

apache(httpd)の初期設定を行います。

apache(httpd)の各設定ファイルは、それぞれのディストリビューションによってパスが異なるので注意してください。
CentOS,ScientificLinux では、 /etc/httpd ディレクトリ配下でしたが、 Debian,Ubuntu では、/etc/apache2 ディレクトリ配下になります。
(またファイル名も微妙に違います。)

CentOS,ScientificLinux では、 ほとんどの設定が httpd.conf で行っていましたが、
Debian,Ubuntu では、機能毎にファイルが分割されています。

以降に、それぞれの設定について、簡単に解説しておきます。

セキュリティ関連設定

/etc/apache2/conf.d/security

...
# server情報を表示しないようにします。
#ServerTokens OS
ServerTokens Prod
...
# Server管理者情報を表示しないようにする。
#ServerSignature On
ServerSignature Off
...

ServerTokens
HTTPのヘッダ情報のServerにどのような情報を出力するかを指定するもので、
OSとしたとき、以下のように出力されます。
Server	Apache/2.2.16 (Debian)
Prodとしたとき、以下のように出力されます。
Server	Apache
ServerSignature
サーバー情報を署名するかどうかを指定します。
例えば、404のデフォルトエラーページには、以下のようにサーバー情報が出力されます。
apacheの404エラー画面イメージ

ServerSignature Off とすると、下部のサーバー情報は一切出力されなくなります。

ディレクトリモジュール設定

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

<IfModule mod_dir.c>

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

</IfModule>

DirectoryIndex
クライアントがディレクトリをリクエストしたときに調べる リソースのリストを指定します。
ここでは、phpファイルも動作させたいので、index.phpを含めるようにします。
DirectoryIndexは、このファイルで指定しますが、デフォルトでphpまで指定されているので変更する必要はないと思います。
もし、index.phpが含まれていないようなら、含めておきましょう。

mimeモジュール設定

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

...
AddLanguage ja .ja
...
# AddTypeの最後にphpを追加します。
# php
AddType application/x-httpd-php .php
...
# cgiスクリプトの拡張子に.pl .cgiを追加します。
#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl
...
</IfModule>

AddLanguage
ファイル名を指定された言語にマップを指定します。
ここでは、日本語を追加したので、AddLanguage ja .jaがなければ追記します。
AddType
ファイル名の拡張子を指定されたコンテントタイプにマップを指定します。
ここでは、phpを追加したので、AddType application/x-httpd-php .phpがなければ追記します。
AddHandler
ファイル名の拡張子を指定されたハンドラにマップします。
ここでは、perlを追加したので、AddHandler cgi-script .cgi .plがなければ追記します。
AddType application/x-httpd-php .phpは、phpモジュールを動作させるための設定です。
あらかじめ apacheのための phpモジュールをインストールしておく必要があります。
$ aptitude install libapache2-mod-php5
以下の新規パッケージがインストールされます:
  apache2-mpm-prefork{ab} libapache2-mod-php5
更新: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
3,155 kB のアーカイブを取得する必要があります。展開後に 8,996 kB のディスク領域 が新たに消費されます。
以下のパッケージには満たされていない依存関係があります:
  apache2-mpm-prefork: 競合: apache2-mpm[仮想パッケージです]
  apache2-mpm-worker: 競合: apache2-mpm[仮想パッケージです]
以下のアクションでこれらの依存関係の問題は解決されます:

     以下のパッケージを削除する:
1)     apache2-mpm-worker



この解決方法を受け入れますか? [Y/n/q/?]Y
...
上記のように apache2-mpm-worker (スレッド版)の場合は、デフォルトでは、phpモジュールが動かないので、ここでは、apache2-mpm-prefork (プロセス版) を使うことにし、 解決方法を受け入れています。
また、phpの最新版のインストールについては、 Debian (Ubuntu 12) で Dotdeb から最新のPHP , MySQL をインストールする を参照してください。
AddLanguageは、このファイルで指定しますが、デフォルトでja(日本語)まで指定されているので変更する必要はないと思います。
もし、AddLanguage ja .jaが含まれていないようなら、含めておきましょう。

ネゴシエーションモジュール設定

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

...
# Serverの言語の優先順位を設定します。
#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 tr 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 tr zh-CN zh-TW
...
</IfModule>

LanguagePriority
クライアントが優先度を示さなかったときの言語の variant の優先度を 指定します。
ここでは、日本語の優先順位を上げたいので、先頭にjaを移動します。
LanguagePriorityは、このファイルで指定します。主に日本語での記述を行う場合は、ja(日本語)が先頭に来るように指定します。英語で主に記述する場合、デフォルトのままでOKです。

キャラクタ設定

/etc/apache2/conf.d/charset

...
#AddDefaultCharset UTF-8
...
</IfModule>

AddDefaultCharset
レスポンスのコンテントタイプが text/plain あるいは text/html の場合に追加するデフォルトの charset パラメータを 指定します。
ここでは、UTF-8デフォルトのままとしておきます。

デフォルトサイト設定

/etc/apache2/sites-available/default

<VirtualHost *:80>
	# serverの管理者メールアドレスを設定します。
	#ServerAdmin webmaster@localhost
	ServerAdmin www@example.com
	
	# serverのサーバー名を設定します。
	ServerName www.exmaple.com

	# CentOSなどのデフォルトのホームディレクトリに合わせておきます。
	#DocumentRoot /var/www
	DocumentRoot /var/www/html
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	#<Directory /var/www/>
	<Directory "/var/www/html/">
		#   "/var/www/html"ディレクトリ配下では、CGIが実行できるようにします。
		#Options Indexes FollowSymLinks MultiViews
	    Options Includes ExecCGI FollowSymLinks
		#   "/var/www/html"ディレクトリ配下では、.htaccess を常に有効にします。
		#AllowOverride None
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ServerAdmin
サーバがクライアントに送るエラーメッセージに含める電子メールの アドレスを 指定します。
ServerName
サーバが自分自身を示すときに使うホスト名とポートを 指定します。
DocumentRoot
ウェブから見えるメインのドキュメントツリーになる ディレクトリを 指定します。
Options
ディレクトリに対して使用可能な機能を設定します。
指定可能なキーワードは、以下のとおりです。
All
MultiViews を除いた全ての機能が有効となります。 これがデフォルトです。
ExecCGI
mod_cgi による CGI スクリプトの実行を許可します。
FollowSymLinks
サーバが、このディレクトリ内でシンボリックリンクをたどれるようにします。
Includes
mod_include が提供する SSI を有効にします。
IncludesNOEXEC
SSI は有効になりますが、#exec コマンド と #exec CGI は無効になります。 ただし、#include virtual により、ScriptAlias されたディレクトリで CGI を実行することは可能です。
Indexes
もし、URL がディレクトリにマップするリクエストであって、 且つ DirectoryIndex で指定したファイル (例えば、index.html) が ディレクトリ内に無ければ、mod_autoindex が ディレクトリ内の一覧を整形して返します。
MultiViews
mod_negotiation による コンテントネゴシエーション された “MultiViews” を許可します。
SymLinksIfOwnerMatch
シンボリック先のファイルまたはディレクトリが、 シンボリックリンクの所有ユーザ ID と同じ場合にのみシンボリックリンクを たどれるようにします。
AllowOverride
.htaccess で許可されるディレクティブの種類を 指定します。
指定可能なキーワードは、以下のとおりです。
All
.htaccess という コンテキスト を持つ 全てのディレクティブが利用できます。
None
.htaccess ファイルは完全に 無視されます。
AuthConfig
認証に関するディレクティブの使用を許可する (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require など)。
FileInfo
ドキュメントタイプを制御するディレクティブ (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime の Add* と Remove* ディレクティブなど)、 ドキュメントのメタデータを制御するディレクティブ (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName), mod_rewrite のディレクティブ RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule) と mod_actions の Action ディレクティブの使用を許可する。
Indexes
ディレクトリインデックスを制御するためのディレクティブの使用を許可する (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName など)。
Limit
ホストへのアクセス制御を行うためのディレクティブの使用を許可する (Allow, Deny, Order).
Options[=Option,…]
特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可する (Options と XBitHack)。 Options で設定するオプション を、(空白を含めない) コンマ区切りのリストにして等号の後に続けることで 設定できます。
Order
デフォルトのアクセス可能な状態と、Allow と Deny が評価される順番を制御します。
指定可能なキーワードは、以下のとおりです。
Deny,Allow
Deny ディレクティブが Allow ディレクティブの前に評価されます。 アクセスはデフォルトで許可されます。Deny ディレクティブに合わないか、Allow ディレクティブに合うクライアントはアクセスを許可されます。
Allow,Deny
Allow ディレクティブが Deny ディレクティブの前に評価されます。 アクセスはデフォルトで拒否されます。Allow ディレクティブに合わないか、Deny ディレクティブに合うクライアントはアクセスを拒否されます。
Mutual-failure
Allow のリストに現れて、 Deny のリストに現れないホストのみがアクセスを許可されます。 この順番付けは Order Allow,Deny と同じ効果を持ち、 その設定の方が好ましいために非推奨となっています。
Deny from {All|Host}
サーバがアクセスを拒否するホストを制御します。
指定可能なキーワードは、以下のとおりです。
All
すべてのホストにアクセスを拒否し、 アクセス制限は、 Deny ディレクティブと Order ディレクティブの設定で決まります。
Host
ホスト名、IPアドレス、ネットワークを指定し、それに対してアクセスを拒否します。アクセス制限は、 Deny ディレクティブと Order ディレクティブの設定で決まります。
Allow from {All|Host}
サーバのある領域にアクセスできるホストを制御します。
指定可能なキーワードは、以下のとおりです。
All
すべてのホストにアクセスを許可し、 アクセス制限は、 Deny ディレクティブと Order ディレクティブの設定で決まります。
Host
ホスト名、IPアドレス、ネットワークを指定し、それに対してアクセスを許可します。アクセス制限は、 Deny ディレクティブと Order ディレクティブの設定で決まります。
ScriptAlias
URL をファイルシステムの位置へマップし、マップ先を CGI スクリプトに指定します。
ErrorLog
サーバがエラーをログ収集する場所を指定します。
LogLevel
ErrorLog の冗長性を制御します。
指定可能なキーワードは、以下のとおりです。
emerg
緊急 – システムが利用できない
alert
直ちに対処が必要
crit
致命的な状態
error
エラー
warn
警告
notice
普通だが、重要な情報
info
追加情報
debug
デバッグメッセージ
CustomLog
ログファイルの名前と書式を設定します。
ここの設定情報は、デフォルトサイト情報になります。 つまりIPアドレス指定やサーバーのホスト名でアクセスされた場合などは、ここの設定情報に従います。

マルチドメインサイト設定

マルチドメインで、hoge.com というドメインを仮想ドメインとして扱いたい場合、以下のようにします。

  1. hoge.com 用の設定ファイルを準備します。
    # ここでは、defaultの設定ファイルをコピーして準備しておきます。
    $ cp /etc/apache2/sites-available/default /etc/apache2/sites-available/hoge.com

    以降に細かい設定内容は記述します。

  2. hoge.com ドメインを有効にします。
    # ここでは、/sites-available/hoge.com を sites-enabled/ にシンボリックリンクを作成します。
    $ ln -s /etc/apache2/sites-enabled/hoge.com /etc/apache2/sites-available/hoge.com

/etc/apache2/sites-available/hoge.com

<VirtualHost *:80>
	# serverの管理者メールアドレスを設定します。
	ServerAdmin www@hoge.com
	
	# serverのサーバー名を設定します。
	ServerName www.hoge.com

	# ホームディレクトリを指定します。
	DocumentRoot /var/www/hoge
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory "/var/www/hoge/">
		#   "/var/www/hoge"ディレクトリ配下では、CGIが実行できるようにします。
	    Options Includes ExecCGI FollowSymLinks
		#   "/var/www/hoge"ディレクトリ配下では、.htaccess を常に有効にします。
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


編集を終えたら、保存して、apache(httpd)を起動してみましょう。


apache(httpd)を起動する。

apache(httpd)を起動してみましょう。

$ /etc/init.d/apache2 start
...

$ cd /var/www/html
[html]$ echo '<?php echo phpinfo(); ?>' > info.php

起動が正しくできたら、先に作成した info.php IPアドレスでアクセスしてみましょう。

例)
http://192.168.1.1/info.php

以下のように出力されればOKです。
apacheのphp画面イメージ

最後に再起動しても起動するように設定しましょう。

$ sysv-rc-conf apache2 on
$ sysv-rc-conf --list apache2
apache2      0:off      1:off   2:on    3:on    4:on    5:on    6:off
sysv-rc-confは、CentOS,ScientificLinuxchkconfig と ほとんど同じように使用できるDebian,Ubuntu のパッケージです。
もし、インストールしていないようなら、インストールしておくと便利です。
$ aptitude install sysv-rc-conf
...

どうでしょうか?ちゃんとPHPまで連動して動きましたか?
ここまでできたら、Wordpressもインストールできそうですね。

ここで設定した内容は、必要最小限なので、詳細は、おいおい設定していくと良いと思います。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

httpd(apache)をインストールする(CentOS,ScientificLinux編)

さあ、ここまでに、phpとMySQLのインストールを行ってきました。 phpとMySQL、そして、httpd(apache(WEBサーバー)) ...

.htaccessで特定のホストからのアクセスを拒否する

今回は、apacheのアクセス規制です。 ここでの話は、FreeBSDもCentOSも関係なく、apacheの設定です。 一般的に、リダ ...

apache で phpのモジュール版とcgi版の切り替えを行ってみる

これまでのapache , php の設定では、暗黙の了解?ではないのですが、phpの動作環境としては、モジュール版として動作するように設定して ...

apache のsuEXEC で phpを動かしてみる

前回の「apache で phpのモジュール版とcgi版の切り替えを行ってみる」の関連で、suEXECを使ってみたいと思います。 ...

FreeBSDでapacheをインストール

さて、今回は、apacheのインストール手順です。 これができれば、Wordpress,Joomla!などphp + mysqlの組み合わせの ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.1955 [s]