Maison > Article > développement back-end > Comment compiler et installer php5.6.31
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.
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
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
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
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.
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!