CentOS 7 への Apacheインストール。最短でウェブサーバーを構築してテストページを表示する。

以前のCentOSに関する記事「CentOS 7 インストール Linuxを始めるにはインストールからがお勧め」と「CentOS7の基本設定 Linuxのインストール後に設定する9つのポイント」でインストールと基本的な設定までが完了しました。折角、作成した環境。利用しない手はありません。
本記事では、以前の記事で構築したCentOSの環境を利用してウェブサーバーを最短で構築、テスト用のウェブページが表示できるところまでを紹介します。
ウェブサーバーを導入する環境は、以前の記事で詳細に紹介していますが、基本的な前提条件は以下の通りになります。
- OSのバージョンはCentOSで最新のバージョン7.4を利用しています。
- CentOS 7系であれば、どのバージョンでも同じ手順で構築が可能です。
- サーバーはインターネットへ接続されており、グローバルIPアドレスが一つ、割り当てられています。
尚、CentOSの場合、バージョン確認は以下のコマンドで実施できます。
|
# cat /etc/redhat-release |
本環境では
|
CentOS Linux release 7.4.1708 (Core) |
が表示されます。この環境を前提に先へ進めて行きます。
※これ以降はApacheとhttpdという記述が混在していますが、基本的には同じものとして読み進めて下さい。
1.Apache用ユーザーの追加とパスワードの設定
まずApacheを動作させるためにユーザーを追加します。
デフォルトではApacheのインストール時に同名のユーザー(apache)が作成されますが、これは利用せずに新規でwwwというユーザーを追加します。Apacheユーザーについてはコンテンツアップロード時の権限と、ユーザー名が分かってしまう可能性を考慮して、本記事では利用しません。
※wwwユーザーを作成していますが、ユーザー名は任意になりますので、www以外でも問題ありません。
1-1.ユーザー作成
ユーザー追加はuseraddコマンドで行います。-sオプションを付けることでshellを指定しています。
wwwユーザーはサーバーへログインすることがないので、シェルとして”/sbin/nologin”を指定します。成るべくシステムへログインできるユーザーを制限することがセキュリティの基本です。
|
# useradd -s /sbin/nologin www |
エラーが出力されなければ、ユーザーの作成は完了です。
1-2.パスワードの設定
続いて、作成したユーザーにパスワードの設定を行います。
|
# passwd www ユーザー www のパスワードを変更。 新しいパスワード: (パスワードを入力) 新しいパスワードを再入力してください: (パスワードを再入力) passwd: すべての認証トークンが正しく更新できました。 |
パスワードは任意になりますが、成るべく複雑なものを設定することをお勧めします。エラーの出力が無ければパスワードの設定は完了です。
1-3.作成したユーザーの確認
作成したウェブサーバー用のユーザー”www”についての情報を確認します。
/etc/passwdファイルに作成したwwwユーザーの情報が追加されていることを確認します。確認は以下のコマンドで行います。
|
# cat /etc/passwd | grep www www:x:1006:1006::/home/www:/sbin/nologin |
続いてidコマンドでユーザーとグループが表示されることを確認します。
|
# id www uid=1006(www) gid=1006(www) groups=1006(www) |
wwwユーザーに関する情報が表示されればユーザーの確認は完了です。
2.httpdパッケージの確認
Apacheは通常、httpdという名前でパッケージ化されています。CentOSでは前の記事でも紹介していますが、yumというコマンドでパッケージの導入を行います。ここではhttpdパッケージの詳細について確認の方法を記載します。
2-1.パッケージの確認
先ずはCentOSに含まれるhttpdと名前の付くパッケージのリストを確認します。
パッケージリストの確認は、yumコマンドにオプションのlistを付けて実行します。
そのまま実行すると、全てのパッケージリストが表示されますので、抽出用コマンドのgrepでhttpd文字列が含まれるものだけを抜き出します。
|
# yum list | grep httpd httpd.x86_64 2.4.6-67.el7.centos.6 updates httpd-devel.x86_64 2.4.6-67.el7.centos.6 updates httpd-manual.noarch 2.4.6-67.el7.centos.6 updates httpd-tools.x86_64 2.4.6-67.el7.centos.6 updates keycloak-httpd-client-install.noarch 0.6-1.el7 base libmicrohttpd.i686 0.9.33-2.el7 base libmicrohttpd.x86_64 0.9.33-2.el7 base libmicrohttpd-devel.i686 0.9.33-2.el7 base libmicrohttpd-devel.x86_64 0.9.33-2.el7 base libmicrohttpd-doc.noarch 0.9.33-2.el7 base python2-keycloak-httpd-client-install.noarch |
上記の出力結果からわかるように、httpdの名前の付くパッケージは複数あります。
この中でウェブサーバーの導入に関連するものは
- httpd.x86_64 2.4.6-67.el7.centos.6
- httpd-devel.x86_64 2.4.6-67.el7.centos.6
- httpd-manual.noarch 2.4.6-67.el7.centos.6
- httpd-tools.x86_64 2.4.6-67.el7.centos.6
の4パッケージになります。各パッケージは以下のような機能が含まれています。
- httpd.x86_64 (httpdウェブサーバー本体)
- httpd-devel.x86_64 (httpdに関連する開発ツール、モジュールなどのパッケージ)
- httpd-manual.noarch (httpdのマニュアル)
- httpd-tools.x86_64 (httpdに関連するツール群)
ここでは、この4パッケージをインストールします。
3.httpdパッケージのインストール
項目2.で紹介したhttpdに関連するパッケージを、実際にインストールしていきます。
3-1.yumコマンドによるhttpdのインストール
httpdパッケージはyumコマンドにinstallオプションを付けることでインストールすることができます。項目2-1.で4パッケージが確認できましたので、全てのパッケージを以下のコマンドでインストールします。
|
# yum -y install httpd httpd-tools httpd-devel httpd-manual |
上記ではyumコマンドに-yオプションを付けることでインストール時の確認応答を省いています。
パッケージを複数インストールする場合はスペースを入れてパッケージ名を列記します。コマンドを実行すると、以下のようにインストールが開始されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: ftp.yz.yamagata-u.ac.jp * extras: ftp.yz.yamagata-u.ac.jp * updates: ftp.yz.yamagata-u.ac.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ httpd.x86_64 0:2.4.6-67.el7.CentOS.6 を インストール --> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-67.el7.centos.6.x86_64 ---> パッケージ httpd-devel.x86_64 0:2.4.6-67.el7.CentOS.6 を インストール --> 依存性の処理をしています: apr-util-devel のパッケージ: httpd-devel-2.4.6-67.el7.centos.6.x86_64 --> 依存性の処理をしています: apr-devel のパッケージ: httpd-devel-2.4.6-67.el7.centos.6.x86_64 ---> パッケージ httpd-manual.noarch 0:2.4.6-67.el7.centos.6 を インストール ---> パッケージ httpd-tools.x86_64 0:2.4.6-67.el7.centos.6 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ apr-devel.x86_64 0:1.4.8-3.el7_4.1 を インストール ---> パッケージ apr-util-devel.x86_64 0:1.5.2-6.el7 を インストール --> 依存性の処理をしています: openldap-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 --> 依存性の処理をしています: libdb-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 --> 依存性の処理をしています: expat-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64 ---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール --> トランザクションの確認を実行しています。 ---> パッケージ expat-devel.x86_64 0:2.1.0-10.el7_3 を インストール ---> パッケージ libdb-devel.x86_64 0:5.3.21-21.el7_4 を インストール ---> パッケージ openldap-devel.x86_64 0:2.4.44-5.el7 を インストール --> 依存性の処理をしています: cyrus-sasl-devel(x86-64) のパッケージ: openldap-devel-2.4.44-5.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl-devel.x86_64 0:2.1.26-21.el7 を インストール --> 依存性の処理をしています: cyrus-sasl(x86-64) = 2.1.26-21.el7 のパッケージ: cyrus-sasl-devel-2.1.26-21.el7.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ cyrus-sasl.x86_64 0:2.1.26-21.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ======================================================================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ======================================================================================================================================== インストール中: httpd x86_64 2.4.6-67.el7.centos.6 updates 2.7 M httpd-devel x86_64 2.4.6-67.el7.centos.6 updates 194 k httpd-manual noarch 2.4.6-67.el7.centos.6 updates 1.3 M httpd-tools x86_64 2.4.6-67.el7.centos.6 updates 88 k 依存性関連でのインストールをします: apr-devel x86_64 1.4.8-3.el7_4.1 updates 188 k apr-util-devel x86_64 1.5.2-6.el7 base 76 k cyrus-sasl x86_64 2.1.26-21.el7 base 88 k cyrus-sasl-devel x86_64 2.1.26-21.el7 base 310 k expat-devel x86_64 2.1.0-10.el7_3 base 57 k libdb-devel x86_64 5.3.21-21.el7_4 updates 38 k mailcap noarch 2.1.41-2.el7 base 31 k openldap-devel x86_64 2.4.44-5.el7 base 801 k トランザクションの要約 ======================================================================================================================================== インストール 4 パッケージ (+8 個の依存関係のパッケージ) 総ダウンロード容量: 5.9 M インストール容量: 22 M ...(一部、応答メッセージを割愛しています。) インストール: httpd.x86_64 0:2.4.6-67.el7.centos.6 httpd-devel.x86_64 0:2.4.6-67.el7.centos.6 httpd-manual.noarch 0:2.4.6-67.el7.centos.6 httpd-tools.x86_64 0:2.4.6-67.el7.centos.6 依存性関連をインストールしました: apr-devel.x86_64 0:1.4.8-3.el7_4.1 apr-util-devel.x86_64 0:1.5.2-6.el7 cyrus-sasl.x86_64 0:2.1.26-21.el7 cyrus-sasl-devel.x86_64 0:2.1.26-21.el7 expat-devel.x86_64 0:2.1.0-10.el7_3 libdb-devel.x86_64 0:5.3.21-21.el7_4 mailcap.noarch 0:2.1.41-2.el7 openldap-devel.x86_64 0:2.4.44-5.el7 完了しました! |
これでhttpdに関連する4パッケージのインストールが完了しました。
3-2.httpdインストール後の確認
httpdがインストールされたことを確認します。インストールされているパッケージはyumコマンドで確認できます。以下のようにyumを実行することで、httpdパッケージがインストールされていることを確認します。
|
# yum list installed | grep httpd |
出力結果として、以下の4パッケージが表示されることを確認します。
|
httpd.x86_64 2.4.6-67.el7.centos.6 @updates httpd-devel.x86_64 2.4.6-67.el7.centos.6 @updates httpd-manual.noarch 2.4.6-67.el7.centos.6 @updates httpd-tools.x86_64 2.4.6-67.el7.centos.6 @updates |
続いてhttpdがインストールされた場所を確認します。インストールされた場所(パス)を確認するためにはwhichコマンドを利用します。
以下のように実行することでインストールパスを確認できます。
実行結果は以下のようになります。
この結果から、httpdが/usr/sbin以下にインストールされたことが確認できます。
これでhttpdのインストールが正常に終了したことが確認できました。
3-3.httpd起動の確認
ここまででhttpdのインストールと確認が完了しましたので、続いてインストールしたhttpdが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。httpdは以下のように実行することで起動できます。
エラーが出力されなければ、正常にhttpdは起動しています。
systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 火 2018-04-03 10:55:49 JST; 10s ago Docs: man:httpd(8) man:Apachectl(8) Process: 1656 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 1660 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service tq1660 /usr/sbin/httpd -DFOREGROUND tq1662 /usr/sbin/httpd -DFOREGROUND tq1663 /usr/sbin/httpd -DFOREGROUND tq1664 /usr/sbin/httpd -DFOREGROUND tq1665 /usr/sbin/httpd -DFOREGROUND mq1666 /usr/sbin/httpd -DFOREGROUND 4月 03 10:55:49 www systemd[1]: Starting The Apache HTTP Server... 4月 03 10:55:49 www systemd[1]: Started The Apache HTTP Server |
上記では分かり難いかもしれませんが、黒丸の部分が正常な起動状態の場合、緑色で表示されます。
また、稼働しているプロセスを表示するpsコマンドでもhttpdが起動していることを確認できます。
以下のように実行します。
|
# ps -aux | grep httpd root 1736 0.0 0.4 221960 4896 ? Ss 11:00 0:02 /usr/sbin/httpd -DFOREGROUND Apache 1739 0.0 0.3 221960 3588 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1740 0.0 0.3 221960 3432 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1741 0.0 0.2 221960 2924 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1742 0.0 0.2 221960 2924 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1743 0.0 0.2 221960 2924 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1751 0.0 0.3 221960 3576 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1752 0.0 0.3 221960 3568 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1753 0.0 0.3 221960 3568 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1754 0.0 0.2 221960 2924 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND Apache 1755 0.0 0.2 221960 2924 ? S 11:00 0:00 /usr/sbin/httpd -DFOREGROUND |
以上の結果から、httpdが正常に起動することが確認できました。
3-4.httpd自動起動の設定
サーバーの再起動や停止の復旧時に、httpdが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。
|
# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/syst |
エラーが出力されなければ、自動起動は設定が完了しています。
続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。
|
# systemctl list-unit-files | grep httpd httpd.service enabled |
実行結果として “enabled”と表示されれば自動起動の設定は完了です。
4.firewallの許可設定
本記事は、ウェブサーバーの導入環境として、記事「CentOS7の基本設定 Linuxのインストール後に設定する9つのポイント」の項目6.で記載したfirewall設定を行っていることを前提としています。
このfirewall設定の場合、httpの接続ポートである80番をオープンしていないため、ブラウザでアクセスしてもテスト用のページを表示できません。
その為、以下のようにiptablesコマンドを利用してのルールを追加し、80番ポートへアクセスできるようします。
4-1.iptablesコマンドによる80番ポートのオープン
iptablesコマンドでウェブサーバーの待ち受けポートである80番に外部から接続できるように設定を追加します。コマンドは以下のように実行します。
|
# iptables -I INPUT 7 -p tcp --dport 80 -j ACCEPT |
INPUTの7という数字は7行目に追加するという意味になります。
iptablesコマンドを実行後に設定が追加されていることを確認します。確認は以下のように実行します。
|
# iptables L -n --line-number |
以下が実行結果の例になります。
|
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 4 ACCEPT tcp -- 118.8.21.167 0.0.0.0/0 tcp dpt:20 5 ACCEPT tcp -- 111.8.21.167 0.0.0.0/0 tcp dpt:21 6 ACCEPT tcp -- 111.8.21.167 0.0.0.0/0 tcp dpt:22 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy DROP) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination |
Chain INPUTの7行目に設定を行った80番ポートが追加されていることが確認できます。設定を確認後、保存を行います。保存は
|
# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ] |
で行います。上記のように[OK]が表示されれば正常に設定は保存されています。これでfirewallの設定は完了です。
5.ウェルカムページの表示確認
ここまでの手順でhttpdパッケージに用意されたデフォルトのウェブページを表示することが出来ます。ご自分の環境で利用されているウェブブラウザから、テスト用のページが表示できることを確認します。もしhttpdをインストールしたサーバーのIPアドレスが111.8.21.167の場合
http://111.8.21.167
をブラウザへ入力すると、以下のようなテスト用のウェルカムページが表示されます。

