溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何解決安裝php7及安裝memcache擴(kuò)展出現(xiàn)新舊php版本兼容問題

發(fā)布時間:2021-07-21 10:52:46 來源:億速云 閱讀:123 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“如何解決安裝php7及安裝memcache擴(kuò)展出現(xiàn)新舊php版本兼容問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何解決安裝php7及安裝memcache擴(kuò)展出現(xiàn)新舊php版本兼容問題”吧!

http://php.net/downloads.php

安裝php-7.0.0

首先安裝依賴程序 如果已經(jīng)安裝過請略過

yum install -y php-mcrypt libmcrypt libmcrypt-devel
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel
#openssl-devel是64位 如果是32位服務(wù)器請選擇i386版的
yum install openssl-devel.x86_64
yum install curl curl-devel
yum -y install libxslt-devel
yum install -y php-mcrypt libmcrypt libmcrypt-devel mcrypt mhash
./configure --prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-config-file-scan-dir=/usr/local/php7/etc/php.d \
--with-mcrypt \
--enable-mysqlnd \
--with-mysqli \
--with-pdo-mysql \
--enable-fpm \
--with-gd \
--with-iconv \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--enable-opcache

make &&  make install

可選
--with-fpm-user=www \
--with-fpm-group=www \

如果提示configure: error: mcrypt.h not found. Please reinstall libmcrypt.

因?yàn)閏entos6.x 默認(rèn)的yum源沒有l(wèi)ibmcrypt-devel 這個包,由于版權(quán)的原因,只能借助第三方y(tǒng)um源,或者自己手動下載編譯安裝包

wget http://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
./configure
make && make install

如果報(bào)checking for C++ compiler default output file name… configure: error: C++ compiler

cannot create executables

yum list | grep c++
yum install gcc-c++.x86_64

如果提示undefined reference to `libiconv’則需要先安裝libiconv

--with-iconv=/usr/local/libiconv

如果還是報(bào)錯則vim Makefile

找到EXTRA_LIBS =

在最后面加上-liconv

或者直接make ZEND_EXTRA_LIBS=’-liconv’

如果重新安裝的是舊版本的php則需要重新編譯apache的LoadModule php5_module文件

./configure --with-apxs2=/usr/local/sbin/apxs

此時php7安裝完成

mv /usr/local/src/php-7.1.0/php.ini-production /usr/local/php7/etc/php.ini

啟用php-fpm服務(wù)

cd /usr/local/php7/etc
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

注意更改php-fpm.conf的user跟group否則可能會因?yàn)闄?quán)限問題報(bào)File not found.

user = nobody
group = nobody

運(yùn)行php-fpm

/usr/local/php7/sbin/php-fpm -c /usr/local/php7/etc/php.ini -y /usr/local/php7/etc/php-fpm.conf

如果想使用此命令service php-fpm start|stop|restart

cd /usr/local/src/php-7.1.0/sapi/fpm
ls
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on

就可以使用 sevice php-fpm start 來啟用php-fpm了。用 ps -ef | grep php-fpm 看看進(jìn)程吧。

但是當(dāng)我安裝memcache擴(kuò)展的時候

http://pecl.php.net/package/memcache

安裝memcache-2.2.7 2012年的穩(wěn)定版

#如果已安裝過autoconf請忽略
autoconf
yum install autoconf

phpize
./configure --enable-memcache --with-php-config=/usr/local/php7/bin/php-config
make && make install

此時報(bào)致命錯誤/root/memcache-2.2.7/memcache.c:40:40: fatal error: ext/standard/php_smart_str.h: No such file or directory

php_smart_str.h文件不存在

百度搜php_smart_string.h是給字符串預(yù)處理動態(tài)申請內(nèi)存空間,類似于操作系統(tǒng)中內(nèi)存以頁為單位分配,它的好處是對齊內(nèi)存地址,提高訪問速度。

發(fā)現(xiàn)php7已經(jīng)把此文件改成php_smart_string.h 對比看2個文件改動蠻大的

這個不知道是不是php官方開發(fā)組的兼容性沒有做好 期待改善

到此,相信大家對“如何解決安裝php7及安裝memcache擴(kuò)展出現(xiàn)新舊php版本兼容問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI