動かざることバグの如し

近づきたいよ 君の理想に

PHP7でOwncloudを動かしてみる

前回の

thr3a.hatenablog.com

を絶賛一柱中のPHP7で動かしてみる

環境

  • 前回のポストの同じ。ただしPHP類は一切インスコしない
  • PHP-7.0.0RC7

事前準備

ソースコードのダウンロード

ここから最新版をダウンロード

wget https://downloads.php.net/~ab/php-7.0.0RC7.tar.bz2
tar -jxf php-7.0.0RC7.tar.bz2

依存ライブラリのインストール

apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

コンパイル

./configure --prefix=/usr/local/php7 \
--with-config-file-path=/etc/php7 \
--with-config-file-scan-dir=/etc/php7/conf.d \
--disable-short-tags \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-kerberos \
--with-mysqli=/usr/bin/mysql_config \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data

Unable to locate gmp.hと怒られたら以下実行

ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h`

通ったらmake make test make installと行う。

nginxとの連携まで

まずはコマンドが叩けるように

export PATH=/usr/local/php7/bin:$PATH

これでphp -vできればおk

php-fpmをサービスとして登録

さっきコンパイルした場所で

cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod +x /etc/init.d/php7-fpm
update-rc.d php7-fpm defaults

これでservice php7-fpm startが実行できるはず。まだ設定してないから起動失敗するが。

設定

cd /usr/local/php7/etc
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php7/etc/php-fpm.d/
cp www.conf.default www.conf

www.confにて以下変更

(多分なってるはず 確認)
user = www-data
group = www-data

(ソケットに変更)
;listen = 127.0.0.1:9000
listen = /var/run/php7-fpm.sock;

(コメントアウト 参考:http://kawatama.net/web/1352)
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

再起動