この記事のあとに、PHPと連携する際に躓いた点を新しく記事にしました。
参考にしてみてください。
はじめに
ども。僕です。
最近、脆弱性のある環境を作成するさい、Apache+PHPで脆弱性のあるWEBページを構築する機会がありました。
そこで、Apacheの脆弱性であるCVE-2021-41773, CVE-2021-42013を使ってみたく、古いApacheのインストールを行いました。
古いバージョンをピンポイントで導入するのと、そのデーモン化について調べたので、記していきます。
今回の環境↓
- CentOS 7
- Apache 2.4.49
Apacheの古いバージョンのインストール
古いバージョンのインストールなんてできないので、リポジトリからcurl
してきます。
# curl -OL http://archive.apache.org/dist/httpd/httpd-2.4.49.tar.gz
# tar -xvzf httpd-2.4.49.tar.gz
# yum install -y libtool apr-devel apr-util apr-util-devel pcre pcre-devel
# cd httpd-2.4.49
# ./configure
# make
# make install
// /usr/localにインストールされます
// インストール確認
# cd /usr/local/apache2/bin
# ./httpd -v
Server version: Apache/2.4.49 (Unix)
make install
をすると/usr/local/apache2ディレクトリができて、そこで設定していきます。
Apacheのデーモン化
このままだといちいちファイル指定して起動しないといけないので、デーモン化してsystemctl
で制御しましょう。
// 新規作成
# vim /etc/systemd/system/httpd.service
[Unit]
Description=The Apache 2.4.49 HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
EnvironmentFile=/usr/local/apache2/conf/httpd.conf
ExecStart=/usr/local/apache2/bin/apachectl -k start
ExecReload=/usr/local/apache2/bin/apachectl -k graceful
ExecStop=/usr/local/apache2/bin/apachectl -k stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# systemctl start httpd.service
# systemctl status httpd.service
// 起動していることを確認する
以上で古いバージョンのApacheのインストールが完了します。