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