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
}