CentOS をほとんど使っていない古い PC にクリーンインストールして、家庭内 LAN で Web サーバーに使おうとしています。Apache HTTP Server との付き合いはとても長いのですが、使いはじめの設定は毎日するようなものではないので、その場限りの設定をしてしまっています。そのため、同じような設定を別のサーバーにするときにはいつも調べ直しています😅。
少しでも調べ直す無駄をなくすために備忘録として残すことにしました。ということで、今回のテーマは次のとおりです。
家庭内 LAN の Web サーバー用 PC に Web 関連パッケージをインストールして、必要な設定を加えてサーバーの各ユーザーアカウント内で Web コンテンツの作成をできるようにします。
使用した OS は前述のとおり、CentOS です。
- OS
- CentOS 7.6-1810
Web サーバー関連パッケージのインストール
CentOS は、ダウンロードした CentOS-7-x86_64-LiveGNOME-1810.iso を Fedora Media Writer で USB メモリに焼いてインストールしたのですが、通常のインストールでは Web サーバーに必要な Apache HTTP Server などのパッケージがインストールされません。下記のようにして関連パッケージをインストールしました。
$ sudo yum group install "ベーシック Web サーバー"
サービスの起動
Apache HTTP Server のサービス、httpd を起動 (start) します。また、OS 起動後にサービスが使えるように有効化 (enable) しておきます。
$ 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) へアクセスして、トップページが表示されることを確認します。
ユーザ毎のウェブディレクトリ
ユーザアカウント内の public_html 内をウェブサイトとして利用できるように /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 を再起動します。
$ sudo systemctl restart httpd
SELinux の設定
最後に SELinux で httpd_enable_homedirs を有効にします。
$ sudo setsebool -P httpd_enable_homedirs 1
簡単な Web ページで確認
LAN 内の他の PC から、下記のサイトがアクセスできることを確認します。事前に index.html と test.html を用意して /home/bitwalk/public_html/ に保存おきました。
http://192.168.0.12/~bitwalk/
まとめ
最低限の設定ですが、これで初期の目標を達成できました。今後も httpd に関わる設定について、何回も設定する場面が予想されるものについては備忘録でまとめて行く予定です。
また、まもなくリリースされるであろう CentOS 8 でも同じような確認をしていこうと考えています。
参考 サイト
- centos7でwebサーバー構築1-基礎的なシステムの構築 - Qiita [2018-12-27]
にほんブログ村
0 件のコメント:
コメントを投稿