[CentOS 7] httpd の設定

サーバー用 PC に Web 関連パッケージをインストールして、サーバーの各ユーザーアカウント内で Web コンテンツの作成をできるように設定します。

Web サーバー関連パッケージのインストール

CentOS は、ダウンロードした CentOS-7-x86_64-LiveGNOME-1810.isoFedora Media Writer で USB メモリに焼いてインストールしましたが、通常のインストール(Gnome デスクトップ)では Web サーバーに必要な Apache HTTP Server などのパッケージがインストールされません。下記のようにして関連パッケージをインストールしました。

Web サーバーに必要な基本的なパッケージをインストール 
$ sudo yum group install "ベーシック Web サーバー"

サービスの起動

Apache HTTP Server のサービス、httpd を起動 (start) します。また、OS 起動後にサービスが使えるように有効化 (enable) しておきます。

httpd の起動 
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
$ sudo 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 土 2019-06-08 10:09:02 JST; 38s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 7250 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─7250 /usr/sbin/httpd -DFOREGROUND
           ├─7254 /usr/sbin/httpd -DFOREGROUND
           ├─7255 /usr/sbin/httpd -DFOREGROUND
           ├─7256 /usr/sbin/httpd -DFOREGROUND
           ├─7257 /usr/sbin/httpd -DFOREGROUND
           ├─7258 /usr/sbin/httpd -DFOREGROUND
           └─7259 /usr/sbin/httpd -DFOREGROUND

 6月 08 10:09:01 localhost.localdomain systemd[1]: Starting The Apache HTTP ...
 6月 08 10:09:02 localhost.localdomain systemd[1]: Started The Apache HTTP S...
Hint: Some lines were ellipsized, use -l to show in full.
$ 

ファイアーウォールの設定

HTTP で使用する 80 番のポートを解放し、HTTP で通信できるようにサービスを追加後、ファイアーウォールのサービスを再起動して反映させます。

ファイアーウォールの設定 
$ sudo firewall-cmd --add-port=80/tcp --permanent
success
$ sudo firewall-cmd --add-service=http --permanent
success
$ sudo systemctl restart firewalld
$ 

LAN 内の他の PC のブラウザからこの CentOS (192.168.0.12) へアクセスして、トップページが表示されることを確認します。

 他の PC のブラウザからアクセスした例 

ユーザ毎のウェブディレクトリ

ユーザアカウント内の public_html 内をウェブサイトとして利用できるように /etc/httpd/conf.d/userdir.conf を編集します。下記にコメントを除いた設定ファイルの内容と、変更した箇所を赤字で示しました。

/etc/httpd/conf.d/userdir.conf の設定 
<IfModule mod_userdir.c>
    #UserDir disabled
    UserDir public_html
</IfModule>

<Directory "/home/*/public_html">
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

ユーザアカウント内に public_html ディレクトリを作成します。この例ではユーザアカウントは bitwalk のみです。パーミッションは下記のようになっています。

ユーザアカウントのディレクトリとパーミッション 
$ cd ~
$ mkdir public_html
$ chmod 755 /home/bitwalk
$ ll -d /home/bitwalk
drwxr-xr-x. 17 bitwalk bitwalk 4096  6月  8 08:32 /home/bitwalk
$ ll -d /home/bitwalk/public_html
drwxrwxr-x. 2 bitwalk bitwalk 41  6月  8 08:32 /home/bitwalk/public_html
$ 

httpd を再起動します。

httpd の再起動 
$ sudo systemctl restart httpd

SELinux の設定

最後に SELinux で httpd_enable_homedirs を有効にします。

SELinux で httpd_enable_homedirs を有効にする 
$ sudo setsebool -P httpd_enable_homedirs 1

簡単な Web ページで確認

LAN 内の他の PC から、下記サイトがアクセスできることを確認します。事前に index.htmltest.html を用意して /home/bitwalk/public_html/ に保存おきました。

http://192.168.0.12/~bitwalk/
 二つのテストページで確認 

参考 サイト

  1. centos7でwebサーバー構築1-基礎的なシステムの構築 - Qiita [2018-12-27]

 

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: