httpdデーモンをport#80とは違うpot#8080の別デーモンで起動する設定

httpd(apache)をport#80とは別にport#8080でもう一つ作りたい時の設定をご紹介致します。

デーモンを別にすることでメンテナンスや設定の反映、障害対応など起動・停止に伴う影響を最小限にとどめることが出来ます。

 

[設定内容]

デーモンネーム httpd-new
設定フォルダー /etc/httpd-new/
設定ファイル /etc/httpd-new/conf/httpd.conf
VirtualHost設定ファイル /etc/httpd-new/conf.d/httpd-new.conf
Listen port番号 8080
アクセスログ保存先 /var/log/httpd-new/japan/access_log combined
エラーログ保存先 /var/log/httpd-new/japan/error_log combined
DocumentRoot /www/docs/

 

[設定方法]

1. serverへログイン

sudo su –
cd /etc
pwd
→ /etc に移動されたことを確認

 

2. フォルダー “httpd-new” を作成

ls -l grep ^d | grep httpd*

 

drwxr-xr-x 5 root root 92 Sep 7 2018 httpd

 

今回作成するフォルダー “httpd-new” がないことを確認。

mkdir httpd-new
ls -l grep ^d | grep httpd*
フォルダーhttpd-newが作成されたことを確認

 

drwxr-xr-x 5 root root 92 Sep 7 2018 httpd
drwxr-xr-x 5 root root 92 Sep 8 2021 httpd-new

 

 

3. httpd-newへ移動し作業を開始

cd httpd-new
pwd
→ httpd-new であることを確認する。

cp -pir /etc/httpd/conf /etc/httpd-new/
cp -pir /etc/httpd/conf.d /etc/httpd-new/
cp -pir /etc/httpd/conf.modules.d /etc/httpd-new/
※rオプションは再帰的(recursion)に繰り返すのでサブディレクトリー毎にコピーをしてくれます(^^♪

 

4. シンボリックリンクの作成

ln -s /var/log/httpd-new logs
ln -s ../../usr/lib64/httpd/modules modules
ln -s /run/httpd run

※ln -s リンク先 リンク元(アクセスが来た時の名前)
シンボリックリンクを張る時は、そのリンク元があるディレクトリーまで移動してからコマンドを投入すること。移動しないと正しくシンボリックリンクが張れない。

 

5. httpd.conf の編集

cd /etc/httpd-new/conf/
pwd
→ /etc/httpd-new/conf であることを確認する。

httpd.conf バックアップ
cp -pi /etc/httpd-new/conf/httpd.conf /etc/httpd-new/conf/httpd.conf.20210331

vi httpd.conf
※httpd を httpd-new へ変更、listen port番号を8080へ変更をする。
※必要に応じてDirectoryなども変更をする

 

ServerRoot “/etc/httpd-new”
Listen 8080

 

 

6. conf.d の個別設定ファイルhttpd-new.confを作成する。

cd ../conf.d
pwd
→ /etc/httpd-new/conf.d であることを確認する。

vi httpd-new.conf
#httpd-new

 

<VirtualHost *:8080>
ServerAdmin root@httpd-new.co.jp
DocumentRoot /www/docs/
ServerName httpd-new.co.jp
CustomLog /var/log/httpd-new/japan/access_log combined
ErrorLog /var/log/httpd-new/japan/error_log combined
ScriptAlias /cgi-bin/ “www/docs/cgi-bin”
DirectoryIndex index.php index.html index.htm
<Directory “/www/docs/”>
Options FollowSymLinks ExecCGI IncludesNOEXEC
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
# end httpd-new.com

 

※CustomLogとErrorLogのcombined フォーマットは common フォーマットに”リファラー”と”User Agent”が追加されています。

 

 

7. 必要かどうか検討をするファイル

autoindex.conf welcomeページやREADMEで表示されるアイコン画像が設定されている。 不要なので消すべし!
php.conf phpのconfigファイル。必要に応じて設定するべし!
userdir.conf userのhomeディレクトリへのアクセス設定。個別にconfファイルを作る必要がなし。
welcome.conf welcomeページなので必要無し

 

8. sysconfig の設定

cp -pi /etc/sysconfig/httpd /etc/sysconfig/httpd-new
ls -l /etc/sysconfig/httpd*
→ httpd-new が作成されたことを確認

vi /etc/sysconfig/httpd-new

 

OPTIONS=”-f /etc/httpd-new/conf/httpd.conf”

 

 

9. httpdコマンドとシンボリックリンク

ll /usr/sbin/httpd*
→ httpd が存在していることを確認
cd /usr/sbin
pwd
ln -s httpd httpd-new

 

lrwxrwxrwx 1 root root 5 Apr 17 12:27 httpd-new -> httpd

 

 

10. ロギングフォルダーの作成

mkdir -p /var/log/httpd-new/japan/
※ -p オプションは、サブディレクトリまで作成する。

 

11. 起動用httpd-new.serviceの作成

cd /etc/systemd/system/
pwd
ls -l httpd*

 

-rw-r–r– 1 root 993 5月 17 2019 httpd.service

 

cp -pi /etc/systemd/system/httpd.service /etc/systemd/system/httpd-new.service
ls -l
vi httpd-new.service
※3箇所の修正

 

EnvironmentFile=/etc/sysconfig/httpd-new
Environment=LANG-C

ExecStart=/usr/sbin/httpd-new $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd-new $OPTIONS -k graceful

 

 

11. 構文チェック

httpd-new -t
※syntax errorが出ないことを確認する。

 

12. 動作確認

プロセスの起動確認・起動
systemctl status httpd-new
systemctl start httpd-new
systemctl status httpd-new
ps -e | grep httpd-new

port#8080で起動していることを確認
netstat -nat | grep 8080

サービス自動起動設定確認
systemctl is-enabled httpd-new.service

サービス自動起動設定
systemctl enable httpd-new

 

13. logrotateの設定

cd /etc/logrotate.d
pwd
→ /etc/logrotate.dであることを確認
ll

vi httpd-new

 

/var/log/httpd-new/*log /var/log/httpd-new/*/*log {
daily
rotate 30
missingok
notifempty
sharedscripts
compress
delaycompress
postrotate
/bin/systemctl reload httpd-new.service > /dev/null 2 > /dev/null || true
endscript
}