Maison >développement back-end >Problème PHP >Comment compiler et installer php5.6.31

Comment compiler et installer php5.6.31

藏色散人
藏色散人original
2021-11-17 09:45:311818parcourir

Comment compiler et installer php5.6.31 : 1. Ajoutez la source epel et téléchargez php-5.6.31 ; 2. Décompressez le package d'installation et installez-le 3. Modifiez php-fpm.conf ; 5, modifiez le fichier de configuration nginx et redémarrez le service nginx.

Comment compiler et installer php5.6.31

L'environnement d'exploitation de cet article : système CentOS 7, version php5.6.31, ordinateur DELL G3

Comment compiler et installer php5.6.31 ?

CentOS 7 Compilez et installez PHP5.6.31

Il y a déjà nginx et mysql sur le serveur, j'ai donc décidé d'utiliser la combinaison de PHP+Nginx+mysql J'ai recherché beaucoup d'informations sur Internet. , parce que je ne connais pas Linux et PHP, je comprends, mais je ne sais pas comment PHP, nginx et mysql sont liés, j'ai rencontré diverses raisons (soit PHP n'a pas été installé correctement, soit le package n'a pas été installé), et je l'ai fait. J'ai passé beaucoup de temps. Plus tard, après le déploiement, j'ai découvert que ces trois éléments étaient séparés. Pour installer (enfin ~~ peut-il être installé ensemble), il vous suffit de configurer php après l'installation, et de configurer nginx (associé à php) et vous. peut l'exécuter directement. Quant à MySQL, tant qu'il est activé et que la base de données de connexion dans le projet php est configurée, vous pouvez vous connecter directement. Cet article vise donc principalement l'installation de php.

Concernant l'installation de nginx et mysql, vous devez installer certaines bibliothèques de développement Linux avant de démarrer l'installation. Je ne les répéterai pas ici. Elles sont toutes dans les liens de référence.

Cet article fait principalement référence à ce lien blog : https://www.cnblogs.com/flower-tree/p/7562101.html

version php : 5.6.31

version nginx : 1.7.3

Version mysql : 5.6.62

Configuration de l'installation PHP

nginx lui-même ne peut pas gérer PHP, c'est juste un serveur WEB Lorsqu'une requête est reçue, s'il s'agit d'une requête PHP, elle est envoyée à l'interpréteur PHP pour traitement et au. le résultat est renvoyé au client.

nginx envoie généralement la demande au processus de gestion fastcgi pour traitement. Le processus de gestion fastcgi sélectionne le sous-processus cgi pour traiter le résultat et le renvoie à nginx.

Qu'est-ce que PHP-FPM ? PHP-FPM est un gestionnaire FASTCGI pour PHP. Il est utilisé uniquement pour PHP. La nouvelle version intègre php-fpm qui offre une meilleure gestion des processus php, peut contrôler efficacement la mémoire et les processus et recharger en douceur la configuration php. Lors de la configuration, vous pouvez activer php-fpm avec le paramètre -enable-fpm. D'autres paramètres peuvent être trouvés ici. Quant à ce qu'est fastcgi et sa relation avec php-fpm, veuillez vous référer au lien https://segmentfault.com/. q/1010000000256516

Préparation avant l'installation

Ajouter la source epel

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Dépendances d'installation

yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-develyum -y install gcc gcc-c++ glibcyum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel

Téléchargerphp-5.6.31

1) Décompressez le package d'installation dans /usr/local/src

cd /usr/local/srctar -zvxf php-5.6.31.tar.gz

2) Entrez dans le répertoire d'installation et installez

cd php-5.6.31./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendarmake && make install
CentOS 中下载php: wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror

Ce qui précède termine l'installation de php-fpm. Le processus d'installation prendra un certain temps.

À propos de la configuration de php

1. Fournissez les fichiers de configuration pour php

cp php.ini-production /usr/local/php/etc/php.ini

Remarque : php.ini-production est toujours dans le répertoire /usr/local/src/php-5.6.31 pour le moment

2. Fichier de configuration fpm

cd /usr/local/phpcp etc/php-fpm.conf.default etc/php-fpm.conf
vim etc/php-fpm.conf

Modifier php-fpm.conf

user = www
group = www

