Maison >développement back-end >PHP7 >Comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ?
Cet article vous présentera comment mettre à niveau le serveur nginx de php5.5.7 vers php7 ? méthode. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
① Le serveur nginx, php et mysql sont tous installés, je souhaite donc mettre à jour php7 directement.
②Suivez l'article : https:// typecodes .com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referral Lors de l'exécution de l'opération, quelque chose de différent apparaît au milieu.
③Référence de résolution de problèmes : http://blog.chinaunix.net/uid-25266990-id-2915395.html
Ligne de séparation------------ - ------------------------------------------------- - ------------------------------------------------- - ------------------------------------------------- - -----------
Je republierai l'étape 2 ci-dessous pour mon propre usage.
Créez d'abord un utilisateur nommé php sans autorisations de connexion et un groupe d'utilisateurs nommé php, puis accédez à GitHub Téléchargez le package de code source php7.
#######新建php用户和php组 [root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php ######从GitHub下载php7安装包 [root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/php-src/archive/master.zip ######开始解压php7包 [root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master #####安装编译php7时需要的依赖包 [root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
Une fois les préparatifs terminés, commencez à configurer formellement les détails d'installation de php7 . Attention, vous devez d'abord supprimer le texte du commentaire ajouté après la barre oblique inverse "" ci-dessous ! ! !
######开始生成配置文件 [root@typecodes php-src-master]# ./buildconf buildconf: checking installation... buildconf: autoconf version 2.69 (ok) rebuilding aclocal.m4 rebuilding configure rebuilding main/php_config.h.in ######开始配置 [root@typecodes php-src-master]# ./configure \ --prefix=/usr/local/php7 \ [PHP7安装的根目录] --exec-prefix=/usr/local/php7 \ --bindir=/usr/local/php7/bin \ --sbindir=/usr/local/php7/sbin \ --includedir=/usr/local/php7/include \ --libdir=/usr/local/php7/lib/php \ --mandir=/usr/local/php7/php/man \ --with-config-file-path=/usr/local/php7/etc \ [PHP7的配置目录] --with-mysql-sock=/var/run/mysql/mysql.sock \ [PHP7的Unix socket通信文件] --with-mcrypt=/usr/include \ --with-mhash \ --with-openssl \ --with-mysql=shared,mysqlnd \ [PHP7依赖mysql库] --with-mysqli=shared,mysqlnd \ [PHP7依赖mysql库] --with-pdo-mysql=shared,mysqlnd \ [PHP7依赖mysql库] --with-gd \ --with-iconv \ --with-zlib \ --enable-zip \ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-xml \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-mbregex \ --enable-mbstring \ --enable-ftp \ --enable-gd-native-ttf \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --without-pear \ --with-gettext \ --enable-session \ [允许php会话session] --with-curl \ [允许curl扩展] --with-jpeg-dir \ --with-freetype-dir \ --enable-opcache \ [使用opcache缓存] --enable-fpm \ --enable-fastcgi \ --with-fpm-user=nginx \ [php-fpm的用户] --with-fpm-group=nginx \ [php-fpm的用户组] --without-gdbm \ --disable-fileinforrree
Par rapport à la consommation importante de processeur et de mémoire liée à la compilation et à l'installation de MySQL, la compilation et l'installation de PHP7 sont beaucoup plus faciles et l'ensemble du processus prend environ une heure.
./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo
Voir l'image ci-dessous signifie que PHP7 a été compilé et installé ! (ps : Une erreur s'est produite lors de la compilation. Une référence non définie à `libiconv_open ne peut pas compiler PHP ;
Pour plus de détails sur la solution, voir le lien ci-dessus : Modifiez le Makefile vers la ligne 77 :
EXTRA_LIBS = .. ... -lcrypt
Ajoutez -liconv à la fin, par exemple :
EXTRA_LIBS = ..... -lcrypt -liconv
puis exécutez make. )
Il s'agit d'une étape facultative, exécutez la commande make test. Une chose intéressante est : pendant le test, une connexion TCP sera établie avec une adresse IP 72.52.91.14, qui correspond au site officiel de PHP http://www.php.net.
Puisque vous devez communiquer avec MySQL, vous devez spécifiquement vérifier le répertoire de la bibliothèque d'extension lib après l'installation de PHP7 (/usr/local/php7 /lib/php/extensions/no-debug-non-zts-20141001/). Vous devez vous assurer qu'il existe au moins deux fichiers de bibliothèque dynamique mysqli.so et pdo_mysql.so, comme indiqué dans la figure ci-dessous.
Vous pouvez copier le fichier de configuration compilé dans le répertoire de configuration PHP7 (/usr/local/php7/etc/), il est recommandé d'utiliser les trois fichiers de configuration PHP7 et le script de contrôle de service php-fpm compilés dans l'article "Configuration de php.ini, php-fpm et www.conf en PHP7 ".
[root@typecodes php-src-master]# make clean && make && make install
Ajouter le répertoire bin généré par la compilation php à la variable d'environnement du système Linux actuel
#######方法一:直接使用编译后未经优化处理的配置 [root@typecodes php-src-master]# cp php.ini-production /usr/local/php7/etc/php.ini [root@typecodes php-src-master]# cp /root/php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf [root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf #######方法二:使用https://typecodes.com/web/php7configure.html文中的配置 [root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm [root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
Parmi eux, définissez l'utilisateur et le groupe d'utilisateurs du répertoire de processus php-fpm sur nginx et créez un répertoire de session de session php.
[root@typecodes ~]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录 [root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm #######修改session的目录配置 [root@typecodes etc]# mkdir -p /var/lib/php/session [root@typecodes etc]# chown -R nginx:nginx /var/lib/php
Après avoir terminé les opérations ci-dessus, vous pouvez officiellement utiliser le php service. La commande pour démarrer le service de processus php est la suivante :
######配置开机自启动,增加到主机sysV服务 [root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm [root@typecodes php-src-master]# chkconfig --add php-fpm [root@typecodes php-src-master]# chkconfig php-fpm on ######测试PHP的配置文件是否正确合法 [root@typecodes sbin]# php-fpm -t [03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
Ensuite, vous pouvez vérifier s'il a réussi grâce à la commande ps -aux|grep php (le nombre de processus php-fpm et l'utilisateur du processus nginx dans les images sont toutes deux déterminées par pm dans www.conf. Les valeurs de start_servers et user sont déterminées respectivement) :
Enfin, vous pouvez afficher le PHP actuel. informations de version via la commande php -v Vous pouvez voir sur la figure que la version actuelle de PHP7 est également utilisée. Le cache Zend OPcache est désactivé car la configuration zend_extension=opcache.so est ajoutée au fichier php.ini.
configure : error : xslt-config not found. Veuillez réinstaller la distribution libxslt >= 1.1.0
L'erreur suivante se produit lors de la compilation et de l'installation de PHP
./ configure :
configure : error : xslt-config not found. Veuillez réinstaller la distribution libxslt >= 1.1.0
Solution :
yum install libxslt-devel* - y
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!