php dll so,php在虚拟机上编译,生成扩展文件全部是.dll不是.so

在CentOS虚拟机中使用yum安装依赖并编译PHP时,遇到编译后的扩展显示为.dll格式,导致PHP无法识别.so扩展。尝试修改配置、替换文件、重新编译等方法均未成功。php.ini中未找到与.dll扩展相关的配置,且gd2.dll文件缺失。问题包括:.dll扩展在Linux环境下无效,编译过程可能出错,缺少正确版本的GD库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本机:win1o

虚拟机:Vmware2017--centos6.5

编译PHP:

安装依赖包:yum install -y libxml2-devel libicu-devel libpng-devel libjpeg-turbo-devel libmcrypt-devel libcurl-devel bzip2-devel openssl-devel gmp-devel freetype-devel

./configure \

--prefix=/usr/local/php \

--enable-bcmath \

--enable-exif \

--enable-fpm \

--enable-mbstring \

--enable-soap \

--enable-sockets \

--enable-zip \

--with-bz2 \

--with-curl \

--with-freetype-dir \

--with-gd \

--with-gettext \

--with-gmp \

--with-jpeg-dir=/usr/lib64 \

--enable-mysqlnd \

--with-mysql=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-openssl \

--with-pdo-mysql=/usr/local/mysql \

--with-png-dir=/usr/lib64 \

--with-readline \

--with-tsrm-pthreads \

--with-xmlrpc \

--with-zlib

我编译完后:打开php.int如图

3d4f0d8603aa10d8d5b53719541cdc31.png

为什么全部是 .dll文件?我打开phpinfo()提示GD开启,但是我去掉配置文件中的 ‘;’

就报错,说找不到相应的php_gd2.dll文件,

尝试解决:

1.不改,去掉“;”提示没有文件

2.将.dll文件改成.so文件,报错,

3.重新再源码包的位置追加GD扩展,指定到相关目录下提示:也是报错,说格式不对什么的。

4.重新编译整个PHP,换了版本也不行,照样是生成.dll扩展文件

下面是编译后扩展路径下的文件:

f9891397ac48be6477b6d0c0ef20182f.png

3d01de2e0bc3b03dd274c1cb0b76c32d.png

正确的编译后,php.int应该是

6aae105e7329dad113d184fe10850370.png

这样编译后后果是:

1.phpinfo()中提示扩展都能用但是,去掉;所有的扩展都不能用,

解决:1.去源码目录拷贝,没有发现有.dll文件

2.重新编译扩展,放到扩展目录下,提示.so文件不能用

3.去windos下拷贝对应的.dll提示报错不能用

4.改php.ini中的.dll为.so或者去掉后缀都提示错误

2.为什么我在虚拟机下编译的扩展是.dll?而不是.so?

3.在源码扩展目录下gd:也没有发现有gd2_.dll文件

下面有大哥回复说:

1.我步骤不对,其实我整个流程没有错,

2.说;extension=php_bz2.dll是WINDOS对应的扩展,跟linux无关,但是我在整个文件中搜索都没有找到和所以扩展相关的地方了,比如搜索;extension=或者是搜扩展关键词,都找不到extension=*gd2.so或者extension=;都没有!!!

是不是在

[gd]

; Tell the jpeg decode to ignore warnings and try to create

; a gd image. The warning will then be displayed as notices

; disabled by default

; http://php.net/gd.jpeg-ignore...

;gd.jpeg_ignore_warning = 0

加上

extension=gd2

extension=gd2.so

我尝试了都报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值