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 ?
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.
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 phpCe 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!