質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

Apache2.4系のソースからのビルドに失敗する

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 3,496

score 51

LinuxサーバにApache2.4(現在最新のver2.4.41)をwgetでソースからインストールしたいのですが、以下のようなエラーが出ており解決方法がわからない状態です。

経緯

apr,apr-utilのインストール

Apache2.4をソースからインストールしてみるなどを参考に、apr,apr-utilのインストール。
インストール先はテストも兼ねて以下の様にしてます。(バージョン番号は現在の最新版です)
apr:/home/username/apache2/apr-1.7.0/
apr-util:/home/username/apache2/apr-util-1.6.1/
httpd:/home/username/apache2/httpd/

./configure --prefix=/home/username/apache2/apr-1.7.0
make
make install

./configure --prefix=/home/username/apache2/apr-util-1.6.1 --with-apr=/home/username/apr-1.7.0
make
make install


ここまではなぜかブログにあるようなエラー等は起きず無事指定ディレクトリにインストール出来ました。

httpdのインストール

最新安定版のhttpd.2.4.41を/home/username/apache2/httpd/にインストール。

./configure --prefix=/home/username/apache2/httpd --with-apr=/home/username/apache2/apr-1.7.0 --with-apr-util=/home/username/apache2/apr-util-1.6.1


しかし、このあとmakeの段階で以下のようなエラーが出てインストールに失敗してしまいます。

...
...
/home/usernmae/apache2/apr-1.7.0/build-1/libtool --silent --mode=link gcc  -g -O2 -pthread         -o htpasswd  htpasswd.lo passwd_common.lo       /home/username/apache2/apr-util-1.6.1/lib/libaprutil-1.la -lexpat /home/username/apache2/apr-1.7.0/lib/libapr-1.la -lrt -lcrypt -lpthread -ldl -lcrypt
libtool:   error: cannot find the library '/home/username/apache2/apr-1.7.0/lib/libapr-1.la' or unhandled argument '/home/username/apache2/apr-1.7.0/lib/libapr-1.la'
Makefile:48: recipe for target 'htpasswd' failed
make[2]: *** [htpasswd] Error 1
make[2]: ディレクトリ '/home/username/tmp/httpd-2.4.41/support' から出ます
/home/username/tmp/httpd-2.4.41/build/rules.mk:75: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: ディレクトリ '/home/username/tmp/httpd-2.4.41/support' から出ます
/home/username/tmp/httpd-2.4.41/build/rules.mk:75: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
httpd-2.4.41$ ./configure --with-apr=/home/username/apache2/apr-1.7.0 --with-apr-util=/home/a0131724/


cannot findとあるので実際に確認してみましたが、/home/username/apache2/apr-1.7.0配下には確かにlibapr-1.laが在りました。原因がわかる方お教えください。

linuxのディストリビューションはUbuntu18.04です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

cd ~/tmp
tar xzf apr-1.7.0.tar.gz
tar xzf apr-util-1.6.1.tar.gz
tar xzf httpd-2.4.41.tar.gz
mv apr-1.7.0 apr
mv apr-util-1.6.1 apr-util
mv apr apr-util httpd-2.4.41/srclib
cd httpd-2.4.41
./configure --prefix=/home/username/apache2/httpd
make
make install


ではどうでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

aprとapr-utilのバージョンを1.xまでは同じバージョン(1.6.xでそろえる。または1.7.xでそろえる)を利用してみたらどうでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/01/20 13:50 編集

    aprを1.6.5のものにしてみたら、makeは出来たんですが、今度は以下のようなエラーが出てきました。
    /home/username/apache2/apr-1.6.5/lib/libapr-1.so: undefined reference to `uuid_generate@UUID_1.0'
    collect2: error: ld returned 1 exit status
    /home/username/tmp/httpd-2.4.41/build/program.mk:22: recipe for target 'httpd' failed
    make[1]: *** [httpd] Error 1
    make[1]: ディレクトリ '/home/usernanme/tmp/httpd-2.4.41' から出ます
    /home/username/tmp/httpd-2.4.41/build/rules.mk:75: recipe for target 'install-recursive' failed
    make: *** [install-recursive] Error 1
    今度はエラーは吐いてますが、指定ディレクトリにファイルが作られていました。しかし、apachectl start(/home/username/apache2/httpd/bin/apachectl)を実行しても/home/username/apache2/httpd/bin/httpdがない(httpdが作られていない)言われ起動出来ません..。

    キャンセル

  • 2020/01/20 13:51 編集

    そもそも起動に関する設定ファイル?httpd.confもfindで探してみてもどこにもありませんでした。→ やっぱりちゃんとインストール出来てない?

    キャンセル

  • 2020/01/20 15:11

    make[1]: ディレクトリ '/home/usernanme/tmp/httpd-2.4.41' から出ます

    あいだにtmpディレクトリがありますが、どのようなディレクトリ構造とカレントディレクトリでコマンドを実行しているのでしょうか。
    コマンドをrootで実行しているかも不明ですので、その時のプロンプト付きで記載してください。(#なのか$なのかも大事な情報源です)

    キャンセル

  • 2020/01/20 15:24 編集

    ユーザは$です。ディレクトリの構成は、
    /home/username: ホームディレクトリ($ cd ~で遷移するので以下~で代用)
    ~/tmp:wgetでダウンロードしてきたtarファイルおよびその展開したディレクトリを一時的に保存しているディレクトリ
    ~/apache2:インストール先ディレクトリ
    基本的に質問に書いたコマンドは~/tmpにダウンロードしたディレクトリ毎に実行しています。即ち、
    ~/tmp/apr-1.6.5 $ ./configure --prefix=~/apache2/apr-1.6.5
    ~/tmp/apr-util-1.6.1 $ ./configure --prefix=~/apache2/apr-util-1.6.1 --with-apr=~/apache2/apr-1.6.5
    ~/tmp/httpd-2.4.41 $ ./configure --prefix=~/apache2/httpd --with-apr=~/apache2/apr-1.6.5 --with-apr-util=~/apache2/apr-util-1.6.1

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る