前回の
を絶賛一柱中のPHP7で動かしてみる
環境
事前準備
ソースコードのダウンロード
ここから最新版をダウンロード
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
再起動