百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

CentOS8 编译安装 PHP8.0.8

nanshan 2024-12-01 01:42 20 浏览 0 评论

前言

上次编译安装了Nginx(参见:CentOS8.4 编译安装Nginx1.20.1),这次我们来编译安装PHP

环境和版本

服务器:CentOS8 64位

PHP:8.0.8

下载页面地址:https://www.php.net/downloads

tar.gz包下载链接:https://www.php.net/distributions/php-8.0.8.tar.gz

安装前准备

一、下载PHP8源码包

wget --no-check-certificate https://www.php.net/distributions/php-8.0.8.tar.gz


下载成功。(这里由于php官网ssl证书不可信,所以要带--no-check-certificate参数忽略才可以正常下载。wget命令详解可参考:linux wget命令详解)

二、解压源码包

tar -zxvf php-8.0.8.tar.gz 


解压完成如上图所示。

三、进入php-8.0.8目录


这是目录内的所有文件。

四、安装必备依赖

yum install -y gcc-c++ autoconf make \
libjpeg libjpeg-devel  \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel unzip \
zip libzip-devel \
glibc glibc-devel \
glib2 glib2-devel \
bzip2 bzip2-devel \
curl curl-devel libcurl-devel \
ncurses openssl-devel \
gdbm-devel db4-devel libXpm-devel \
libX11-devel gd-devel gmp-devel \
readline-devel libxslt-devel \
expat-devel xmlrpc-c xmlrpc-c-devel \
libicu-devel libmcrypt-devel \
libmemcached-devel \
oniguruma oniguruma-devel \
sqlite-devel \
wget

五、安装epel

yum install -y yum-utils
package-cleanup --cleandupes
yum update -y
yum install -y epel-release
# 如果找不到epel-release包,则进行下面两步操作
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -ivh epel-release-latest-7.noarch.rpm

上面两步依赖的安装速度取决于系统现有依赖的多少、网速等配置,可能会耗时长点。



如上图,我的安装依赖部分过程

安装

一、查看可配置的编译参数

./configure --help

如果直接执行命令看手册体验不友好的话,可以到php官网看“核心配置选项列表”,看的时候要注意上面标注的版本区别。

官网地址:https://www.php.net/manual/zh/configure.about.php

二、根据自己需要,选择合适的编译参数安装:

./configure --prefix=/usr/local/php \
--enable-gd \
--enable-dba \
--enable-fpm \
--enable-dom \
--enable-pdo \
--enable-exif \
--enable-intl \
--enable-soap \
--enable-pcntl \
--enable-shmop \
--enable-bcmath \
--enable-filter \
--enable-session \
--enable-sockets \
--enable-calendar \
--enable-mbstring \
--enable-simplexml \
--disable-fileinfo \
--with-bz2 \
--with-cdb \
--with-curl \
--with-pear \
--with-zlib \
--with-mhash \
--with-iconv \
--with-mysqli \
--with-openssl \
--with-pcre-jit \
--with-pdo-mysql \
--with-mysql-sock \
--with-openssl-dir


如上图,检查和配置完毕。

:对于./configure脚本文件(或者你也可以把它称之为局部命令,但是注意执行要带./configure),以及后面编译安装要使用的makemake install感兴趣的同学,可以参考我之前的文章:Linux中关于 ./configure、make与make install 命令的说明

可能遇到的报错(部分是上面一起执行没有安装成功,这里可能要分开单独安装):

1、Package 'libxml-2.0', required by 'virtual:world', not found

重新单个执行安装libxml-devel即可

yum install libxml2-devel

2、Package 'sqlite3', required by 'virtual:world', not found

单个安装sqlite-devel

yum install sqlite-devel

3、configure: error: Please reinstall the BZip2 distribution

重新安装bzip2-devel

yum -y install bzip2-devel

4、Package 'libcurl', required by 'virtual:world', not found

安装libcurl-devel

yum install libcurl-devel

5、Package 'libpng', required by 'virtual:world', not found

安装libpng-devel

yum install libpng-devel

6、icu系列

Package 'icu-uc', required by 'virtual:world', not found

Package 'icu-io', required by 'virtual:world', not found

Package 'icu-i18n', required by 'virtual:world', not found

安装参考:Linux CentOS安装ICU库

7、Package 'oniguruma', required by 'virtual:world', not found

安装参考:Linux CentOS 8 安装 oniguruma 和 oniguruma-devel

三、编译

make

编译需要点时间。


编译完成,最后提示别忘了 make test,测试不测试区别不大,我们下面直接安装

四、安装

make install



安装完毕。

测试

通过找到php执行文件,查看版本测试是否安装成功

[root@haoqixin php-8.0.8]# /usr/local/php/bin/php -v


如上图,OK。

创建软连接

一直使用 /usr/local/php/....这么长的前缀会很麻烦浪费时间,我们来创建软连接

ln -sf /usr/local/php/bin/php /usr/local/bin/php
ln -sf /usr/local/php/bin/php-config /usr/bin/php-config
ln -sf /usr/local/php/bin/phpize /usr/local/bin/phpize
ln -sf /usr/local/php/bin/pecl /usr/local/bin/pecl

现在再次执行 php -v 验证创建


Success!

复制配置文件

默认刚安装的php是没有正式(有默认供修改)的配置文件的,如下命令演示,我们复制提供的默认文件来使用

以及复制系统启动脚本,和修改文件权限等。

cp /root/demo_php/php-8.0.8/php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /root/demo_php/php-8.0.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

启动 php-fpm

service php-fpm start


查看进程中是否启动

[root@haoqixin init.d]# ps -ef |grep php

测试终端执行代码

[root@haoqixin ~]# php -r "echo '技术好奇心';"



配置开机启动 php-fpm

chkconfig php-fpm on


总结

OK,到此为止,PHP8已经全部安装完成了。

希望对大家学习有帮助。

相关推荐

今晚拿下PHP反序列化的一系列操作

引言在CTF中反序列化类型的题目还是比较常见的,之前有学习过简单的反序列化,以及简单pop链的构造。这次学习内容为php内置的原生类的反序列化以及一点进阶知识。在题目给的的代码中找不到可利用的类时,这...

Win10安装Apache和PHP(apache安装php模块)

说明:虽然PHPStudy之类的软件给我们提供了方便的集成环境,但是其使用的是非线程安全的PHP版本(NotThreadSafe,NTS),某些功能不可以使用。所以,我们还需要自己再安装一个Apa...

腾讯云云函数部署laravel项目(腾讯云函数 selenium)

1、购买函数套餐包在Serverless控制台,选择函数套餐包进行购买2、新建函数服务2.1、模板创建选择函数URL:新建函数URL,启用公网访问:2.1.1、postman访问首页2.1.2、pos...

站长教你搭建属于自己的网站(站长教你搭建属于自己的网站是什么)

每个人都希望可以有自己的网站,因为那样高端大气上档次,低调奢华有内涵,尤其是公司用户,一般会有自己的网站。而个人呢,也可以搭建自己的网站博客,论坛等,但是一般个人都是搭建博客的。好了,那么下面站长教你...

微信公众号开发出现 cURL error 60: SSL certificate problem ssl证书

在phpstudy的环境下如果出现这样的报错cURLerror60:SSLcertificateproblem:unabletogetlocalissuercertificat...

【网络安全】关于PHP Study nginx解析高危漏洞的预警通报

网络安全近日,山石网科安全研究院监测发现PHPStudyWindows最新版本存在nginx解析漏洞,可以造成任意代码执行。一、漏洞情况phpStudy是一个PHP调试环境的程序集成包,该程序包集成...

PHP 环境 搭建教程(php环境搭建教程linux)

PHP是一种编程语言,很多网站都用PHP语言编写,我们有时候需要测试一个网站,就需要PHP环境才能运行,又要安装Apache、又要安装MySQL……真的非常麻烦。其实我们可以使用PHP集成...

黑客搭建钓鱼平台,手把手教你如何钓鱼?

跨站脚本攻击XSS:通过HTML注入篡改了网页,插入了恶意的脚本,从而用户浏览网页时,控制用户浏览器的一种攻击那么,我们搭建一个XSS钓鱼平台吧,注意:这个平台仅用于学习和测试,小伙伴们不要动有坏心思...

php源码网站搭建方法和过程(php网站源码完整)

web网站是我们上网的窗口,而网站是如何搭建的呢?今天我们来做一个介绍,以php代码为例来进行介绍(后续会介绍一下java代码搭建,如果想要我这里涉及的工具或源码请私信我)。1、首先你需要去网上下载你...

使用VS Code调试PhpStudy环境里的代码

最近几个月把所有项目都迁过来VSCode了(除了因为Unity调试问题反而用回了VisualStudio),PHP也就抛弃了最强的PhpStorm。这段时间抽空在帮朋友处理PHP项目,然...

phpstudy搭建PHP+Mysql服务(用phpstudy搭建服务器)

PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP是免费的,并且使用非常广泛。同时,对于像微软ASP这样的竞争者来说,PHP无疑是另一种高效率的选项。(1)PHP环境搭建使用V...

Windows安装phpstudy(Windows安装mysql)

说明:phpstudy是一个PHP+MySQL+Apache的集成环境,可以减少单独部署各个所需软件的麻烦,以及更加方便地切换版本。phpenv、wamp等软件的作用一样。由于环境的不同,安装过程中可...

phpstudy安装及简单使用教程(phpstudy安装教程详解)

phpstudy前不久爆出有后门,我的看法是,去看下是哪个版本有后门,为啥会有后门,怎么解决掉这个后门,而不是听到后门就弃用了。毕竟phpstudy绿色安装,配置简单,多版本融合,真香。前言:关于开发...

如何对dedeCMS的开源程序进行二次开发

二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核。为了让更多人了解二次开发,并更方便的了解DedeCMS的二次开发,下面将会...

mysql基础问题三问(底层逻辑;正在执行;日志观察)

背景:经常面试会遇到且实际工作中也会应用到的三个场景:目录:一.mysql查询时的底层原理是什么?二.如何查看正在执行的mysql语句?三.如何观察mysql运行过程中的日志信息?-----...

取消回复欢迎 发表评论: