编译安装PHP7及yaf,yar,redis等扩展

在VPS上已经安装了lnmp,当前的php版本为5.6.9在目录/usr/local/php下,新安装的php7.0.6到/usr/local/php/v70目录下。
一、下载编译安装php7:

a>#wget -O php-7.0.6.tar.gz http://cn2.php.net/get/php-7.0.6.tar.gz/from/this/mirror
b>#tar -zxvf php-7.0.6.tar.gz
c>#cd php-7.0.6
d>#./configure 
--prefix=/usr/local/php/v70 
--with-config-file-path=/usr/local/php/v70/etc 
--with-mysqli=/usr/local/mysql/ 
--with-mysqli=/usr/local/mysql/bin/mysql_config 
--with-pdo-mysql  
--with-iconv-dir=/usr/local/ 
--with-freetype-dir 
--with-jpeg-dir 
--with-png-dir 
--with-zlib 
--with-zlib-dir 
--with-libxml-dir=/usr 
--enable-xml 
--disable-rpath 
--enable-bcmath 
--enable-shmop 
--enable-sysvsem 
--enable-sysvshm 
--enable-inline-optimization 
--with-curl  
--enable-mbregex  
--enable-fpm 
--enable-mbstring 
--with-mcrypt 
--with-gd 
--enable-gd-native-ttf 
--with-openssl 
--with-mhash 
--enable-pcntl 
--enable-sockets 
--with-ldap=/usr/ 
--with-ldap-sasl 
--with-xmlrpc 
--enable-zip 
--enable-soap 
--enable-opcache 
--enable-ftp 
--enable-calendar 
--with-xsl 
--with-gettext 
--enable-session 
--enable-ctype 
--with-kerberos 
--with-libdir=/lib/ 
--with-pcre-regex 
--enable-exif 
--with-bz

略显繁琐,此间出现各种各样的报错,如:configure: error: Cannot find ldap libraries in /usr/lib 等. 

在网上搜索错误提示,并按解决方法处理,如: 

安装openldap: yum install openldap-devel
然后拷贝文件:cp -frp /usr/lib64/libldap* /usr/lib/

其它的未找到库文件之类的报错,按错误提示挨个安装:(如果有的话)

yum install -y libxslt libxslt-devel libxml2 libxml2-devel pcre-devel bzip2 bzip2-devel

最终不在报错,则继续编译安装:

e>#make ZEND_EXTRA_LIBS='-liconv'

超长时间的等待.......

f>#make install

完工, 拷贝配置文件:

  #cp ./php.ini-production /usr/local/php/v70/etc/php.ini

至此,php7已经成功安装到/usr/local/php/v70目录下。


二、配置php7的php-fpm与php5的php-fpm共存:

a>复制php7源文件夹中的init.d.php-fpm到/etc/init.d目录:
#cp ./sbin/sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm

编辑php7-fpm文件, 并对照更新下面几行,主要是php-fpm的运行文件、配置文件、pid的路径要一一对应。
#vim /etc/init.d/php7-fpm

prefix=/usr/local/php/v70
exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php7-fpm.pid
b>#chmod 777 /etc/init.d/php-fpm7
c>复制一份新的php-fpm.conf:
#cp /usr/local/php/v70/etc/php-fpm.conf.default /usr/local/php/v70/etc/php-fpm.conf
d>编辑php-fpm.conf文件, pid文件名与上面的/etc/init.d/php7-fpm里的pid一致;
修改/tmp/php7-cgi.sock使之与原来的php5的/tmp/php-cgi.sock共存。
#vim /usr/local/php/v70/etc/php-fpm.conf
[global]
pid = /usr/local/php/v70/var/run/php7-fpm.pid
error_log = /usr/local/php/v70/var/log/php7-fpm.log
log_level = notice
[www]
listen = /tmp/php7-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.php7.log
e>启动php7-fpm
#service php7-fpm start


三、配置更新nginx,使用php7-fpm解析php文件。

a>#vim /usr/local/nginx/conf/nginx.conf

修改此段,fastcgi_pass unit:/tmp/php7-cgi.sock;  使php7解析器工作:


        location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php7-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }


b>重新启动nginx
#service nginx restart


四、安装redis

a>安装redis服务器

#yum install redis

b>安装redis的php扩展

#wget -c https://github.com/phpredis/phpredis/archive/php7.zip 
#unzip php7.zip
#cd redis-php7
#/usr/local/php/v70/bin/phpize
#./configure --with-php-config=/usr/local/php/v70/bin/php-config
#make
#make install

此编译过程中,出了点意外,报个library.lo不是合法的libtool库文件什么什么的, 

网上找了一圈,解决方法是清除之前编译的可执行文件及配置文件, 重新编译:

#make clean
#make && make install

在php.ini中添加redis.so

#vim /usr/local/php/v70/etc/php.ini
extension=redis.so



五、安装PHP的yaf扩展

a>下载

#wget http://pecl.php.net/get/yaf-3.0.2.tgz

b>解压、编译、安装,步骤同上面的redis扩展

#tar -zxvf yaf-3.0.2.tgz
#cd yaf-3.0.2
#/usr/local/php/v70/bin/phpize
#./configure --with-php-config=/usr/local/php/v70/bin/php-config
#make && make install

在php.ini中添加yaf.so

#vim /usr/local/php/v70/etc/php.ini
extension=yaf.so



六、安装PHP的yar扩展

a>下载

#wget http://pecl.php.net/get/yar-2.0.0.tgz

b>解压、编译、安装,步骤同上:

#tar -zxvf yar-2.0.0.tgz
#cd yar-2.0.0
#/usr/local/php/v70/bin/phpize
#./configure --with-php-config=/usr/local/php/v70/bin/php-config
#make && make install

在php.ini中添加yar.so

#vim /usr/local/php/v70/etc/php.ini
extension=yar.so



七、安装PHP的msgpack扩展(主要是yar使用)

a>下载

#wget wget http://pecl.php.net/get/msgpack-2.0.1.tgz

b>解压、编译、安装,步骤同上:

#tar -zxvf msgpack-2.0.1.tgz
#cd msgpack-2.0.1
#/usr/local/php/v70/bin/phpize
#./configure --with-php-config=/usr/local/php/v70/bin/php-config
#make && make install

在php.ini中添加msgpack.so

#vim /usr/local/php/v70/etc/php.ini
extension=msgpack.so



八、最后重启一下php7-fpm, 启动redis server, 上面安装的就全部生效了。

a>service php7-fpm restart
b>service redis start

完工。

你可能感兴趣的:(Php,Redis)