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 服务配置文件。这些配置文件定义了服务的启动方式、依赖关系、运行参数等。

相关推荐
冰封之寂8 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
xiaoye-duck9 小时前
《Linux系统编程》Linux 系统多线程(五):<线程同步与互斥>线程互斥(上):从条件变量到生产者消费者模型详解
linux·线程
一叶龙洲11 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
酷可达拉斯11 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
寒水馨12 小时前
Linux下载、安装llama.cpp-b10068(附安装包llama-b10068-bin-ubuntu-vulkan-x64.tar.gz)
linux·ubuntu·llm·llama·本地部署·llama.cpp·推理引擎
我星期八休息14 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
ziguo112215 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
三84415 小时前
使用Samba/NFS实现文件共享/自动挂载共享目录/autofs自动挂载服务
linux·服务器·网络
高铭杰16 小时前
万物皆可KV(2)SurrealDB 存储布局分析
linux·服务器
无小道17 小时前
深入解析操作系统文件缓冲区:页缓存、基数树与f_pos的协同设计
linux·缓存·文件缓冲区