首頁 > 後端開發 > PHP7 > 如何安裝php7及安裝memcache擴充出現新舊php版本相容問題該怎麼辦

如何安裝php7及安裝memcache擴充出現新舊php版本相容問題該怎麼辦

醉折花枝作酒筹
發布: 2023-02-18 07:26:01
轉載
2548 人瀏覽過

不知道你會不會安裝php7,也不知道你會不會處理安裝memcache擴充出現新舊php版本相容問題,今天小編就帶大家了解一下,有需要的可以參考參考。

如何安裝php7及安裝memcache擴充出現新舊php版本相容問題該怎麼辦

http://php.net/downloads.php

#安裝php-7.0.0 

首先安裝依賴程式如果已經安裝過請略過

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位服务器请选择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. 

因為centos6.x 預設的yum來源沒有libmcrypt-devel 這個包,由於版權所有的原因,只能藉助第三方yum來源,或自行手動下載編譯安裝套件

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

如果報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
登入後複製

如果還是報錯則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服務

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否則可能會因為權限問題報File not found.

user = nobody
group = nobody
登入後複製

執行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 看看進程吧。

但是當我安裝memcache擴充的時候

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

安裝memcache-2.2.7 2012年的穩定版

#如果已安装过autoconf请忽略
autoconf
yum install autoconf

phpize
./configure --enable-memcache --with-php-config=/usr/local/php7/bin/php-config
make && make install
登入後複製

此時報致命錯誤/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是給字串預處理動態申請記憶體空間,類似於作業系統中記憶體以頁為單位分配,它的好處是對齊記憶體位址,提高訪問速度。

發現php7已經把這個檔案改成php_smart_string.h 比較看2個檔案改動蠻大的

這個不知道是不是php官方開發群組的相容性沒有做好期待改善

推薦學習:php影片教學

以上是如何安裝php7及安裝memcache擴充出現新舊php版本相容問題該怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板