问题

最近我都在忙一个课件录制系统。这两天发现其中服务器端的一个更新数据库的php脚本运行有问题,一些本应该是系统自带函数却无法运行。于是我展开了调查。。。

服务器端是centos系统,其中php可能是系统安装时带的,我测试php命令发现有问题于是我重新安装了php5.我是下载的php5安装包来编译安装的。configure的时候应该要加上--with-mysql=mysql安装目录,不然编译会报错“

configure: error: Cannot find MySQL header files under /usr/local/src/mysql-5.1.14-beta-linux-i686-glibc23/include/.

Note that the MySQL client library is not bundled anymore!”,但是我怎么也找不到服务器上的mysql安装目录。

思考

本来嘛,一般mysql安装目录在usr/local下边,but no。于是我又找了第二可能位置 /usr/share/mysql ,还是没有。之后我又查看了mysql的my.ini文件以及/etc/init.d/my.cnf 文件,皆未果。

最后我先rpm -qa | grep -i mysql,发现有mysql-server和mysql-client,又用rpm -ql xxxxxxx查看了二者的安装位置,还是没有我需要的目录。这时我才反应过来,应该是mysql有一个东东没安装。。。(服务器之前不是我配的,所以可能为了支持普通的mysql服务器端功能就没装mysql-devel包,某些开发所需的lib)

尝试

所以赶紧yum -search mysql,找到mysql-devel包,install。结果报错说它和mysql-server冲突!!!???那我干脆找了个rpm的包,然后rpm -ivh MySQL-devel-community-5.1.33-0.rhel5.i386.rpm,成功安装了这个模块。再重新编译php,也不报错了,make,make install。

本以为大功告成,结果php filename 命令可用却报错。。。我用php -m查看php安装的模块信息,竟然没有mysql模块。。。????????

解决

最后的最后我拿出了杀手锏:直接安装mysql模块给php:

1 进入php/ext/mysql:
          cd php/ext/mysql
2 执行phpize命令,这个命令一定得在php的模块目录下执行,在别的目录下执行会报错:
         phpize
         执行完之后,这个目录就生成了一个configure脚本
3 收集信息,记下结果,待会用得到:
         which php-config
         记下结果1
         find / -name mysql.h
         记下结果2
4 如果结果2没有找到,说明MySQL的开发库没有安装,将在这一步安装;如果已经安装直接跳到下一步
        CentOS下:
        yum install mysql-devel
        UBUNTU下:
        apt-get install libmysqlclient-dev
        安装好之后再执行
        find / -name mysql.h
        记下结果2
5 开始配置
       ./configure --with-php-config=结果1 --with-mysql=结果2的前缀
       注意,with-mysql=后面不是写mysql的目录,而是它的前缀。比如我执行得到的结果2         是:/usr/include/mysql/mysql.h,这里只需要写--with-mysql=/usr就可以了。

6 编译
       make && make install
       顺利的话会提示:
       Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-xxxxxxx/
7 修改php.ini
      找到  ;extension=php_mysql.dll  改成
      extension=mysql.so
8 重启php-fpm
      或者干脆重启服务器
9 打开phpinfo(),可以看到MySQL已经成功安装了

解决部分参考自:http://yubosun.akcms.com/tech/install-extension-php-mysql.htm

终于,php filename 命令得以成功运行了。

