Centos安装php-8.0.24.tar

查看系统环境

cat /etc/redhat-release

预先安装必要的依赖

yum install -y \

wget \

gcc \

gcc-c++ \

autoconf \

automake \

libtool \

make \

libxml2 \

libxml2-devel \

openssl \

openssl-devel \

sqlite-devel

yum update

1、下载解压

cd /data/

wget https://www.php.net/distributions/php-8.0.24.tar.gz

tar -zxvf php-8.0.24.tar.gz

sudo mv php-8.0.24 php8

2、配置编译选项

cd php8

sudo ./configure \

--prefix=/data/php-8.0.24 \

--with-config-file-path=/data/php-8.0.24/etc \

--enable-mbstring \

--enable-zip \

--enable-bcmath \

--enable-fpm \

--with-fpm-user=leo \

--with-fpm-group=leo \

--with-curl \

--with-openssl \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-readline \

--with-zlib \

--with-pear \

--with-libdir=lib64

--prefix:指定安装路径。

--with-config-file-path : 配置文件路径

--enable-fpm:启用PHP-FPM(若需配合Nginx使用)。

--with-fpm-user: 指定用户,不能是root

--with-fpm-group: 指定组,不能是root

其他选项按需启用(如不需要某些扩展可删除对应参数)。

我这里不是用root 用户安装,前面要添加 sudo

我这里报错,要解决,报一个错误就解决一个,安装yum 安装包。再在命令行用 configure编译

安装EPEL仓库(如果尚未安装)

sudo yum install epel-release

安装libcurl开发包

sudo yum install libcurl-devel

安装 oniguruma 库

sudo yum install oniguruma-devel

安装readline开发包

sudo yum install readline-devel

出现这个页面就是表示预编译成功

2、编译和安装

sudo make

sudo make test

sudo make install

有警告更新Archive_Tar

复制代码
pear upgrade Archive_Tar

pear install Archive_Tar

pear config-show

然后重新执行 make && make install

配置php的环境变量

sudo vi /etc/profile, 在最下面增加一行 export PATH=/data/php-8.0.24/bin:$PATH

sudo source /etc/profile

php -v出现以下信息说明成功

3、配置 PHP-FPM

修改配置文件

源码包 php-8.0.24

cp /data/php8/php.ini-production /data/php-8.0.24/etc/php.ini

cd /data/php-8.0.24/etc

cp php-fpm.conf.default php-fpm.conf

cd /data/php-8.0.24/etc/php-fpm.d

sudo cp www.conf.default www.conf

修改www.conf文件 # 监听方式为sock ;

listen = 127.0.0.1:9000

listen = php-cgi.sock

listen.owner = leo

listen.group = leo

listen.mode = 0666

将 PHP-FPM 配置为系统服务

/data/php-8.0.24/sbin/php-fpm 不建议直接用这个启动

sudo vi /etc/systemd/system/php-fpm.service

下面是内容

[Unit]

Description=The PHP FastCGI Process Manager

After=network.target

[Service]

Type=simple

PIDFile=/run/php-fpm.pid

ExecStart=/data/php-8.0.24/sbin/php-fpm --nodaemonize --fpm-config /data/php-8.0.24/etc/php-fpm.conf

ExecReload=/bin/kill -USR2 $MAINPID

ExecStop=/bin/kill -TERM $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

保存后启动

sudo systemctl start php-fpm

设置php的文件所有者

sudo chown -R leo:leo /data/php-8.0.24/

修改php-cgi.sock 文件的所有者

sudo chown www-data php-cgi.sock

再重新启动 sudo systemctl restart php-fpm

sudo systemctl daemon-reload //重新加载

sudo systemctl start php-fpm //启动

sudo systemctl status php-fpm //状态

sudo systemctl enable php-fpm //开机自动启动

sudo systemctl restart php-fpm //重新启动 php-fpm

扩展知识

/etc/systemd/system/ 目录用于存放系统管理员自己创建或修改的 systemd 服务配置文件。这些配置文件定义了服务的启动方式、依赖关系、运行参数等。

相关推荐
Chenyu_3105 分钟前
04.基于C++实现多线程TCP服务器与客户端通信
linux·服务器·网络·c++·tcp/ip·算法·visualstudio
奔波霸的伶俐虫1 小时前
liunx磁盘挂载和jar启动命令
linux·运维·服务器
wwwlyj1233211 小时前
slab分配器(3):slab内存申请和释放
linux
JiMoKuangXiangQu2 小时前
Linux 网络:skb 数据管理
linux·网络·skb
做程序员的第一天2 小时前
ubuntu下在pycharm中配置已有的虚拟环境
linux·ubuntu·pycharm
唐青枫2 小时前
Linux fgrep 命令使用详解
linux
亭墨2 小时前
linux0.11内核源码修仙传第六章——中断初始化
linux·c语言·驱动开发·学习·面试
Ljw...2 小时前
序列化和反序列化(Linux)
linux·开发语言·网络·c++·tcp/ip·序列化反序列化
aiprtem3 小时前
LVGL组件设计之模拟桌面
linux·c语言·网络·物联网
WZF-Sang5 小时前
Linux——基础IO【3万字大章】
linux·服务器·c++·学习·文件系统·软硬链接·动态库静态库