CentOS7使用源码安装PHP8教程整理

CentOS7使用源码安装PHP8教程整理

下载安装包

有多个安装版本,根据自己的需求可以下载php8的各个版本

https://www.php.net/downloads.php

bash 复制代码
wget https://www.php.net/distributions/php-8.3.16.tar.gz 

解压下载的php tar源码包

bash 复制代码
tar -zxvf php-8.3.16.tar.gz

安装所需的一些依赖扩展库

bash 复制代码
yum -y install   libxml2*   openssl*  libcurl* libjpeg*      libpng*      freetype*      libmcrypt*

安装前的配置

bash 复制代码
cd php-8.3.16

进入目录,执行以下命令

bash 复制代码
./configure --prefix=/usr/local/php8 --with-config-file-path=/usr/local/php8/etc --enable-fpm --enable-mysqlnd --with-fpm-user=nginx --with-fpm-group=nginx --with-curl --enable-gd --with-tidy --with-gettext --enable-intl --with-kerberos --with-libdir=lib64 --with-mysqli --enable-ftp --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --disable-fileinfo --with-xsl --with-zlib --with-bz2 --with-mhash --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-calendar --enable-exif

看到这张图,表示执行成功,如果没有,就解决error

继续执行以下命令

bash 复制代码
make && make install

执行到这里,表示执行成功了

修改配置文件

1、进入php8的安装包

bash 复制代码
cd php-8.3.16/
cp -a php.ini-production /usr/local/php8/etc/php.ini

进入安装目录

bash 复制代码
cd /usr/local/php8/etc

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

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

cp www.conf.default www.conf

修改www.conf文件

修改端口号,9000 为9001,因为我有两个php版本,还有一个php7

bash 复制代码
listen = 127.0.0.1:9001
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

配置环境变量

我这里是两个php版本,所以就又增加了一个php8

bash 复制代码
PATH=$PATH:/usr/local/php7/bin:/usr/local/php7/sbin/:/usr/local/php8/bin:/usr/local/php8/sbin/

保存环境变量,并执行以下命令,让其生效

bash 复制代码
source /etc/profile

开机自启

bash 复制代码
# 源码包 php-8.0.24/sapi/fpm

cd ./php-8.3.16/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/php-fpm-8.3.16.service
cp init.d.php-fpm /etc/init.d/php8-fpm

chmod +x /etc/init.d/php8-fpm 

启动服务

bash 复制代码
service php8-fpm start
service php8-fpm stop
service php8-fpm restart

创建软连接

bash 复制代码
ln -s /usr/local/php8/bin/php /usr/local/bin/php8

常见问题

1、checking for icu-uc >= 50.1 icu-io icu-i18n... no

bash 复制代码
checking for icu-uc >= 50.1 icu-io icu-i18n... no
configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met:

No package 'icu-uc' found
No package 'icu-io' found
No package 'icu-i18n' found

解决方案:

bash 复制代码
yum  -y install libicu-devel

2、configure: error: Package requirements (oniguruma) were not met:

bash 复制代码
checking whether to enable multibyte regex support (requires oniguruma)... yes
checking for oniguruma... no
configure: error: Package requirements (oniguruma) were not met:

No package 'oniguruma' found

解决方案:

bash 复制代码
yum -y install oniguruma oniguruma-devel

3、configure: error: Cannot find libtidy

bash 复制代码
yum -y install libtidy-devel

4、configure: error: Package requirements (libxslt >= 1.1.0) were not met:

bash 复制代码
yum -y install libxslt-devel

5、error: Package requirements (sqlite3 > 3.7.4) were not met:

bash 复制代码
yum install sqlite-devel
相关推荐
黄昏晓x6 分钟前
C++11
android·java·c++
simplepeng44 分钟前
TikTok 通过 Jetpack Compose 将代码大小减少 58%,并提升了新功能的 app 性能
android·android jetpack
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于Android的充电宝租赁管理软件的设计与实现为例,包含答辩的问题和答案
android
Be for thing1 小时前
Android 蓝牙 & WiFi 硬件原理 + 功耗与异常定位实战(手机 / 手表 / IoT 通用)
android·物联网·学习
00后程序员张2 小时前
使用克魔助手(Keymob)查看 iOS 设备日志与崩溃报告
android·macos·ios·小程序·uni-app·cocoa·iphone
__Yvan2 小时前
解决ConstraintLayout中LinearLayout显示异常问题
android·xml·约束布局
mjhcsp2 小时前
C++ A* 算法:启发式路径搜索的黄金标准
android·c++·算法
2501_915918412 小时前
通过IPA 结构调整和资源指纹变化来处理 iOS 应用相似度问题
android·ios·小程序·https·uni-app·iphone·webview
火山上的企鹅3 小时前
Qt/QGroundControl 实战:接入 Skydroid(云卓) G20 遥控器 Android SDK 并实时显示摇杆与信号质量
android·开发语言·qt·qgroundcontrol·云卓sdk
Be for thing3 小时前
Android 屏幕硬件原理 + 显示驱动与功耗优化实战(手机 / 手表通用)
android·学习·智能手机