Webサーバーの構築(CentOS 7)

Apacheというフリーウェアを使用してWebサーバーとして使えるよう設定します。

環境

CentOS 7.2.X
Apache 2.4.X
※以下、すべてroot権限で操作します。

1.httpd(Apache)のインストール

下記のコマンドでhttpd(Apache)をインストールします。

[root@ ~]# yum -y install httpd

インストールが開始され、Complete!と表示されればインストール完了です。

2.ファイアウォールの設定変更

httpとhttpsの通信を許可します。

[root@ ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@ ~]# firewall-cmd --permanent --zone=public --add-service=https

変更した内容を反映させるためリロードします。

[root@ ~]# firewall-cmd --reload

3.自動起動の設定

OS再起動時にhttpd(Apache)が自動起動するように設定します。

[root@ ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

httpdに自動起動が設定されたか確認します。

[root@ ~]# systemctl list-unit-files -t service

リストが表示されますので、httpd.serviceの行がenableになっていれば自動起動が設定されています。

httpd.service     enabled

4.httpd(Apache)を起動

httpd(Apache)を起動します。

[root@ ~]# systemctl start httpd

試しに、ブラウザから「VPSのIPアドレス」にアクセスしてみます。
下記のApacheテストページが表示されれば、httpd(Apache)が使用できる状態です。

5.httpd(Apache)の設定変更

httpd(Apache)の設定を変更します。
設定するには、/etc/httpd/conf/httpd.confを編集します。

[root@ ~]# vi /etc/httpd/conf/httpd.conf

ホスト名とポートを設定

www.example.com:80 となっていますので、行頭の「#」を削除し、設定したいホスト名に書き換えます。

#ServerName www.example.com:80
 
(↓行頭の「#」を削除し、www.example.com部分を設定するホスト名に変更)
 
ServerName www.ホスト名:80

Directory”/var/www/html”の設定変更

Directory”/var/www/html”項目部分の設定を変更します。

<Directory "/var/www/html">
  ・・・
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    ↓
    Options -Indexes に変更
  ・・・
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None
    ↓
    AllowOverride All に変更

    #
  ・・・
</Directory>

IfModule dir_moduleの設定変更

IfModule dir_module 項目部分にindex.phpを追加します。

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

文字化け対応

AddDefaultCharset UTF-8 の行頭に # を追加し、コメントアウトします。

AddDefaultCharset UTF-8
 
(↓行頭に#を追加)
 
#AddDefaultCharset UTF-8

以上で、/etc/httpd/conf/httpd.confの編集は完了です。

6.ドキュメントルートの所有者変更

一般ユーザからファイルをアップロードできるようにドキュメントルールの所有者変更をします。

[root@ ~]# chown 一般ユーザ名 /var/www/html/

下記のコマンドでhtmlの所有者がrootから一般ユーザに変更になっていることを確認できます。

[root@ ~]# ls -l /var/www
total 0
drwxr-xr-x 2 root root 6 Jun 27 22:49 cgi-bin
drwxr-xr-x 2 一般ユーザ名 root 6 Jun 27 22:49 html

7.テストページの削除

表示するページがない場合など上記のテストページ(welcome.conf)が表示されます。
しかし、VPSサーバが使用しているOSなどが分かってしまうためファイルを削除します。

[root@ ~]# rm -f /etc/httpd/conf.d/welcome.conf

8.httpd(Apache)を再起動

httpd(Apache)を再起動します。

[root@ ~]# systemctl restart httpd

9.設定確認

設定内容が問題ないか確認するため、確認します。
Syntax OKと表示されれば問題ありません。

[root@ ~]# httpd -t
Syntax OK

10.SFTPでファイルをアップロード

Webサーバとして使える状態になりましたので、試しにSFTPでファイルをアップロードします。
※SFTPは、暗号化した通信で安全にファイルをアップロードできます。
SFTPに対応したアプリケーションの中から、今回はWinSCPを使用します。

SFTPで接続

下記の情報で接続します。

転送プロトコル:SFTP
ホスト名:VPSのIPアドレス
ポート番号:22(sshのポート番号を変更した場合、変更した番号)
ユーザ名:一般ユーザ名(rootでは接続不可)
パスワード:一般ユーザのパスワード

ファイルをアップロード

接続後、/var/www/htmlのディレクトリに移動してください。
下記のようなindex.htmlファイルを作成し、アップロードします。

<html>
  <body>
    Hello World!
  </body>
</html>

ブラウザから「VPSのIPアドレス」にアクセスして、「Hello World!」 が表示されればアップロード完了です。