CentOS5 (32bit)下,在 MySQL-Cluster 的 sql node 上安装 PHP5.4.9 时如何添加 mysql 以及 mysqli 扩展

来源:互联网 发布:新速特软件安卓版 编辑:程序博客网 时间:2024/05/01 08:32

    Cluster中已经在SQL节点成功安装:

    1. MySQL-Cluster-client-gpl-7.2.8-1.rhel5.i386.rpm

    2. MySQL-Cluster-server-gpl-7.2.8-1.rhel5.i386.rpm

    如果要在该节点上扩展为Web服务器,需要给PHP添加mysql以及mysqli扩展,很多情况下,为了方便通过命令:install php54-mysql 来安装,如果该节点上已经安装了 MySQL-Cluster-server-gpl-7.2.8-1.rhel5.i386.rpm 再安装该扩展,会提示无法安装,会有冲突出现。此时可以通过下面的办法来解决:

    1. 下载php-5.4.9.tar.gz

    2. # tar -zvxf php-5.4.9.tar.gz

      # cd php-5.4.9

      # ./configure --prefix=/var/lib/php5

                   --with-mysql=/usr  # 路径指的是安装完 server 之后,mysql 的basedir,该值可以通过命令 # rpm -ql MySQL-Cluster-server-gpl-7.2.8-1.rhel5 来查看得到;

                   --with-mysqli=/usr/bin/mysql_config  # 如果只安装了 server 和 client,默认情况下是没有用于编译mysql客户端程序的 mysql_config 这个可执行命令的,此时需要再次安装 MySQL-Cluster-devel-gpl-7.2.8-1.rhel5.i386.rpm 来提供开发所需要的库文件,devel 同时还提供了 libmysqlclient.a 以及 libmysqlservices.a 库文件,更重要的是提供了所需的 ndbapi。

                   --with-mysql-sock=/var/lib/mysql/mysql.sock

    配置的时候出现错误:configure: error: no acceptable C compiler found in $PATH

    解决办法:# yum install gcc

    又出现错误:configure: error: xml2-config not found. Please check your libxml2 installation.

    解决办法:# yum install libxml2

              # yum install libxml2-devel -y        

    3. # make  # 编译,这个过程花的时间比较长

    4. # make test  # 编译测试,这个过程花的时间也比较长

    5. # make install  # 执行


    Apache2.2.3以源码方式安装:

    # ./configure  --prefix=/var/lib/apache2.2 --enable-so

    启动命令:开启之后有多个进程

    # /var/lib/apache2.2/bin/apachectl start 或:# /var/lib/apache2.2/bin/httpd -k start

   

    重新配置PHP

    # cd /home/guanli/php-5.4.9

    # ./configure --prefix=/var/lib/php5 --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock --with-apxs2=/var/lib/apache2.2/bin/apxs

    # make && make test && make install

    将解压路径下面的 php.ini-development 文件拷贝到安装目录:/var/lib/php5/etc/下面,并命名为:php.ini


    问题:

    [root@localhost php-5.4.9]# /var/lib/apache2.2/bin/apachectl restart

    提示:httpd: Syntax error on line 54 of /var/lib/apache2.2/conf/httpd.conf: Cannot load /var/lib/apache2.2/modules/libphp5.so into server: /var/lib/apache2.2/modules/libphp5.so: undefined symbol: zend_parse_parameters

    解决办法:直接关闭SELinux可以解决,如果不愿意关闭,请尝试下面的办法:

    # wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

    # tar-zxvf bison-2.5.tar.gz

    # cd bison-2.5

    # ./configure

    # make

    # make install

  

    问题:

    httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

    解决办法:直接关闭SELinux可以解决,如果不愿意关闭,请尝试下面的办法:

    [root@localhost php-5.4.9]# setenforce 0
    [root@localhost php-5.4.9]# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /var/lib/apache2.2/modules/libphp5.so
    提示:context of /var/lib/apache2.2/modules/libphp5.so changed to system_u:object_r:textrel_shlib_t

    [root@localhost php-5.4.9]# service httpd restart
    提示:httpd: 未被识别的服务(解决方法待更新)

    [root@localhost php-5.4.9]# setenforce 1

   

     

   


原创粉丝点击