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

相关推荐
爱奥尼欧38 分钟前
【Linux 系统】基础IO——Linux中对文件的理解
linux·服务器·microsoft
超喜欢下雨天1 小时前
服务器安装 ros2时遇到底层库依赖冲突的问题
linux·运维·服务器·ros2
tan77º2 小时前
【Linux网络编程】网络基础
linux·服务器·网络
笑衬人心。2 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu
chanalbert4 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风4 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
热爱生活的猴子5 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows
myloveasuka5 小时前
[Linux]内核如何对信号进行捕捉
linux·运维·服务器
m0_694845575 小时前
服务器需要备案吗?在哪些地区需要备案?
linux·运维·服务器·云计算
myloveasuka5 小时前
[Linux]内核态与用户态详解
linux