![cover](https://image.oss.salted-fish.tech/blog/6fef96a93dc68da3810bc83959b8003d.jpg)
编译安装php8
下载php
# 下载源码
wget https://www.php.net/distributions/php-8.1.5.tar.gz
# 解压
tar -zxf php-8.1.5.tar.gz
# 安装依赖
yum -y install libxml2 libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel sqlite-devel oniguruma-devel
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
# 编译安装
./configure --prefix=/www/server/php/php-8.1.5 --with-config-file-path=/www/server/php/php-8.1.5 --with-config-file-scan-dir=/www/server/php/php-8.1.5/php.d --enable-mysqlnd --with-mysqli --with-pdo-mysql --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-gd --with-iconv --with-zlib --enable-xml --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --disable-fileinfo
make && make install
# 复制源码所在文件夹下的php.ini-production 或 php.ini-development
cp php.ini-production /www/server/php/php-8.1.5/etc/php.ini
# 进入安装目录
cd /www/server/php/php-8.1.5/etc
cp php-fpm.conf.default php-fpm.conf
cd /www/server/php/php-8.1.5/etc/php-fpm.d
cp www.conf.default www.conf
# 软连接全局命令(可有可无)
ln -sf /www/server/php/php-8.1.5/sbin/* /usr/local/sbin/
ln -sf /www/server/php/php-8.1.5/bin/* /usr/local/bin/
Package 'XXXX', required by 'virtual:world', not found)
# Package 'libxml-2.0', required by 'virtual:world', not found这样的错误都可以执行yum search libxml2-devel如果有,就是直接安装,没有就只能下载源码安装了
yum install libxml2-devel
# Package 'oniguruma', required by 'virtual:world', not found)分情况 centos8之前都可以用
yum install oniguruma-devel
# centos8暂时就只能源码编译安装
# https://github.com/kkos/oniguruma/releases
wget https://github.com/kkos/oniguruma/releases/download/v6.9.7.1/onig-6.9.7.1.tar.gz
tar -zxf onig-6.9.7.1.tar.gz
cd onig-6.9.7
autoreconf -vfi
./configure --prefix=/usr/local/oniguruma
make && make install
$ vim ~/.bash_profile
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
ln -s /usr/local/oniguruma/lib/pkgconfig/oniguruma.pc /usr/local/lib/pkgconfig/
ln -s /usr/local/openssl/lib64/pkgconfig/libcrypto.pc /usr/local/lib/pkgconfig/
ln -s /usr/local/openssl/lib64/pkgconfig/libssl.pc /usr/local/lib/pkgconfig/
ln -s /usr/local/openssl/lib64/pkgconfig/openssl.pc /usr/local/lib/pkgconfig/
编译配置说明
--prefix=/www/server/php/php-8.1.5 # 配置安装目录
--with-config-file-path=/www/server/php/php-8.1.5 # 配置文件 php.ini 的路径
--enable-sockets # 开启 socket
--enable-fpm # 启用 fpm 扩展
--enable-cli # 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring # 启用 mbstring 库
--enable-pcntl # 启用 pcntl (仅 CLI / CGI)
--enable-soap # 启用 soap
--enable-opcache # 开启 opcache 缓存
--disable-fileinfo # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath # 禁用在搜索路径中传递其他运行库。
--with-mysqli # 启用 mysqli 扩展
--with-pdo-mysql # 启用 pdo 扩展
--with-iconv-dir # 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl # 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=nginx # 设定 fpm 所属的用户
--with-fpm-group=nginx # 设定 fpm 所属的组别
--with-curl # 启用 curl 扩展
--with-mhash # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
----enable-gd # 启用 GD 图片操作 扩展
--with-jpeg-dir # 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir # 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir # 开启 freetype 从 PHP 7.4.0 开始使用 --with-freetype 代替,它依赖于 pkg-config。
# 压缩 从 PHP 7.4.0 开始,必须在编译 PHP 时用 --with-zip 配置选项来提供 zip 支持。之前的 PHP 版本,需要使用 --enable-zip 选项
--enable-zip # 启用 zip
--with-zlib # 启用对 zlib 支持
# xml
--enable-simplexml # 启用对 simplexml 支持
--with-libxml-dir # 启用对 libxml2 支持
--enable-debug # 开启 debug 模式
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Salted Fish
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果