nginxのstableバージョンが1.6になったためリポジトリがアップデートされた
そのためバージョンが低いppaの野良ビルドが上書きされてしまい、
pagespeedが無効になってしまったので面倒ながら自分でビルドすることにした
通常のビルド手順だとパッケージ管理から外れてしまい、メンテナンスが厄介になるので
debianパッケージを作成することに。
まずは準備
ppaからパッケージをダウンロード出来るようにする
追加するppaはnginx公式によるリポジトリ(Ubuntu公式とは別)
sudo aptitude install python-software-properties sudo add-apt-repository ppa:nginx/stable
ビルドに必要なパッケージを揃える
最新バージョンについての情報は以下より
GitHub - apache/incubator-pagespeed-ngx: Automatic PageSpeed optimization module for Nginx
Automatic PageSpeed optimization module for Nginx. Contribute to apache/incubator-pagespeed-ngx development by creating ...
sudo aptitude update sudo aptitude safe-upgrade sudo aptitude install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
ソースをもってくる、場所はとりあえずホームディレクトリ
mkdir ~/nginxsrc cd ~/nginxsrc sudo apt-get source nginx-full
モジュールをソースの中に配置する
cd nginx-1.6.0/debian/modules wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.4-beta.zip unzip v1.7.30.4-beta.zip cd ngx_pagespeed-1.7.30.4-beta/ wget https://dl.google.com/dl/page-speed/psol/1.7.30.4.tar.gz tar -xzvf 1.7.30.4.tar.gz
configureにngx_pagespeedのオプションを追加する
common,light,full,extrasなどに分かれているので利用するパッケージの部分に記述する
cd ~/nginxsrc/nginx-1.6.0 vi debian/rules
extrasに追加する場合の例(最後の行が該当):
extras_configure_flags := \ $(common_configure_flags) \ --with-http_addition_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module \ --with-http_mp4_module \ --with-http_perl_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_spdy_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-mail \ --with-mail_ssl_module \ --add-module=$(MODULESDIR)/headers-more-nginx-module \ --add-module=$(MODULESDIR)/nginx-auth-pam \ --add-module=$(MODULESDIR)/nginx-cache-purge \ --add-module=$(MODULESDIR)/nginx-dav-ext-module \ --add-module=$(MODULESDIR)/nginx-development-kit \ --add-module=$(MODULESDIR)/nginx-echo \ --add-module=$(MODULESDIR)/ngx-fancyindex \ --add-module=$(MODULESDIR)/nginx-http-push \ --add-module=$(MODULESDIR)/nginx-lua \ --add-module=$(MODULESDIR)/nginx-upload-progress \ --add-module=$(MODULESDIR)/nginx-upstream-fair \ --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \ --add-module=$(MODULESDIR)/ngx_pagespeed-1.7.30.4-beta
おまじないを一言放ってビルドを行う
sudo apt-get build-dep nginx sudo dpkg-buildpackage -b
エラーなどが無ければ最初に作成したディレクトリ以下にパッケージが作成されているはず
cd ~/nginxsrc/ % ls nginx-1.6.0 nginx-full_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.debian.tar.gz nginx-common_1.6.0-1+trusty0_all.deb nginx-light-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.dsc nginx-doc_1.6.0-1+trusty0_all.deb nginx-light_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_all.deb nginx-extras-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_amd64.changes nginx-extras_1.6.0-1+trusty0_amd64.deb nginx-naxsi-ui_1.6.0-1+trusty0_all.deb nginx_1.6.0.orig.tar.gz nginx-full-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi_1.6.0-1+trusty0_amd64.deb
インストール
sudo dpkg --install nginx-common_1.6.0-1+trusty0_all.deb nginx-extras_1.6.0-1+trusty0_amd64.deb
確認は-Vオプションで
最後にngx_pagespeedが追加されているはず。公式バージョンには無い。
(逆に言うと差分はそれぐらい)
% nginx -V nginx version: nginx/1.6.0 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/headers-more-nginx-module --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-auth-pam --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-cache-purge --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-dav-ext-module --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-development-kit --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-echo --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx-fancyindex --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-http-push --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-lua --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upload-progress --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upstream-fair --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_http_substitutions_filter_module --add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_pagespeed-1.7.30.4-beta