不知道你是否會(huì)安裝php7,也不知道你是否會(huì)處理安裝memcache擴(kuò)展出現(xiàn)新舊php版本兼容問題,今天小編就帶大家了解一下,有需要的可以參考參考。
http://php.net/downloads.php
安裝php-7.0.0
首先安裝依賴程序 如果已經(jīng)安裝過請(qǐ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ù)器請(qǐng)選擇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 這個(gè)包,由于版權(quán)的原因,只能借助第三方y(tǒng)um源,或者自己手動(dòng)下載編譯安裝包
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)錯(cuò)則vim Makefile
找到EXTRA_LIBS =
在最后面加上-liconv
或者直接make ZEND_EXTRA_LIBS=’-liconv’
如果重新安裝的是舊版本的php則需要重新編譯apache的LoadModule php5_module文件
./configure --with-apxs2=/usr/local/sbin/apxs
此時(shí)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否則可能會(huì)因?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ò)展的時(shí)候
http://pecl.php.net/package/memcache
安裝memcache-2.2.7 2012年的穩(wěn)定版
#如果已安裝過autoconf請(qǐng)忽略 autoconf yum install autoconf phpize ./configure --enable-memcache --with-php-config=/usr/local/php7/bin/php-config make && make install
此時(shí)報(bào)致命錯(cuò)誤/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ù)處理動(dòng)態(tài)申請(qǐng)內(nèi)存空間,類似于操作系統(tǒng)中內(nèi)存以頁為單位分配,它的好處是對(duì)齊內(nèi)存地址,提高訪問速度。
發(fā)現(xiàn)php7已經(jīng)把此文件改成php_smart_string.h 對(duì)比看2個(gè)文件改動(dòng)蠻大的
這個(gè)不知道是不是php官方開發(fā)組的兼容性沒有做好 期待改善
推薦學(xué)習(xí):php視頻教程