CenterOS 处理php环境

本文介绍了如何在CentOS系统中彻底删除旧版PHP环境,并详细阐述了CGI与FastCGI的工作原理。接着,通过更换YUM源,安装PHP7.2及其扩展,并设置开机启动PHP-FPM服务,确保PHP7.2的正确配置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CenterOs 默认集成了php环境,一方面作为研究php的部署环境,一方面为了升级php的版本,尝试一下,删除老版本并安装新版本的php

彻底删除原php环境

大概需要如下几个步骤

yum remove php* (不能完全卸载干净)

  • rpm -qa|grep php 检查当前php安装的依赖

#php-pdo-5.1.6-27.el5_5.3
#php-mysql-5.1.6-27.el5_5.3
#php-xml-5.1.6-27.el5_5.3
#php-cli-5.1.6-27.el5_5.3
#php-common-5.1.6-27.el5_5.3
#php-gd-5.1.6-27.el5_5.3

  • rpm -e 卸载对应的依赖 如下进行依次卸载,如果卸载的过程中有依赖相关性则先卸载相关的依赖。

r pm -e php-mysql-5.1.6-27.el5_5.3

安装php7.2

常见的几个名词

安装php我们首先要了解一些常用概念

  • CGI
    是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。

common gateway interface (公共网关接口)
请求模式:
Web Brower(浏览器) ----(通过http协议传输)----> Http Server(服务器nginx/apache) -----> CGI Program -----> Db
Server 与 CGI 通过 STDIN/STDOUT(标准的输入/输出)进行数据传递
nginx(动态加载模块) apache(指定加载模块)

每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php-cgi.exe),
CGI 的一个进程则处理完一个请求后退出,下一个请求来时再创建新进程。
当然,这样在访问量很少没有并发的情况也行。可是当访问量增大,并发存在,这种方式就不 适合了。于是就有了fastcgi。

  • FastCGI

像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,
不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。

一般情况下,FastCGI的整个工作流程是这样的:
1.Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
2.FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
3.当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。 Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4.FastCGI 子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。
当FastCGI子进程关闭连接时, 请求便告处理完成。
FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。
在CGI模式中,php-cgi在此便退出了。

php-fpm(PHP内置的一种fast-cgi 从5.3以后)

php-fpm即php-Fastcgi Process Manager.
php-fpm是 FastCGI 的实现,并提供了进程管理的功能。
进程包含 master 进程和 worker 进程两种进程。
master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),
每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。

Web Brower(浏览器访问) www.example.com
|
        |
   通过http协议传输  
|
        |
    http server
 (服务器nginx/apache)            
|
        |
     配置解析    
路由到 www.example.com/index.php
|
        |
加载 nginx 的 fast-cgi 模块
|
        |
fast-cgi 监听 127.0.0.1:9000 地址
通过 fast-cgi 协议将请求转发给 php-fpm 处理
|
        |
请求到达 127.0.0.1:9000
|
        |
php-fpm 监听 127.0.0.1:9000
可通过 php-fpm.conf 进行修改

安装php 7.2

默认的源没有7.2的镜像,需要更换镜像以后在下载

  • 更换源

yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  • 安装扩展包

如下的几个安装包正常基本够用

yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel

或者安装全面一些的内容扩展

yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

  • 配置开机启动并启动fpm

systemctl enable php-fpm.service
systemctl start php-fpm.service

现在我们在看下nginx的关于php的配置就能理解,
fastcgi_pass 参数的意义,听过nginx转发到fpm对应的9000端口进行php相关处理

location ~ .php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/app/php$fastcgi_script_name;

include fastcgi_params;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值