これでテスト用のウェルカムページが表示されることまで、確認が出来ました。
続いてhttpdの設定を行います。
6.httpdの設定
項目5.の手順までで、httpdパッケージの導入までが完了しました。このままでの運用でも問題ありませんが、本記事では運用するにあたって最低限、必要になる設定を行います。設定の前提は以下の通りです。
- 動作ユーザーとグループはwwwに変更
- バーチャルドメインは利用せず、ドキュメントルート以下にコンテンツを配置
- ドキュメントルートは”/home/www/html”に変更
- cgi用フォルダは”/home/www/cgi-bin”に変更
この条件に合わせて設定を行っていきます。
6-1.httpd.confの変更
httpdの設定は/etc/httpd/conf以下にあるhttpd.confで行います。
httpd.confの編集前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。
|
# cd /etc/httpd/conf # cp -p httpd.conf httpd.conf.org |
バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。
6-1-1.動作ユーザー・グループの変更
66~67行目にあるUserとGroupの設定を変更します。動作ユーザーの設定になります。
|
前後の抜粋 # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User Apache Group Apache |
を
に変更します。
6-1-2.サーバー管理者のメールアドレス変更
86行目にあるServerAdminの設定を変更します。エラーページに表示されます。
|
前後の抜粋 # # ServerAdmin: Your address, where problems with the server should be # e-mailed. This address appears on some server-generated pages, such # as error documents. e.g. admin@your-domain.com # ServerAdmin root@localhost |
上記の”ServerAdmin root@localhost”の”root@localhost”を任意のメールアドレスに変更します。
本記事では
|
ServerAdmin webmaster@testdom.com |
に変更しています。
6-1-3.サーバーのホスト名変更
95行目にあるServerNameを変更します。サーバーを認識するために利用されます。
|
前後の抜粋 # # ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn't have a registered DNS name, enter its IP address here. # #ServerName www.example.com:80 |
上記の”#ServerName www.example.com:80″からコメントを外します。
また、”www.example.com”の部分を、httpdをインストールしたサーバーのホスト名に変更します。
ここでは
|
ServerName www.testdom.com:80 |
に変更しています。
6-1-4.ドキュメントルートの変更
119行目にあるDocumentRootを変更します。コンテンツの配置場所を指定します。
|
前後の抜粋 # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/var/www/html" |
上記のDocumentRoot “/var/www/html”の”/var/www/html”を “/home/www/html” に変更します。
6-1-5.ディレクトリの変更 その1
124行名にあるDirectoryを変更します。ディレクトリの設定に関する内容です。
ドキュメントルートに合わせて変更します。
|
前後の抜粋 <Directory "/var/www"> AllowOverride None # Allow open access: Require all granted </Directory> |
上記の を へ変更します。
6-1-6.ディレクトリの変更 その2
131行目にある
|
<Directory "/var/www/html"> |
を
|
<Directory "/home/www/html"> |
へ変更します。
6-1-7.スクリプトエイリアスの変更
247行目にあるスクリプトエイリアスの設定を変更します。cgiを配置する場所を指定します。
|
前後の抜粋 # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the target directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. The same rules about trailing "/" apply to ScriptAlias # directives as to Alias. # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" |
上記の
|
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" |
を
|
ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" |
に変更します。
6-1-8.cgi用ディレクトリの変更
255行目にある を変更します。cgiディレクトリの権限設定です。
|
前後の抜粋 # # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory> |
上記の
|
<Directory "/var/www/cgi-bin"> |
を
|
<Directory "/home/www/cgi-bin"> |
に変更します。
ここまでの8点で設定ファイルの変更は完了です。変更したファイルを保存してください。
本記事では最短でテスト用ページが表示できることを目標にしています。実際の運用にあたってはもう少しセキュリティの設定が必要になります。
なお、Apacheのお勧めセキュリティ設定は記事「攻撃を受ける前に!Apacheインストール後に必要な8つの変更点」で紹介しています。併せて参考にして下さい。
6-2.httpd.confの確認とドキュメントルート用フォルダの作成
項目6-1.で設定ファイルの変更を完了しました。変更したファイルに間違いが無いかを確認します。設定ファイルの確認はhttpdに -tオプションを付けることで可能です。以下のように実行します。
このコマンドを実行すると、現状のサーバーでは以下のようなエラーが出力されます。
|
AH00526: Syntax error on line 124 of /etc/httpd/conf/httpd.conf: DocumentRoot '/home/www/html' is not a directory, or is not readable |
これは”/home/www/html”ディレクトリが無いことが原因です。設定ファイルに記載されているドキュメントルートを”/home/www/html”に変更したので、ディレクトリの作成が必要になります。
以下の手順で/home/www以下にhtmlとcgi-binディレクトリを作成します。
まずディレクトリの作成を行います。
|
# cd /home/www # mkdir html # mkdir cgi-bin |
続いて作成したwwwとcgi-binディレクトリにアクセス権を設定します。
|
# chown www:www html # chown www:www cgi-bin |
ディレクトリの作成とアクセス権設定後、再度、httpd.confのファイルを確認するコマンドを実行します。
|
[root@www www]# httpd -t Syntax OK |
今度は Syntax OKと表示されます。設定ファイルの正常性が確認できました。これで設定ファイルの確認は完了です。
6-3.不要な設定ファイルの移動
httpdはインストール時に、運用には不要な設定ファイルが自動的に作成されています。
/etc/httpd/conf.d/以下に含まれる autoindex.confとwelcome.confはセキュリティに問題があるためリネーム(ファイル名の変更)か削除することをオススメします。ここでは上記の二つのファイルについて、リネームを実行して、設定ファイルを無効化します。
ディレクトリの移動を行います。
|
# cd conf.d # ls README autoindex.conf manual.conf userdir.conf welcome.conf |
mvコマンドでファイル名のリネームを行います。
|
# mv autoindex.conf autoindex.conf.org # mv welcome.conf welcome.conf.org |
不要なconfファイルの名前の変更が、これで完了しました。
6-4.設定ファイル、変更の反映
設定ファイルの変更が完了しましたので、変更した設定を反映するためにhttpdを再起動します。systemctlコマンドを以下のように実行します。
|
# systemctl restart httpd |
再起動後にhttpdのステータスを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 火 2018-04-03 10:55:49 JST; 10s ago Docs: man:httpd(8) man:Apachectl(8) Process: 1656 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 1660 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service tq1660 /usr/sbin/httpd -DFOREGROUND tq1662 /usr/sbin/httpd -DFOREGROUND tq1663 /usr/sbin/httpd -DFOREGROUND tq1664 /usr/sbin/httpd -DFOREGROUND tq1665 /usr/sbin/httpd -DFOREGROUND mq1666 /usr/sbin/httpd -DFOREGROUND 4月 03 10:55:49 www systemd[1]: Starting The Apache HTTP Server... 4月 03 10:55:49 www systemd[1]: Started The Apache HTTP Server |
正常に起動していることが上記から確認できます。
ここまでで、httpdについて最低限の設定が完了しました。
7.テスト用ページの作成と確認
ここまででApache(httpd)の基本的な導入と外部からアクセスするためのファイアウォール設定が完了しました。
しかし、このままではブラウザでウェブページを開いても、以下のエラーで表示されません。

