linux環境下從php5.6升級到php7.1.10(centos6.7)


先下載升級包:https://pan.baidu.com/s/1hsitVda

關閉php-fpm(如果有)

service php-fpm stop

1、拉取php7.1.10 tar包

$wget -c http://php.net/distributions/php-7.1.10.tar.gz -O php-7.1.10.tar.gz

2、解壓並進入

$tar -zxvf php-7.1.10.tar.gz 
$cd php-7.1.10

3、編譯

$./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local/ --enable-safe-mode -enable-fastcgi -enable-force-cgi-redirect --with-gd --with-jpeg-dir=/usr/local/ --with-png-dir=/usr/local/ --enable-sockets --with-mysqli=mysqlnd --with-openssl --enable-soap --enable-mbstring --enable-mbregex --enable-sqlite-utf8 --enable-zip --with-freetype-dir=/usr/local/ --enable-fpm --with-curl --enable-opcache --with-mcrypt --enable-xml --enable-session --enable-ftp --with-mhash --enable-pcntl --with-gettext --with-gettext --enable-bcmath --with-zlib --with-pdo-mysql --enable-sysvshm --enable-sysvsem --enable-shmop

 

4、安裝

make && make install

(如果提示libiconv模塊相關錯誤,可嘗試使用如下命令安裝
$make ZEND_EXTRA_LIBS='-liconv' && make install)
5、修復配置
1)將擴展放到/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303(根據php.ini配置的擴展目錄存放)
2)將配置文件放到/usr/local/php/etc
3)nginx下站點配置修改:fastcgi_pass 127.0.0.1:9000;
6、重啟驗證

service php-fpm restart
service nginx reload 

訪問已配置的站點即可
如果出現502 bad gateway 一般都是nginx配置或者文件權限問題

附上:nginx標准配置

server {
        listen       8117;
        server_name localhost;
        charset utf-8;
        root /home/www/src/kmadadmin/public;

        index index.php;

        location / {
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php$1  last;
                    break;
                }
        }

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/www/src/kmadadmin/public/$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ .+\.php($|/) {
            #配置PHP支持PATH_INFO進行URL重寫
            set $script     $uri;
            set $path_info  "/";
            if ($uri ~ "^(.+\.php)(/.+)"){
                set $script     $1;
                set $path_info  $2;
             }
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php?IF_REWRITE=1;
             include        fastcgi_params;

             fastcgi_param   SCRIPT_FILENAME  /home/www/src/kmadadmin/public/$script;
             fastcgi_param   PATH_INFO   $path_info;
             fastcgi_param   SCRIPT_NAME $script;
        }
    }

  我在升級的時候nginx站點 一直502,最后改了配置文件/usr/local/php/etc/php-fpm.d/www.conf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM