安装PHP8.0.8

默认分类 PHP

记录一下安装PHP8的过程

环境

OS : CentOS 7.9.2009
Arch : x86_64 (64 Bit)
Kernel : 5.13.0-1.el7.elrepo.x86_64

开始安装

下载

首先下载并进去解压的文件夹内

wget https://www.php.net/distributions/php-8.0.8.tar.gz
tar -zvxf php-8.0.8.tar.gz
cd php-8.0.8

检查并配置

然后准备一下前置操作并进行检查 --prefix是指定安装的路径位置

./configure --prefix=/usr/local/php

更多用法参数可以./configure --help查看

我这里在最后有个提示No package 'sqlite3' found

QQ截图20210707123819.png

这里安装一下yum install sqlite-devel;

centos7 编译安装php7遇到的问题

./configure 配置遇到的No package ‘libxml-2.0‘ found缺失libxml2.0 库,解决方法:
yum -y install libxml2
yum -y install libxml2-devel

./configure 配置遇到的No package ‘sqlite3‘ found,解决方法:
yum -y install sqlite-devel

解决提示之后再执行./configure --prefix=/usr/local/php
此时会出现'Thank you for using PHP'
QQ截图20210707124320.png

构建及安装

开始构建进行安装操作 此步骤耗时可能比较久

make && make install

结果如图
QQ截图20210707130246.png

此时就装好了
执行/usr/local/php/bin/php -v可看到结果

PHP 8.0.8 (cli) (built: Jul 7 2021 00:58:51) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.8, Copyright (c) Zend Technologies

完善

短命令

这个时候使用PHP还必须使用绝对路径,此时想要直接通过PHP命令来运行是不行的,这里说两种配置方法 (其实就是windows下的系统环境变量一样,分用户和系统)

当前用户环境配置

可以仅仅给当前用户配置,比如当前连接ssh的是root用户.直接修改/root/.bash_profile
在里面末尾加上一条命令别名alias php=/usr/local/php/bin/php,然后断开重新连接ssh或者执行命令source /root/.bash_profile来刷新一下,此时直接执行php -v即可查看版本号,无需完整路径

系统环境配置

在.bash_profile文件内可以看到,他里面有这个设置环境变量

PATH=$PATH:$HOME/bin
export PATH

打印出来这个PATH结果是/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin,说明用户的环境变量是从这里继承的,也就是执行命令时会从这里面找,找不到才报错'command not found',
所以建一个PHP执行文件的软连接进去到目录内就可以了,

ln -s /usr/local/php/bin/php /usr/sbin/ 
ln -s /usr/local/php/bin/php /usr/bin/

这样就可以直接运行php -v也能运行了,所有用户都有效

php.ini文件

这是是php的配置文件位置,我们开启或关闭扩展可能要用到.首先看配置文件中php.ini文件的位置php -i | grep php.ini,看出文件位置在'Path => /usr/local/php/lib',这个是默认路径,可以在安装的时候在configure 那一步增加参数设置文件位置

./configure --prefix=/usr/local/php --with-config-file-path=php.ini的文件路径

更多参数可在./configure --help命令中查看.

php.ini文件的默认模板文件在安装PHP时候下载的源码包里面.
cp /root/php-8.0.8/php.ini-development /usr/local/php/lib/php.ini
移动过去就好了

新评论

称呼不能为空
邮箱格式不合法
网站格式不合法
内容不能为空