このページではウェブサーバーのApacheをインストール、設定を説明します。
Contents
Apacheのインストール
インストールはyumコマンド一発で完了するのでとても簡単です。sudo yum install httpdでエンターキーを押してください。
sudo yum -y install httpdという感じで、-yオプションを入れると途中の確認を全てyで返答してインストールをすることも出来ます。
sudo yum install httpd [sudo] password for (ユーザー名): 読み込んだプラグイン:fastestmirror, security インストール処理の設定をしています Loading mirror speeds from cached hostfile epel/metalink | 5.1 kB 00:00 * base: ftp.tsukuba.wide.ad.jp * epel: ftp.riken.jp * extras: ftp.tsukuba.wide.ad.jp * updates: ftp.tsukuba.wide.ad.jp base | 3.7 kB 00:00 epel | 4.3 kB 00:00 epel/primary_db | 5.9 MB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> Package httpd.x86_64 0:2.2.15-54.el6.centos will be インストール --> 依存性の処理をしています: httpd-tools = 2.2.15-54.el6.centos のパッケージ: httpd-2.2.15-54.el6.centos.x86_64 --> 依存性の処理をしています: apr-util-ldap のパッケージ: httpd-2.2.15-54.el6.centos.x86_64 --> トランザクションの確認を実行しています。 ---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be インストール ---> Package httpd-tools.x86_64 0:2.2.15-54.el6.centos will be インストール --> 依存性解決を終了しました。 依存性を解決しました =========================================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 =========================================================================================================================================== インストールしています: httpd x86_64 2.2.15-54.el6.centos updates 833 k 依存性関連でのインストールをします。: apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k httpd-tools x86_64 2.2.15-54.el6.centos updates 79 k トランザクションの要約 =========================================================================================================================================== インストール 3 パッケージ 総ダウンロード容量: 927 k インストール済み容量: 3.1 M これでいいですか? [y/N] (yを入力してエンター) パッケージをダウンロードしています: (1/3): apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm | 15 kB 00:00 (2/3): httpd-2.2.15-54.el6.centos.x86_64.rpm | 833 kB 00:00 (3/3): httpd-tools-2.2.15-54.el6.centos.x86_64.rpm | 79 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------------------- 合計 2.9 MB/s | 927 kB 00:00 rpm_check_debug を実行しています トランザクションのテストを実行しています トランザクションのテストを成功しました トランザクションを実行しています インストールしています : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 1/3 インストールしています : httpd-tools-2.2.15-54.el6.centos.x86_64 2/3 インストールしています : httpd-2.2.15-54.el6.centos.x86_64 3/3 Verifying : httpd-tools-2.2.15-54.el6.centos.x86_64 1/3 Verifying : httpd-2.2.15-54.el6.centos.x86_64 2/3 Verifying : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 3/3 インストール: httpd.x86_64 0:2.2.15-54.el6.centos 依存性関連をインストールしました: apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd-tools.x86_64 0:2.2.15-54.el6.centos 完了しました!
Apacheの起動と停止と再起動
起動
起動は以下コマンドです。
sudo service httpd start
[sudo] password for (ユーザー名):
Starting httpd: [ OK ]
ブラウザからIPアドレスでアクセスするとApacheのテストページが表示されます。
停止
停止は以下のコマンドです。
sudo service httpd stop
[sudo] password for (ユーザー名):
Stopping httpd: [ OK ]
再起動
再起動は以下のコマンドです。
sudo service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
エラー
sudoをつけなかったり、許可されていないユーザーが実行した場合、Permission deniedとエラーになります。
service httpd start
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]
Apacheの自動起動
確認
自動起動になっているか chkconfig –list httpd コマンドで確認。
chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
全てoffの場合は自動で起動しない。この数字はランレベルといいLinuxの動作モードの種類を表しています。
特別な場合以外は、ランレベルは特に気にしなくていいでしょう。
自動起動の設定
sudo chkconfig httpd on コマンドで自動起動の設定ができます。
sudo chkconfig httpd on
自動起動の設定をするとランレベル2、3、4、5がonになります。
chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
自動起動の停止
sudo chkconfig httpd off コマンドで自動起動を停止ができます。
sudo chkconfig httpd off
Virtualhostの設定
1台のサーバーで複数のサイトを設置したい場合はVirtualhost(バーチャルホスト)を利用します。
#NameVirtualHost *:80 ↓ コメントアウトを外す NameVirtualHost *:80
あらかじめDNS設定済みの(ドメインでこのサーバーにアクセスできるようにしてある)ドメインを設定。
ドメイン名:hoge.com
ドキュメントルート: /var/www/html/hoge.com
基本
最低限の設定は以下の通りです。
<VirtualHost *:80> DocumentRoot /var/www/html/hoge.com ServerName hoge.com ErrorLog logs/hoge-error_log CustomLog logs/hoge-access_log common </VirtualHost>
wwwありに統一
wwwなしでアクセスがあった場合、wwwありに301リダイレクト。
<VirtualHost *:80>
ServerName hoge.com
RedirectMatch 301 (.*) http://www.hoge.com$1
</VirtualHost *:80>
<VirtualHost *:80>
ServerName www.hoge.com
DocumentRoot /var/www/html/hoge.com
ErrorLog logs/hoge-error_log
CustomLog logs/hoge-access_log common
</VirtualHost *:80>
wwwなしに統一
wwwありでアクセスが有った場合、wwwなしに301リダイレクト。
<VirtualHost *:80>
ServerName www.hoge.com
RedirectMatch 301 (.*) http://hoge.com$1
</VirtualHost *:80>
<VirtualHost *:80>
ServerName hoge.com
DocumentRoot /var/www/html/hoge.com
ErrorLog logs/hoge-error_log
CustomLog logs/hoge-access_log common
</VirtualHost *:80>
.htaccessを利用する場合
.htaccessを利用する場合はAllowOverride Allとして.htaccessによる上書き設定の許可をする必要があります。拒否する場合はAllowOverride Noneとなります。
<VirtualHost *:80> ServerName www.hoge.com DocumentRoot /var/www/html/hoge.com <Directory "/var/www/html/hoge.com"> Options FollowSymlinks AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog logs/hoge-error_log CustomLog logs/hoge-access_log common </VirtualHost *:80>
設定の確認
上記の設定を反映するには、Apacheの再起動もしくはhttpd.confの再読み込みをする必要があります。しかし設定にミスがあると起動ができなくなるため再起動前に構文チェックのクセをつけましょう。
構文チェックは httpd -t コマンドでチェックができます。
異常がなければSyntax OKと表示されます。
[hoge@wwwXXXXXui ~]$ httpd -t Syntax OK
異常がある場合Syntax error on line X of /etc/httpd/conf/httpd.confと表示されます。ここではline of ◯にある行数に問題のある記述があることがわかります。
[hoge@wwwXXXXXui ~]$ httpd -t Syntax error on line 1 of /etc/httpd/conf/httpd.conf: Invalid command '1#', perhaps misspelled or defined by a module not included in the server configuration