linux下为已经编译好的php环境添加mysql扩展(php安装完成后如何添加mysql扩展)
问题背景
平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。这时需要手动编译生成mysql.so扩展。
解决方案
使用phpize工具能够生成mysql.so,但是必须加上"--with-mysql=mysql客户端的路径"。也就是mysql.so模块必须用到mysql客户端才行。
可以这样理解,mysql.so内部会调用mysql客户端,以便实现连接mysql数据库服务器。
我们常常用到的mysql_connect()可能就是调用了mysql客户端才能完成连接数据库的操作。
实践生成mysql.so的过程
大体思路:需要用到php的源码包才行。通过源码包中提供的phpize文件(一个专门挂接php扩展的工具),phpize的规则:去哪个目录下运行phpize文件,那么就会在该目录下生成一个configure文件。
具体的安装步骤如下
php安装完成后添加mysql扩展基本步骤如下:
1、进入php源代码目录:
[root@localhost /]# # cd cd /usr/local/php-5.3.28 2、再进入要添加的mysql扩展源码目录:
[root@localhost php-5.3.28]cd ext/mysql/
[root@localhost mysql]# yum install autoconf (CentOS 5.4需安装) 3、调用已经编译好的php可执行程序phpize:
[root@localhost mysql] /usr/local/php/bin/phpize 4、然后configure:
[root@localhost mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/local/lib
注意:
/usr/local/mysql 为mysql的安装目录
/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ 为php扩展的动态库存放目录 5、编译安装
[root@localhost mysql]#make
[root@localhost mysql]#make install 6、编译完成之后,将会自动把mysql.so放到了默认的php扩展目录下(phpinfo可查看,我的为 /usr/local/php/lib/php/extensions/no-debug-zts-20090626),再修改php.ini,去掉;extension=mysql.so前面的分号。如果没有这句,需要自行添加。
不过有一点需要注意的是,生成的模块名叫mysql.so,跟php.ini里面的php_mysql.so名字不一致,必须把mysql.so改名为php_mysql.so,也可修改php.ini中的文件名,总之文件名必须一致. 7、重启apache:
[root@localhost mysql] service httpd restart
或者apache没有安装成服务,则进入apache_home执行
[root@localhost mysql]bin/apachectl -k restart
测试php引擎是否成功加载该扩展
编写文件phpinfo.php,内容是:
<?php
ehco phpinfo();
?> 运行后,可以看到有如下信息显示: mysql
MySQL Support enabled
Active Persistent Links 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
测试.so是否能用变得非常必要。现在测试一下生成的mysql.so是否能用。
<?php
$link=mysql_connect('192.168.150.214','root','123456');
if(!$link) echo "connect error!";
else echo "connected!";
mysql_close();
?>
运行后,输出connected 说明连接成功!!!
linux下为已经编译好的php环境添加mysql扩展(php安装完成后如何添加mysql扩展)的更多相关文章
- Linux下指定版本编译安装LAMP
说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...
- Linux下使用javac编译
Linux下使用javac编译Hadoop程序 首先要配置好Hadoop, 给出两个教程 Hadoop安装教程单机/伪分布式配置Hadoop2.6.0/Ubuntu14.04 Hadoop集群安装配置 ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Linux下使用NDK编译FFMPEG(libstagefright)
这个月要负责一个项目,使用FFMPEG渲染视频,主要是Android端的,由于性能要求,要使用硬解码,但网上大多数教程都是没有libstagefright的,所以个人觉得,生成的so库文件也是没有开启 ...
- 在ubunt14.04(linux)下利用cmake编译运行opencv程序
今天在电脑上安装好了opencv环境,迫不及待的想写个程序来测试一下.但是在windows下我们用vs等集成开发工具.可是在linux下我们应该怎么办呢? 这里我们用了opencv推荐的cmake来编 ...
- Linux下php5.3编译oracle客户端
因项目需要在linux下进行php5.3的oracle客户端编译,简要介绍一下步骤及走过的弯路. 1.下载Oracle客户端程序包,其中包含OCI.OCCI和JDBC-OCI等相关文件. 1.1下载文 ...
- Linux下源码编译安装rpy2
R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...
- 在Linux下使用gcc编译mesa文件报undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line两个错误的解决方案
一.概述 在Linux系统下使用gcc编译用C语言写的mesa的示例程序. 环境:Ubuntu Server 18.04.1 二.问题的出现 在Ubuntu下安装好mesa所需的库文件,将目标文件从g ...
- Linux下编辑、编译、调试命令总结——gcc和gdb描述
GCC gcc是linux系统集成的编译器.在linux环境下编辑程序,首先需要克服的便是没有集成开发环境的一键式操作所带来的麻烦.这其中涉及命令行操作.编译选项的设定.文件依赖关系的书写(makef ...
随机推荐
- C语言博客作业06
一.表格 问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/988 ...
- Leetcode 35.搜索插入位置 By Python
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- CentOS 上面 恢复 Oracle 数据库实例的简单操作流程
1. 当获取了数据库的备份可以进行 oracle数据库的备份恢复操作 linux上面要复杂一些. 这里面简单描述一下. 2. 远程连接 linux 主要工具可以选择 xshell 如图示: 3. 建议 ...
- 从入门到自闭之Python 基础习题训练
""" name = input(">>>")通过代码来验证name变量是什么数据类型? """ na ...
- python 安装 colorama 控制台输出彩色文字
pip install colorama from colorama import Back,Fore,Style # 字体颜色print(Fore.LIGHTBLUE_EX,'HelloWorLd' ...
- Pycharm Debug 问题
Pycharm debug 出现如下问题 Connected to pydev debugger (build 181.4668.75) Traceback (most recent call las ...
- RabbitMQ入门教程(二):简介和基本概念
原文:RabbitMQ入门教程(二):简介和基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...
- 你知道dos和cmd之间的关系以及区别吗?
含义 dos 英文disk operation system,意思是磁盘操作系统是微软系列操作系统之一,dos是一个独立的操作系统,dos对操作人员的要求是比较高的,操作者需要记住很多的命令,并利用命 ...
- CTP报单参数详解
交易所代码 产品类型 业务类型 价格类型 指令类型 价格类型 OrderPriceType 有效期类型 TimeCondition 成交量类型 VolumeCondition 备注 CZCE 郑商所 ...
- CNN与图像高级应用
一.图像识别与定位 思路1:视作回归 4个数字,用L2 loss/欧氏距离损失(x,y,w,h)这四个数都是连续值 思路2:借助图像窗口 二.物体识别 0.图像识别与定位: (1)Classifica ...