広告:ページ内にてアフィリエイト広告を利用しています。
個別設定

Apacheの設定

このページではウェブサーバーのApacheをインストール、設定を説明します。

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のテストページが表示されます。

f:id:photoblg:20160903212154p:plain

停止

停止は以下のコマンドです。

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