絖綛 N@i.jp  昨日:00051060
 今日:00009254
 総計:00112621
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:03/21 19:08


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Nghttp2 Ver.1.43.0

参照:Nghttp2


PythonバインディングはPython 3が必須となった


 Let's Encryptで常時SSL化した際、HTTP/2対応のためインストールしたNghttp2。先日リリースされた最新版のVer.1.43でPythonバインディングにPython 3が必須となり、ウチのWebサーバ(Mac mini G4)ではビルド(configure)が失敗するようになってしまった。

 Pythonバインディングとは、要するにPythonプログラムからNghttp2の機能(HTTP/2)を使えるようにする事のようで、ウチのWebサーバでは特に必要ないのだけど、configure が失敗するのでこれを何とか突破してみることにした。なお、この突破方法はウチのWebサーバ(Mac mini G4, Mac OSX 10.4.11)の特殊な環境において何とかなったという事に過ぎず、他の環境でも同じ方法が使える保証はない。あくまで自分のための備忘録であるので、ご容赦願いたい。

 Python 3はVer.3.8かそれ以降が必要らしく、ウチのWebサーバには現時点での最新版Ver.3.9.1がインストール済みである。

1) Nghttp2をダウンロードして解凍
 Nghttp2公式ホームページ:https://nghttp2.org/
 現時点での最新版は Nghttp2 v1.43.0

$ xzcat nghttp2-1.43.0.tar.xz | tar xf -
$ cd nghttp2-1.43.0

2) ビルド方法("build.sh"スクリプト作成)

#!/usr/local/bin/bash -x

export MACOSX_DEPLOYMENT_TARGET=10.4
export GCC="/usr/local"
export SSL="/usr/local/ssl"
export PYTHON_EXTRA_LDFLAGS="-framework CoreFoundation /Library/Frameworks/Python.framework/Versions/Current/Python"
export PATH="${GCC}/bin:$PATH"
export DYLD_LIBRARY_PATH="${GCC}/lib:${DYLD_LIBRARY_PATH}"
export PKG_CONFIG_PATH="${SSL}/lib/pkgconfig:${PKG_CONFIG_PATH}"

./configure \
    CPP="${GCC}/bin/cpp" \
    CC="${GCC}/bin/gcc" \
    CXX="${GCC}/bin/g++" \
    CFLAGS="-O2 -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" \
    CXXFLAGS="-O2 -mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET}" \
    CPPFLAGS="-I${SSL}/include -I/usr/local/include -I/usr/include" \
    LDFLAGS="-L${SSL}/lib -L/usr/local/lib -L/usr/lib" \
    PYTHON="/usr/local/bin/python3" \
    PYTHON_VERSION="3.9"
make
make check

注)「¥」は実際には半角の「\」(バックスラッシュ)

 赤の太字部分が今回追加したPython 3に関する項目。
 PYTHON_EXTRA_LDFLAGS環境変数は指定しないでおくとウチの環境では値が"-framework CoreFoundation"となってしまい、これが原因でconfigureが失敗していた。ウチのPython 3の環境に問題があるのかもしれないが、今回は強行突破しておいた。

3) ビルドしてインストール

$ chmod +x ./build.sh
$ ./build.sh
$ sudo make install

4) Apacheを再起動する

$ sudo /usr/local/apache2/bin/apachectl restart


< 過去の記事 [ 2月の 全てのカテゴリ リスト ] 新しい記事 >

2021 calendar
2月
123456
78910111213
14151617181920
21222324252627
28


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.