Ubuntu LNMP1.2 安装 PHP7 Beta1

今天下午稍微研究了一下 PHP7 的安装方法,主要参考了以下这些教程:

  1. Zend 官方提供的编译依赖包
  2. WINDOWS 和 Linux 上安装 php7 alpha 并安装 yaf
  3. Running PHP7-FPM Nightly Build on Ubuntu 14.04
  4. LNMP1.2 安装包中的 PHP 升级脚本:/include/php.sh

安装环境:Ubuntu 14.04.2 LTS+LNMP1.2。

1. 创建一个 0755 权限的 bash,以 root 权限执行,先检查依赖库,然后开始编译 PHP7,E5 单核 1Ghz 大约执行半个小时。

cd /usr/local/
mkdir -p php7
cd php7/

# Dependencies
apt-get update
apt-get install -y \
    git-core \
    autoconf \
    bison \
    libxml2-dev \
    libbz2-dev \
    libmcrypt-dev \
    libcurl4-openssl-dev \
    libltdl-dev \
    libpng-dev \
    libpspell-dev

wget https://downloads.php.net/~ab/php-7.0.0beta1.tar.gz
#Unpack
tar zxf php-7.0.0beta1.tar.gz

cd  php-7.0.0beta1/
#configure
./configure \
 --prefix=/usr/local/php7 \
 --with-config-file-path=/usr/local/php7/etc \
 --enable-fpm \
 --with-fpm-user=www \
 --with-fpm-group=www \
 --with-mysqli=mysqlnd \
 --with-pdo-mysql=mysqlnd \
 --with-iconv-dir \
 --with-freetype-dir=/usr/local/freetype \
 --with-jpeg-dir \
 --with-png-dir \
 --with-zlib \
 --with-libxml-dir=/usr \
 --enable-xml \
 --disable-rpath \
 --enable-bcmath \
 --enable-shmop \
 --enable-sysvsem \
 --enable-inline-optimization \
 --with-curl \
 --enable-mbregex \
 --enable-mbstring \
 --with-mcrypt \
 --enable-ftp \
 --with-gd \
 --enable-gd-native-ttf \
 --with-openssl \
 --with-mhash \
 --enable-pcntl \
 --enable-sockets \
 --with-xmlrpc \
 --without-pear \
 --enable-zip --enable-soap \
 --enable-soap \
 --with-gettext \
 --disable-fileinfo \
 --enable-opcache \
 --enable-maintainer-zts

#Make Install
make ZEND_EXTRA_LIBS='-liconv' && make install

#php.ini,init.d
cp php.ini-production      /usr/local/php7/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php7-fpm
chmod a+x /etc/init.d/php7-fpm

2. 在/usr/local/php7/etc 下,创建一个 php-fpm.conf,其他参数可以按照自己的需要修改,这里用的是 TCP 模式,端口设置为 9001 以避免与 php5 冲突。

[global]
pid = /run/php7-fpm.pid
error_log = /var/log/php7-fpm.log

[www]
user = www
group = www

listen = 127.0.0.1:9001

pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6

3. 修改/etc/init.d/php7-fpm,注释掉 prefix 的两行,然后设置好 BIN、CONF、PID:

#prefix=@prefix@
#exec_prefix=@exec_prefix@

php_fpm_BIN=/usr/local/php7/sbin/php-fpm
php_fpm_CONF=/usr/local/php7/etc/php-fpm.conf
php_fpm_PID=/var/run/php7-fpm.pid

4. 修改/usr/local/php7/etc/php.ini,在最下面加入一行开启 Zend Opache:

zend_extension=opcache.so

5. 启动 php7-fpm,并添加开机自启:

update-rc.d /etc/init.d/php7-fpm defaults
service php7-fpm start

6. 修改 Nginx 配置,默认目录在/usr/local/nginx/conf/vhost。注释掉 php-cgi.sock,然后插入一行,以 TCP 方式连接至 php7-fpm。

location ~ [^/]\.php(/|$)
{ 
...
#fastcgi_pass  unix:/tmp/php-cgi.sock;
fastcgi_pass  127.0.0.1:9001;
...
}

7. 重启 Nginx 即可。

/etc/init.d/nginx restart

用 PHP Benchmark 测试了一下,性能大约是 5.6.11 的 2.6 倍,确实有着不小的提升。

PHP 7.0.0.BenchmarkPHP 5.6.11 Benchmark

 

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.