これはwelcome.confというデフォルトページを表示するための設定ファイルをリネームしたことが理由です。代わりに動作確認用としてテストページを表示させるための簡単なHTMLファイルを作成します。
7-1.ドキュメントルートへの移動
テスト用のページはドキュメントルートに配置します。ドキュメントルートは項目6-1-4.で”/home/www/html”に変更しました。
ここへcdコマンドで移動します。
7-2.テスト用のページの作成
続いてHTMLファイルを作成します。
|
# vi index.html <html> <body> test page </body> </html> |
作成後、ファイルを保存します。
作成したファイルのアクセス権を変更します。
|
# chown www:www index.html |
これでテスト用ページの作成は完了です。ブラウザで再度、テスト用ページの表示を確認します。
http://111.8.21.167
で以下のように作成したテスト用ページが表示できればApache(httpd)の導入は完了です。

8.まとめ
以上、7項目に渡ってCentOSへ最短でウェブサーバーを設定する手順を紹介しました。
実際に導入を行ってみると、どのようにウェブサーバーが稼働するか、運用管理をどのように行ったら良いかが理解できます。
ここ最近のコンテンツは、Apache単体ではあまり利用することはなく、phpなどのアプリケーションサーバーと連携して動作するようなものが殆どです。
Apacheとphpで動作する代表的なアプリケーション、wordpressなどもその中に含まれます。
今後は、このウェブサーバーにphpとデータベースを導入して、wordpressを動かすところまでを記事にしていきます。是非、参考にしてみて下さい。