Si l'utilisateur www n'existe pas, ajoutez d'abord l'utilisateur www (utilisateur en cours d'exécution par défaut, personne)

groupadd www
useradd -g www www

Si cette étape n'est pas configuré, parcourez Le serveur signalera une erreur lors de l'ouverture du fichier php

"La page que vous recherchez est temporairement indisponible. Veuillez réessayer plus tard"

Modifier

pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid

3. Démarrez php-fpm

.

Exécutez

/usr/local/php/sbin/php-fpm

Utilisez la commande suivante pour vérifier Positif (s'il y a plusieurs processus php-fpm dans la sortie de cette commande, cela signifie que le démarrage est réussi) :

ps aux | grep php-fpm

Le résultat est le suivant :

3. Intégration de nginx et php-fpm

Modifier le fichier de configuration nginx

vim /usr/local/nginx/conf/nginx.conf

Le contenu initial est le suivant :

# nginx运行的用户名
user nginx;
# nginx启动进程,通常设置成和cpu的数量相等,这里为自动
worker_processes auto;

# errorlog文件位置
error_log /var/log/nginx/error.log;
# pid文件地址,记录了nginx的pid,方便进程管理
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
# 用来加载其他动态模块的配置
include /usr/share/nginx/modules/*.conf;

# 工作模式和连接数上限
events {
    # 每个worker_processes的最大并发链接数
    # 并发总数:worker_processes*worker_connections
    worker_connections 1024;
}

# 与提供http服务相关的一些配置参数类似的还有mail
http {
    # 设置日志的格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    # access_log记录访问的用户、页面、浏览器、ip和其他的访问信息
    access_log  /var/log/nginx/access.log  main;

    # 这部分下面会单独解释
    # 设置nginx是否使用sendfile函数输出文件
    sendfile            on;
    # 数据包最大时发包(使用Nagle算法)
    tcp_nopush          on;
    # 立刻发送数据包(禁用Nagle算法)
    tcp_nodelay         on;
    # 链接超时时间
    keepalive_timeout   65;
    # 这个我也不清楚...
    types_hash_max_size 2048;

    # 引入文件扩展名与文件类型映射表
    include             /etc/nginx/mime.types;
    # 默认文件类型
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    # http服务上支持若干虚拟主机。
    # 每个虚拟主机一个对应的server配置项
    # 配置项里面包含该虚拟主机相关的配置。
    server {
        # 端口
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 访问的域名
        server_name  _;
        # 默认网站根目录(www目录)
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;

        # 默认请求
        location / {
        }

        # 错误页(404)
        error_page 404 /404.html;
            location = /40x.html {
        }

        # 错误页(50X)
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

Tout ce dont nous avons besoin pour changer la configuration est la partie server. Entrez en mode d'édition vim ou utilisez FlashFXP pour partager le fichier de configuration sur le bureau afin d'apporter des modifications.

Seuls trois changements sont nécessaires

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        # 这里改动了,也可以写你的域名,我用的是IP地址
        server_name  192.168.0.222;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            # 这里改动了 定义首页索引文件的名称
            index index.php index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }

        # 这里新加的
        # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI协议默认配置.
        # Fastcgi服务器和程序(PHP,Python)沟通的协议.
        location ~ \.php$ {
            # 设置监听端口
            fastcgi_pass   127.0.0.1:9000;
            # 设置脚本文件请求的路径
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            # 引入fastcgi的配置文件
            include        fastcgi_params;
        }
    }

Redémarrez le serveur nginx

nginx -s reload

À ce stade, nginx et php ont été configurés conjointement, mais nous ne connaissons pas l'effet réel de la configuration. Pour le moment, nous pouvons écrire un petit script de test. Vérifions-le.
Comme mentionné précédemment, /usr/share/nginx/html est le répertoire racine du site Web Nginx. Nous pouvons créer un script de test php dans ce répertoire.

#phpinfo.php est le nom du fichier que je souhaite créer

vi /usr/share/nginx/html/phpinfo.php

Après avoir ouvert l'éditeur, saisissez

e2fef49b76a02e58cb8a935d1457623a

Après avoir enregistré et quitté, saisissez http://192.168.0.222/phpinfo.php dans le navigateur, ici Je suis L'adresse IP est 192.168.0.222, vous pouvez la changer par la vôtre. Une interface similaire à la suivante apparaîtra comme indiqué sur la figure :

Nginx et php ont été configurés.

4. Raisons des erreurs dans le processus d'installation

Lorsque j'ai suivi le processus d'installation, une erreur s'est produite : mcrypt.h introuvable Veuillez réinstaller libmcrypt

C'est parce que les packages php-mcrypt, libmcrypt et libmcrypt-devel ne sont pas installés. Les erreurs qui surviennent sont généralement dues à. bibliothèques ou packages manquants. Installez-les immédiatement.

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:
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