Maison >développement back-end >PHP7 >Comment installer php7 et installer l'extension memcache. Que dois-je faire s'il y a des problèmes de compatibilité entre l'ancienne et la nouvelle version de PHP ?

Comment installer php7 et installer l'extension memcache. Que dois-je faire s'il y a des problèmes de compatibilité entre l'ancienne et la nouvelle version de PHP ?

醉折花枝作酒筹
醉折花枝作酒筹avant
2021-07-20 09:18:002557parcourir

Je ne sais pas si vous installerez php7, et je ne sais pas si vous traiterez les problèmes de compatibilité entre les anciennes et les nouvelles versions de php lors de l'installation de l'extension memcache. Aujourd'hui, je vais vous expliquer cela et vous pourrez vous y référer. si vous en avez besoin.

Comment installer php7 et installer l'extension memcache. Que dois-je faire s'il y a des problèmes de compatibilité entre l'ancienne et la nouvelle version de PHP ?

http://php.net/downloads.php

Installez php-7.0.0

Installez d'abord le programme dépendant Si vous l'avez déjà installé, veuillez l'ignorer

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 \

Si vous y êtes invité, configurez : erreur. : mcrypt.h introuvable. Veuillez réinstaller libmcrypt.

Parce que la source yum par défaut du nom du fichier de sortie par défaut du compilateur C++… configurez : erreur : le compilateur C++

ne peut pas créer d'exécutables

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

S'il demande une référence non définie à `libiconv. ', vous devez d'abord installer libiconv

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

Si vous obtenez toujours une erreur, vim Makefile

Trouver EXTRA_LIBS =

Ajoutez -liconv à la fin

ou directement make ZEND_EXTRA_LIBS='-liconv'

Si vous réinstallez une ancienne version de php, vous devez recompiler le fichier LoadModule php5_module d'Apache

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

À ce stade, l'installation de php7 est terminée

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

Activer le service php-fpm

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

Attention à changer l'utilisateur et le groupe de php-fpm. conf, sinon un fichier introuvable peut être signalé en raison de problèmes d'autorisation.

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

Exécutez php-fpm

user = nobody
group = nobody

Si vous souhaitez utiliser cette commande, le service php-fpm start| stop|restart

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

Vous pouvez utiliser le service php-fpm commencez à activer php-fpm. Utilisez ps -ef | grep php-fpm pour vérifier le processus.

Mais quand j'installe l'extension memcache

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

Install memcache-2.2.7 2012 stable version

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

Une erreur fatale est signalée à ce moment /root/memcache - 2.2.7/memcache.c:40:40 : erreur fatale : ext/standard/php_smart_str.h : aucun fichier ou répertoire de ce type

Le fichier php_smart_str.h n'existe pas

La recherche Baidu php_smart_string.h est destinée à la dynamique de prétraitement des chaînes La demande d'espace mémoire est similaire à l'allocation de mémoire en unités de pages dans le système d'exploitation. Son avantage est d'aligner les adresses mémoire et d'améliorer la vitesse d'accès.

J'ai trouvé que php7 a changé ce fichier en php_smart_string.h En comparant les deux fichiers, les changements sont assez importants

Je ne sais pas si la compatibilité de l'équipe de développement PHP officielle n'a pas fait du bon travail en attendant une amélioration.

Apprentissage recommandé :

Tutoriel vidéo php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer