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

Comment compiler et installer php5.6.31

藏色散人
藏色散人original
2022-01-21 10:42:482130parcourir

Comment compiler et installer php5.6.31 : 1. Ajoutez la source epel ; 2. Installez les dépendances ; 3. Téléchargez et décompressez php5.6.31 ; 4. Modifiez php-fpm.conf ;

Comment compiler et installer php5.6.31

L'environnement d'exploitation de cet article : système CentOS 7, version php : 5.6.31 version nginx : 1.7.3 version mysql : 5.6.62, 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 le serveur. Internet, parce que je ne connais pas Linux et PHP, je ne comprends pas. Je ne sais pas comment PHP est lié à nginx et MySQL. J'ai rencontré diverses raisons (soit PHP n'a pas été installé correctement, soit le package n'a pas été installé). . J'ai passé beaucoup de temps. Plus tard, après le déploiement, j'ai découvert que ces trois-là étaient tous à installer séparément (enfin ~~ peut-il être installé ensemble), il vous suffit de configurer PHP après l'installation, puis de configurer nginx (associé à PHP) et vous pouvez 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.

Configuration de l'installation PHP

nginx lui-même ne peut pas gérer PHP. Lorsqu'une requête est reçue, s'il s'agit d'une requête PHP, elle sera envoyée à l'interpréteur PHP pour traitement et le résultat sera renvoyé à. le 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. fpm Fichier de configuration

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 (l'utilisateur en cours d'exécution par défaut est personne)

groupadd www
useradd -g www www

Si cette étape n'est pas configurée, le navigateur signaler 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écuter

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

Utilisez ce qui suit. commande à vérifier (si le résultat de cette commande est correct. Quelques processus php-fpm indiquent 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.

Editez 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 {
        }
    }
}

us Pour changer la configuration, vous n'avez besoin que de 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 installé selon le processus, une erreur s'est produite : mcrypt.h introuvable. Veuillez réinstaller libmcrypt

La raison est que les packages php-mcrypt libmcrypt libmcrypt-devel sont. pas installé et l'erreur est normale. Il leur manque tous des bibliothèques ou des packages, installez-les simplement.

À ce stade, PHP a été configuré. Je vous souhaite une bonne installation. D'ailleurs, je vous souhaite à tous une bonne année par avance !

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