当前位置:首页 » 编程语言 » php编译so

php编译so

发布时间: 2024-05-13 09:55:47

1. libphp5.so是什么文件

libphp5.so是php5提供的,你还需要编译php5才能生成这个文件
在PHP的configure的时候,加上:
--with-apxs2=/usr/local/apache/bin/apxs
这样就会自动编译一个libphp5.so出来了。

2. PHP7.0怎么通过打开扩展功能和mysql相连

第一步:进入php源码中的"ext/mysql"目录下

第二步:在当前目录下运行phpize命令:/usr/local/php524/bin/phpize

phpize的规则:去哪个目录下运行phpize文件,那么就会在该目录下生成一个configure文件。

第三步:运行刚才生成的configure文件

命令: ./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/

这里最关键的是通过--with-mysql参数告诉mysql客户端的位置。这样才能生成mysql.so。

实验的时候,没有加这个参数,结果错误:

./configure --with-php-config=/usr/local/php524/bin/php-config

第四步:编译生成.so文件

第五步:配置php引擎加载该扩展。

补充一下:就是去php.ini文件中修改一下配置,加载mysql.so这个扩展(这个扩展文件要放到php指定的扩展目录下面去)

第六步:测试php引擎是否成功加载该扩展编写文件phpinfo.php,内容是:<?phpehco phpinfo();?>

运行后,可以看到有如下信息显示:mysqlMySQLSupport enabledActive PersistentLinks 0

Active Links 0

Client API version 5.1.55

MYSQL_MODULE_TYPE no value

MYSQL_SOCKET /tmp/mysql.sock

MYSQL_INCLUDE no value

MYSQL_LIBS no value

通过这样的方式可以确认,php引擎已经成功加载了mysql.so扩展。

第七步:已经生成的mysql.so。编写php代码测试是否能连接mysql。

3. 请教各位,php如何调用so文件

要确定你调用的so文件不是从别处拷贝来的!!即,你的PHP和你的SO文件是否都是在你的本机编译运行的。如果不是,则要确定你的SO文件和你的PHP版本是否匹配!最后检查你调用的so文件的权限和你的PHP的权限是否一致

4. 如何编译安装PHP扩展

一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。
安装PHP扩展最简单的办法就是
sudo apt-get install php5-xxx

但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。
这篇文章中我将介绍在本地linux平台下编译安装PHP扩展的方法。
现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。
配置编译环境
我们需要安装一些编译必须的库,还有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev

Fedora
sudo yum install php-devel php-mysqlnd gcc libtool

RHEL
sudo yum install php-devel php-mysql gcc libtool

Suse
yast2 -i php5-pear php5-devel php5-mysql gcc

安装扩展
PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。
下面依次介绍两种扩展的安装方法:
安装之前我们需要一份和当前机器上相同版本的PHP源码
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9

前往此处 下载相应的源码包。
在 /ext 目录下面可以看到所有PHP原生的扩展。
安装原生扩展
以 PHP-intl 为例,这是PHP国际化的扩展。
为了安装这个扩展我们需要先安装ICU 库
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg

ICU 安装成功之后进入/ext/intl 目录:
cd intl
phpize
./configure --enable-intl
make
sudo make install

下面解释一下上面的每个命令:
phpize : 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
./configure --enable-intl: 配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。
make: 将会把源码编译成 intl.so
make install : 将会把 intl.so 移动到当前安装的 PHP 的扩展目录。
接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。
安装第三方扩展
将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。
先安装必要的依赖
sudo apt-get install pkg-config

git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install

将会生成一个文件,将其拷贝到PHP的扩展目录下面。
启用扩展
在php.ini中启用扩展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。
也可以单独建一个ini文件,然后在php.ini中包含这些文件就可以了。
下面介绍一下第二种方法:
cd `/etc/php5/mods-available`

这个目录里可以放新建的ini文件,然后执行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini

上面的命令将会创建ini文件,并且写如相应的配置信息。
然后执行下面的命令启用扩展即可(需要安装 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl

如果未安装 php5enmod 工具,则需要手动配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最后在执行一下重启操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart

5. php5.6编译生成libphp5.so的问题求助

由于好久没有搭环境,在Linux上搭apache、PHP的环境时,遇到libphp5.so 无法生成这个问题,我也困扰了我半天,很是郁闷。从网上找了各种资料,都是瞎转载,太无聊的一堆人了,自己成功没有成功的先转载,鄙视。 害的我尝试了半天也没有解决。下面列出我的正确解决办法:
常见问题一:配置apache打开libphp5.so文件后提示错误
/usr/local/apache2/moles/libphp5.so: No such file or directory

解答: 发现moles下面没有libphp5.so文件,说明安装apache2的时候配置有问题,需要重新编译安装,必须采用 ./configure --enable-so 这种方式。然后重新安装 make clean -> make -> make install。 然后重新安装php,安装时要求采用./configure --with-apxs2=/usr/local/apache2/bin/apxs 这种方式 然后 make & make install。如果还出现这个问题,可以重新安装一下apache 和 php

常见问题二:在centOS中 配置apache的php时提示错误
cannot restore segment prot after reloc: Permission denied
解答:可以网络查看资料,关于centOS中的selinux。SELINUX的问题,对LIB库的保护。
关闭 SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq!#保存退出
shutdown -r now#重启系统

6. linux下apache添加php libphp5.so

libmysqlclient.so.16: cannot open shared object file: No such file or directory

人家说的是没有找到 libmysqlclient.so.16 。
也就是你的 php 安装有问题,导致依赖不满足,apache 无法调用 libphp5.so
这个 libmysqlclient.so.16 应该在 mtsql-client 包里面。

这个问题充分说明:你看错教程了。

7. 宝塔php 如何添加自定义so扩展,怎么添加,怎么调用

和php安装扩展一样,也是要在命令行操作,步骤如下:
进入源码目录:
cd xxx
生成配置
/www/server/php/版本/bin/phpize
./configure --with-php-config=/www/server/php/版本/bin/php-config
编译并安装:
make && make install
写配置文件
echo "extension = xxx.so" >> /www/server/php/版本/etc/php.ini

8. linux已经安装openssl,如何重新编译php支持openssl模块

下载php的源代码,执行三步安装就行了:
./configure
make && sudo make install
sudo make clean
就可以了,然后编辑php.ini文件加入模块支持:
extensions=openssl.so
好了。大工告成~~~

热点内容
刀剑乱舞挂机脚本 发布:2024-11-27 18:37:56 浏览:504
截取字符串java 发布:2024-11-27 18:34:09 浏览:331
安卓导航怎么会黑屏 发布:2024-11-27 18:17:19 浏览:394
编译后代码放在单片机哪个位置 发布:2024-11-27 18:12:01 浏览:458
linux红帽安装 发布:2024-11-27 18:01:53 浏览:827
手机编程蓝牙 发布:2024-11-27 17:55:39 浏览:385
创维云电视怎么升级安卓系统 发布:2024-11-27 17:55:31 浏览:354
theisle游戏服务器搭建 发布:2024-11-27 17:47:43 浏览:210
xshell解压 发布:2024-11-27 17:35:14 浏览:359
ftp服务器管理方法 发布:2024-11-27 17:24:48 浏览:975