Apache2.4.18+PHP7.0.1+mod_mono3.12(仮)の環境を作る

PHP7の正式版が発表されてから2週間で、PHP7.0.1が出ましたね。

これは流行にのらねば。というわけで、Apache2.4.x+PHP7.0.1+mono(おまけ)の環境を作りたいと思います。

私が使っているのはDebian Stretchです。ですが、全てソースビルドするので、ライブラリがそろっていれば
CentやRedHat, SLinuxの方も同じ方法でできます。

ではいってみましょう。

まずは、必要なパッケージとソース集めから。

1. apr, apr-utilのダウンロードとインストール
apr: http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-1.5.2.tar.gz
apr-util: http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-util-1.5.4.tar.gz

両方とも、configure, make, make installで特に問題なくインストールできます。
以下の環境では、/usr/local/apr へ両方ともインストールしたものとします

2. nghttp2のダウンロードとインストール
http/2 の波に乗りたいので、nghttp2をインストールします。
OpenSSL1.0.2+ が必要なため、必要に応じてapt-get等でインストールします。
source: https://github.com/tatsuhiro-t/nghttp2
"git clone" 等で、ダウンロードしましょう。
こちらも、configure, make, make installで特に問題なくインストールできます。
以下の環境では、/usr/local/nghttp2へインストールしたものとします

3. Apache2.4.18のダウンロードとインストール
source: http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.18.tar.gz\
以下にconfigureの例を載せます。あくまで好みで。

./configure -prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr 
--enable-so --enable-mods-shared=all --enable-ssl --enable-proxy --with-nghttp2=/usr/local/nghttp2 --enable-http2

こちらも、さくっと configure, make, make installで。

4. PHP7.0.1のインストール
必要なライブラリがいろいろとあります(GD、XMLなど)
configureのエラーをみながら、ライブラリをインストールしてください。
以下に、configureの例を載せます。こちらも好みで。

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/bin/apxs --enable-fpm --with-openssl
--with-pcre-regex --with-zlib --enable-calendar --enable-exif --enable-ftp --with-gd --with-jpeg-dir=/usr
--with-png-dir=/usr --with-zlib-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf --enable-gd-jis-conv
--with-gettext=/usr --enable-mbstring --with-mcrypt --with-libxml-dir=/usr --with-iconv-dir=/usr --enable-zip
--with-pcre-dir=/usr --with-xpm-dir=/usr --with-libdir=lib64 --with-mysqli --with-pdo-mysql --with-curl
--enable-opcache --with-fpm-user=daemon --with-fpm-group=daemon --enable-sockets --with-webp-dir=/usr

こっそりと webpの対応や、xpm, mysqli等入ってますが、必要に応じてこれらはインストールしてください。
今回は取り上げません。

PHPも、configure, make, make installにて。

5. monoのインストール
さて。ここからが本番です。
Stretchじゃないとインストールできないパッケージもあります。
気合いでソースビルドするか、/etc/apt/sources.listに手を加える等して、インストールを行います。
# apt-get install mono-complete
# apt-get install mono-xsp4
# apt-get install mono-apache-server4
これらの詳しい情報は、monoのホームページを参照するのが良いかと。
探すのめどい人は、Stretchにしてしまいましょうw

mono-complete: monoパッケージの基本部分全て
mono-xsp4: apache2.4.x向けのXSPサーバー
mono-apache-server4: apache2.4.x向けXSPゲートウェイ

6. mod_monoのインストール
私はここで数時間悩みました。
ソースからインストールしようにも、githubのやつでは、autoconfも出来ない・・・・
と、ネットをさまよっていたら、見つけました。ソースリポジトリ。
http://download.mono-project.com/sources/mod_mono/

今回は、一番新しい3.12を利用します。
上記ページから、[   ]mod_mono-3.12.tar.gz をダウンロードして、展開
configure時にapxsとapr-config, apu-configのパスに気をつければ、インストールできます。
さくっと、configure, make, make installしましょう。
正常にインストールできると、
/usr/local/apache2/modules/mod_mono.so 
/usr/local/apache2/conf/mod_mono.conf
ができあがります。
あとは、httpd.confで、mod_mono.confをIncludeすればOKです。

7. インストール確認
CLI環境で、curlを使わない人がいるでしょうか!

$ curl -v http://hogehoge.com/ (インストールしたサーバー)

< HTTP/1.1 200 OK
< Date: Fri, 18 Dec 2015 17:05:51 GMT
< Server: Apache/2.4.18 (Unix) OpenSSL/1.0.2d PHP/7.0.1 mod_mono/3.12
< Upgrade: h2c
< Connection: Upgrade
< X-Powered-By: Mono
< Vary: Accept-Encoding
< Content-Length: 14
< Content-Type: text/html; charset=UTF-8

これにて、インストール作業は終わりです。
非常に単調かつ端的な説明ですが、今日は眠いので、明日みなおし、抜けがあったら
この記事修正するかもしれません。ご了承を。

  • entry18ツイート
  • Google+

PageTop