• 在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

    完工。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