[置顶] linux下让php支持mysql——寻找消失的mysql的更多相关文章

  1. [置顶] Linux下的截图小工具

    Linux下的截图工具scrot 基于命令行 先下载:scrot apt-get install scrot 对该工具的操作: 分为以下几个部分 1.抓取整个桌面 scrot pic.jpg 2.抓取 ...

  2. [置顶] Linux下文件和目录权限说明

    在Linux下使用ls -l或者ll命令可以查看文件和文件夹的权限.结果显示类似于: drwxrwxrwx,这里分为四组,分别为文件类型,文件所有者的权限(读写执行),文件所有者所在组用户的权限(读写 ...

  3. [置顶] Linux下发布QT程序

    Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...

  4. [置顶] Linux下将Nutch1.3导入eclipse

    1.准备工作 首先去官网下载好 apache-nutch-1.3-bin.zip 解压apache-nutch-1.3-bin.zip [pig@CentOs ]$ unzip   apache-nu ...

  5. [置顶] linux常用命令大全

    SSH 密令控制台 user/pwd 一:停止tomcat 1,cd .. 进入根目录 2,cd home/ 3,ll 4,cd bin/ 进入tomcat bin目录 5,ll 6,ps -ef | ...

  6. [置顶] Linux 常用命令集锦

    出处:http://www.vaikan.com/what-are-the-most-useful-swiss-army-knife-one-liners-on-unix/ Linux命令行里的&qu ...

  7. linux下rpm包安装、配置和卸载mysql

    WIN10下虚拟机:VMware workstation 12 PRO 安装 # 1.查看系统版本 [root@vm-xiluhua][/home/xiluhua]$ cat /etc/redhat- ...

  8. [置顶] Linux信号相关笔记

    最近又温习了一遍Linux中的信号知识,发现有很多东西以前没有注意到,就通过这篇博客记录一下,巩固一下知识点. 一,信号基础: 信号是什么?为了回答这个问题,首先要从异常说起,这里的异常不是指c++/ ...

  9. linux下 yum源、rpm、源代码安装mysql

    mysql的安装 一.yum源格式安装mysql 1.将下载的yum包上传到linux上: [root@localhost ~]# ls mysql-community-release-el6-5.n ...

随机推荐

  1. OC多文件开发介绍

    OC多文件开发介绍: 1.为什么要使用多文件? 在工作中,通常把不同的类放到不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,实现写在相应的.m文件中去,类名是什么,文件名的前缀就是什么.假 ...

  2. 通过css实现文本超出部分以省略号(......)代替

    一.单行溢出 1,固定宽度(非常容易) text-overflow: ellipsis; 2,不固定宽度 思路:想让这个区域成为块元素,然后不换行,溢出隐藏. display: block; whit ...

  3. centos 7.0防火墙导致vagrant端口映射失败

    在vagrant上部署了centos7.0后,Vagrantfile端口转发设置后,宿主机访问客户机站点还是无法访问,问题出在:centos7.0以上版本默认会安装firewalld防火墙, fire ...

  4. 用Python实现的一个简单的爬取省市乡镇的行政区划信息的脚本

    # coding=utf-8 # Creeper import os import bs4 import time import MySQLdb import urllib2 import datet ...

  5. HDFS 搭建记录

    1. 三台服务: 172.17.0.62(namenode) 172.17.0.68(datanode) 172.17.0.76(datanode) /etc/hosts包含的内容: 三台都包含的域名 ...

  6. Codeforces Round #Pi (Div. 2)

    上次比完赛就准备写了, 结果懒癌发作了, 拖到了现在. Problem_A: 题意: 在一条x轴上有n座城市, 每个城市之间的距离就是它们对应坐标的距离, 现在求出每个城市到其他城市的最近距离和最远距 ...

  7. [BZOJ 3564] [SHOI2014] 信号增幅仪 【最小圆覆盖】

    题目链接:BZOJ - 3564 题目分析 求最小椭圆覆盖,题目给定了椭圆的长轴与 x 轴正方向的夹角,给定了椭圆长轴与短轴的比值. 那么先将所有点旋转一个角度,使椭圆长轴与 x 轴平行,再将所有点的 ...

  8. insert时出现主键冲突的处理方法【转载】

    原文出处:http://hi.baidu.com/ytjwt/blog/item/1ccc2c26022b0608908f9d8c.html 使用"insert into"语句进行 ...

  9. Ext.Ajax.request同步请求

    导读: ajax分为2种,一种是同步,一种是异步同步:代码执行完了之后才执行后面的代码 异步:代码刚执行,后面的代码就马上接着执行了,不管前面的代码是否执行完异步的情况下,要获得返回信息,就需要在异步 ...

  10. kafka java示例

    http://www.open-open.com/lib/view/open1407942131801.html http://www.open-open.com/lib/view/open14079 ...