Introduction détaillée à l'exemple de code pour compiler et installer PHP7 sur CentOS7 (photo)

黄舟
Libérer: 2023-03-07 06:48:01
original
2234 Les gens l'ont consulté

Créer un utilisateur php et un groupe d'utilisateurs

Créez d'abord un utilisateur nommé php sans autorisation de connexion et un groupe d'utilisateurs nommé php

#######新建php用户和php组[root@localhost ~]
# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php
Copier après la connexion

Obligatoire pour compiler et installer les dépendances php 7

Compilez et installez le paquet source binaire libmcrypt, mhash, mcrypt
La raison pour laquelle libmcrypt est compilé et installé ici est que l'installation de yum semble signaler une erreur

######编译安装libmcrypt-2.5.7
[root@localhost ~]# tar zxvf libmcrypt-2.5.7.tar.gz
[root@localhost ~]# cd libmcrypt-2.5.7
[root@localhost libmcrypt-2.5.7]# ./configure --prefix=/usr/local/related/libmcrypt
[root@localhost libmcrypt-2.5.7]# make && make install
[root@localhost libmcrypt-2.5.7]# cd ~
[root@localhost ~]# rm -rf libmcrypt-2.5.7*
Copier après la connexion
######编译安装mhash-0.9.9.9
[root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz 
[root@localhost ~]# cd mhash-0.9.9.9
[root@localhost mhash-0.9.9.9]# ./configure --prefix=/usr/local/related/mhash
[root@localhost mhash-0.9.9.9]# make && make install
[root@localhost mhash-0.9.9.9]# cd ~
[root@localhost ~]# rm -rf mhash-0.9.9.9*
Copier après la connexion
######编译安装mcrypt-2.6.8
[root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8
[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/related/libmcrypt/lib:/usr/local/related/mhash/lib
[root@localhost mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/related/mhash/lib -I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# export CFLAGS="-I/usr/local/related/mhash/include/"
[root@localhost mcrypt-2.6.8]# ./configure --prefix=/usr/local/related/mcrypt --with-libmcrypt-prefix=/usr/local/related/libmcrypt
[root@localhost mcrypt-2.6.8]# make && make install
[root@localhost mcrypt-2.6.8]# cd ~
[root@localhost ~]# rm -rf mcrypt-2.6.8*
Copier après la connexion
######其他依赖yum安装[root@localhost ~]
# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel
Copier après la connexion

Configuration des paramètres de compilation PHP 7

Attention, vous devez d'abord supprimer le texte commentaire ajouté après la barre oblique inverse "" ci-dessous ! ! !

######生成配置文件
[root@localhost ~]# tar -zxf php-7.0.0.tar.gz && cd php-7.0.0
[root@localhost php-7.0.0]# ./buildconf --force
Forcing buildconf
Removing configure caches
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding configure
rebuilding main/php_config.h.in
######开始配置

[root@localhost php-7.0.0]# ./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 \
--with-mcrypt=/usr/local/related/libmcrypt \            [指定libmcrypt位置]
--disable-fileinfo
Copier après la connexion

Les résultats de l'exécution de la commande de configuration ci-dessus sont les suivants :
php 7配置结果

Démarrez la compilation et l'installation de PHP 7

[root@localhost php-7.0.0]# make clean && make && make install
Copier après la connexion

PHP 7 Compilé et installé avec succès
PHP 7编译安装成功

Étape facultative : exécutez la commande make test pour tester

Il s'agit d'une étape non essentielle, exécutez la commande make test

PHP 7 test

Afficher le répertoire d'installation de PHP7 après une compilation réussie

Puisque vous devez communiquer avec MySQL, vous devez vérifier spécifiquement 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-20151012/). 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.

[root@localhost php-7.0.0]# ls -lrt /usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/
Copier après la connexion

php 7 目录

Commencer à configurer les fichiers de configuration PHP7 php.ini, php-fpm.conf, www.conf et les scripts php-fpm

peuvent être utilisé Copiez le fichier de configuration compilé dans le répertoire de configuration PHP7 (/usr/local/php7/etc/). Il est recommandé d'utiliser la configuration dans github. Cette configuration provient de "Configuration de php.ini, php-fpm et www.conf en PHP7"

#######方法一:直接使用编译后未经优化处理的配置
[root@localhost php-7.0.0]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@localhost php-7.0.0]# cp /root/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
[root@localhost php-7.0.0]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

#######方法二:使用https://github.com/lizer2014/mylnmp/tree/master/PHP文中的配置 
[root@localhost php-7.0.0]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm
[root@localhost php-7.0.0]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
Copier après la connexion

Remarque : Vous devez modifier les paramètres dans la configuration de php.ini, et changer extension_dir au vôtre

extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"
Copier après la connexion

Dans /etc/init.d/php-fpm, il doit y avoir une commande make /var/run/php-fpm avant le processus démon de la fonction de démarrage , sinon le redémarrage du serveur entraînera un échec de démarrage, la configuration dans nginx a également ce problème

Ajouter des variables d'environnement php

[root@localhost php-7.0.0]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
Copier après la connexion

Définissez le répertoire des journaux PHP et le fichier de processus php-fpm ( php-fpm.sock)

Parmi eux, définissez l'utilisateur et le groupe d'utilisateurs du répertoire de processus php-fpm sur nginx, et créez le répertoire de session php

#######设置PHP日志目录和php-fpm的运行进程ID文件(php-fpm.sock)目录
[root@localhost php-7.0.0]
# groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx
[root@localhost php-7.0.0]
# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm
#######修改session的目录配置
[root@localhost run]# mkdir -p /var/lib/php/session
[root@localhost run]
# chown -R nginx:nginx /var/lib/php
Copier après la connexion

Définissez PHP sur démarrez et testez si le fichier de configuration est correct

######配置开机自启动,增加到主机sysV服务
[root@localhost run]# chmod +x /etc/init.d/php-fpm
[root@localhost run]# chkconfig --add php-fpm
[root@localhost run]# chkconfig php-fpm on
######测试PHP的配置文件是否正确合法
[root@localhost run]# php-fpm -t
[05-Dec-2015 17:33:03] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
Copier après la connexion

Démarrez le service php

Après avoir terminé les opérations ci-dessus, vous pouvez officiellement utiliser le service php. La commande pour démarrer le service de processus php est la suivante :

[root@localhost init.d]# service php-fpm startStarting php-fpm  done
Copier après la connexion

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 l'image sont tous deux déterminés par www.conf Les valeurs de pm.start_servers et user sont déterminées respectivement) :

PHP 7 ps -aux

Afficher les informations sur la version PHP7

Enfin, vous pouvez afficher les informations sur la version actuelle de PHP via la commande php -v , vous pouvez voir sur l'image qu'actuellement PHP7 utilise également le cache Zend OPcache, car la configuration zend_extension=opcache.so est ajoutée au fichier php.ini.

PHP 7 version

Articles connexes :

Mac utilise sa propre installation php par défaut

centos6.7 installation Introduction détaillée à php7

Introduction détaillée à l'installation de l'environnement php sous Linux et à la configuration de Nginx pour prendre en charge le module php-fpm (image et texte)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!