ubuntuにapacheをソースからインストール

技術

必要ない資材をインストールしたくなかったため、WSL環境のubuntu(Linux)にapacheをソースからインストールしてみました。

開発環境

私が構築した時の開発環境は以下の通りとなります。

環境バージョン
ubuntu22.04.3
apache2.4.57

aprのインストール

apacheをインストールするために必要となるapr(Apache Portable Runtime)をインストールします。

sudo apt install gcc
sudo apt install make
cd /usr/local/src
sudo wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
sudo tar xvf apr-1.7.4.tar.gz
cd apr-1.7.4/
sudo ./configure --prefix=/opt/apr/apr-1.7.4
sudo make
sudo make test
sudo make install

apr-utilのインストール

同じくapacheをインストールするために必要となるapr-utilをインストールします。

cd /usr/local/src
sudo apt install libexpat1-dev
sudo wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
sudo tar xvf apr-util-1.6.3.tar.gz
cd apr-util-1.6.3/
sudo ./configure --prefix=/opt/apr-util/apr-util-1.6.3 --with-apr=/opt/apr/apr-1.7.4
sudo make
sudo make test
sudo make install

apacheのインストール

続いてapacheのインストールをします。

cd /usr/local/src
sudo apt install libpcre3-dev
sudo apt install libssl-dev
sudo wget http://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz
sudo tar xvf httpd-2.4.57.tar.gz
cd httpd-2.4.57/
sudo ./configure --enable-ssl --enable-rewrite --enable-so --with-apr=/opt/apr/apr-1.7.4 --with-apr-util=/opt/apr-util/apr-util-1.6.3
sudo make
sudo make install

mod_sslの導入

https通信ができるようにmod_sslを導入します。

cd /usr/local/src/httpd-2.4.57/modules/ssl/
sudo /usr/local/apache2/bin/apxs -c mod_ssl.c
sudo /usr/local/apache2/bin/apxs -i -a -c -I /usr/include/openssl -I ../md -D HAVE_OPENSSL=1 -lcrypto -lssl *.c

mod_rewriteの導入

リダイレクト処理が行えるようにmod_rewriteを導入します。

cd /usr/local/src/httpd-2.4.57/modules/mappers
sudo /usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite.la

mod_proxyの導入

tomcatと連携できるようにmod_proxyを導入します。

cd /usr/local/src/httpd-2.4.57/modules/proxy
sudo /usr/local/apache2/bin/apxs -i -a -c mod_proxy.c proxy_util.c
sudo /usr/local/apache2/bin/apxs -i -a -c mod_proxy_ajp.c ajp_*.c

apacheのサービス起動 

systemctlコマンドを使ってapacheが起動できるようにapache2.serviceを作成します。

sudo vi /usr/lib/systemd/system/apache2.service

[Unit]
Description=Apache 2
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl stop
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target

最後にapacheを起動します。

sudo systemctl start apache2

ブラウザ上で「http://localhost」にアクセスし、「It works!」と表示されればapacheは正常に動作してます。

コメント

タイトルとURLをコピーしました