環境說明:nginx+phpphp
無需刪除舊的php5版本,升級步驟以下:html
0、,關閉php-fpm(若是有)
service php-fpm stopmysql
一、拉取php7.1.10 tar包
$wget -c http://php.net/distributions/php-7.1.10.tar.gz -O php-7.1.10.tar.gznginx
二、解壓並進入
$tar -zxvf php-7.1.10.tar.gz
$cd php-7.1.10sql
三、編譯(參數能夠根據須要修改)
$./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr --enable-safe-mode -enable-fastcgi -enable-force-cgi-redirect --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --enable-sockets --with-mysqli=mysqlnd --with-openssl --enable-soap --enable-mbstring --enable-mbregex --enable-sqlite-utf8 --enable-zip --with-freetype-dir=/usr --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-shmopsession
四、安裝
make && make install
(若是提示libiconv模塊相關錯誤,可嘗試使用以下命令安裝
$make ZEND_EXTRA_LIBS='-liconv' && make install)php7
五、修復配置
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;curl
六、重啓驗證
service php-fpm restart
service nginx reload
訪問已配置的站點便可
若是出現502 bad gateway 通常都是nginx配置或者文件權限問題socket
其餘注意:
一、php7.1.0以上版本已經廢棄了mcrypt擴展的加解密相關函數,如mcrypt_encrypt、mcrypt_get_iv_size、mcrypt_create_iv等,官方:http://php.net/manual/en/function.mcrypt-encrypt.php#117667
目前有的替換解決方案:使用openssl_encrypt、openssl_decrypt,使用起來更方便簡潔,網上解決方案地址:https://www.ctolib.com/topics-122535.html
記得開啓php_openssl擴展函數