【後編】AlmaLinux9.3にhttpd2.4.57で1ユーザー1ドメイン権限を実現する

AlmaLinux9.3にインストールしたhttpdを1ドメイン1ユーザー方式にしたいと思います。

ん?1ユーザー1ドメイン?なんのこっちゃ?
ってなりますか?

1ユーザーとは、Linuxのユーザーです。
1ドメインとは、httpdに設定するサイトです。

ん-ーと、なので、httpdにはVertialHost機能を使って複数サイトを配置していくのですが、標準の apache ユーザーをそのまま使っていたのでは、サイトAとサイトBで同じ実行権限では色々困りますよね、ってことです。

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

環境

実施日2024-04-24
サーバ さくらのVPS 2G
OSAlmaLinux9.3
cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)

前編

ここは 【前編】AlmaLinux9.3にhttpd2.4.57で1ユーザー1ドメイン権限を実現する からの続きです。
まだの方は前編からご覧ください。

ここは、前編の終わり、MySQLPHPのインストールが完了してからの続きとなります。

ユーザー・ドメインを追加する

# 移動
cd /root/user_add/

# インストールしているPHPのバージョンを確認する
ls -la /usr/local/lib

# 設定を変更する
vi ./config.sh

最低限変更が必要なのは次の3つです。

# 設定:追加するユーザー
USER_NAME=example_com

# 設定:登録するドメイン
DOMAIN_NAME=sample.example.com

# 設定:PHPのバージョン
# ls -la /usr/local/lib
PHP_VERSION=8.3.6

設定を変更したら実行します。

# 実行
./execute.sh
上記の内容でユーザーを作成します。よろしいですか? [yes/no]

こちらのように出ますので、「yes」と打って Enter で作成が始まります。

バーチャルホストの設定

次のようにして作成した conf の場所を確認できます。

httpd -S

たぶん作成したファイルが原因でエラーが出ているかもしれません。

AH00526: Syntax error on line 65 of /etc/httpd/conf.d/vhosts/sample.example.com.conf:
SSLCertificateFile: file '/etc/pki/tls/certs/localhost.crt' does not exist or is empty

SSL証明書がおかしいエラーですね。そもそも証明書をまだ設定していないのでそうなります。

ちなみにこの時点では、httpd は restart もしていませんので、作成した conf は反映されていない状態です。

vi /etc/httpd/conf.d/vhosts/sample.example.com.conf

このファイルには、 sample.example.com の1ドメイン分だけを記述します。
だいたい埋まってますので、足らずの細かい調整を行ってください。

ユーザーの設定

設定したユーザーは作成されていますので次のようにして確認できます。

ls -la /home

SFTPできるようにすると便利です。
authorized_keys に公開鍵を設定するだけです。

vi /home/作成したユーザー/.ssh/authorized_keys

httpdの再起動で反映する

エラーが出ていないことを確認

httpd -S

再起動

systemctl restart httpd.service