centos7.9安装php-8.0.28

centos7.9安装php-8.0.28

下载php

进入php官网网站,点击download进入下载页面,点击右边的“Old archives”,进入历史版本页面。

找到php 8.0.28版本,下载合适格式的安装包。

安装支持库

yum -y install zlib-devel

yum -y install freetype-devel

yum -y install libpng-devel

yum -y install libcurl-devel

yum -y install libjpeg-devel

yum -y install sqlite-devel

yum -y install libzip-devel

mbstring多字节扩展需要依赖如下库,这个库是正则表达式库,php7.4以后正则表达式用的如下库。

yum install oniguruma-devel

安装php

cd /tar/

tar zxvf php-8.0.28.tar.gz

cd php-8.0.28

./configure

--prefix=/usr/local/php-8.0.28

--with-config-file-path=/usr/local/php-8.0.28/etc

--enable-fpm

--enable-mysqlnd

--with-pdo-mysql=mysqlnd

--with-curl

--with-zlib

--with-zip

--with-openssl

--enable-gd

--enable-mbstring

--enable-pcntl

make

make install

说明:

看配置项的意义可以通过 ./configure --help | grep xxx来查看。

./configure

--prefix=/usr/local/php-8.0.28  安装目录

--with-config-file-path=/usr/local/php-8.0.28/etc  配置文件目录

--enable-fpm  启用fpm

--enable-mysqlnd  启用mysql 本地驱动,zend公司专门为php定制开发的

--with-pdo-mysql=/usr/local/mysql  启用pdomysql

--with-curl  启用curl

--with-zlib  带上zlib

--with-zip  带上zip压缩文件扩展

--with-openssl  带上openssl加密

--enable-gd  启用图形库

--enable-mbstring  多字节字符串

--enable-pcntl 多线程

配置php

创建配置文件,并将其复制到正确的位置

cd /tar/php-8.0.28

cp php.ini-production /usr/local/php-8.0.28/etc/php.ini

cd /usr/local/php-8.0.28/etc/php-fpm.d/

cp www.conf.default www.conf

cd /usr/local/php-8.0.28/etc

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

阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。 将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0

vi /usr/local/php-8.0.28/etc/php.ini

cgi.fix_pathinfo=0

在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www 用户和 www 用户组的身份运行。

cd /usr/local/php-8.0.28/etc/php-fpm.d/

vi www.conf 

找到以下内容并修改:

user = www

group = www

添加环境变量

echo 'PATH=$PATH:/usr/local/php-8.0.28/bin' >> /etc/profile

echo 'PATH=$PATH:/usr/local/php-8.0.28/sbin' >> /etc/profile

source /etc/profile

echo $PATH

Php-fpm开机启动

echo /usr/local/php-8.0.28/sbin/php-fpm >> /etc/rc.local

运行控制

启动php-fpm

/usr/local/php-8.0.28/sbin/php-fpm

停止

ps -ef | grep php-fpm

kill -INT 查询到的进程号

killall php-fpm