【後編】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 |
OS | AlmaLinux9.3 |
cat /etc/redhat-release
AlmaLinux release 9.3 (Shamrock Pampas Cat)
前編
ここは 【前編】AlmaLinux9.3にhttpd2.4.57で1ユーザー1ドメイン権限を実現する からの続きです。
まだの方は前編からご覧ください。
ここは、前編の終わり、MySQLとPHPのインストールが完了してからの続きとなります。
ユーザー・ドメインを追加する
# 移動
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