zoukankan      html  css  js  c++  java
  • [置顶] linux下让php支持mysql——寻找消失的mysql

       问题

          最近我都在忙一个课件录制系统。这两天发现其中服务器端的一个更新数据库的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 命令得以成功运行了。

  • 相关阅读:
    用perfmon简单分析GDI+性能和代码的一点小改进
    从clr profiler的角度看string concat 和stringbuilder的性能差别
    CLR兴趣小组第一次活动总结
    C#3.0看起来比较酷的咚咚
    windbg入门及提高(广告贴)
    济南.NET技术俱乐部8月份活动预告
    WebService安全性的问题
    Basic Windbg 4.Out Of Memory的分析及诊断方法
    A question about C++ static method and C# static method
    内存泄露的小问题
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3271344.html
Copyright © 2011-2022 走看看