代码之家  ›  专栏  ›  技术社区  ›  Greg B

用pdo mysql编译php 5.1.6

  •  3
  • Greg B  · 技术社区  · 16 年前

    我最初 asked this question on ServerFault 没有任何回应,我认为这与编程有关,所以,这里……


    不久前,我们的一个大客户转移到了一个单一的主机提供商那里,他指定了一个软件环境,可以在所有的实时服务器上保持一致。

    其他功能包括Apache2.2.8和php 5.1.6。

    我们有一个用于开发的Ubuntu8.04服务器,这些版本的apache和php不是默认安装的。所以我必须从源代码处编译它们。这些版本已经运行了一年多了。

    我们正在开始一个新的站点构建,我们希望使用ZendFrameword,它需要pdo_mysql。

    我尝试用以下代码重新编译…(下划线表示行的继续)

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs _
    --with-config-file-path=/user/local/apache2/conf/php.ini _
    --with-curl=/usr/lib/ --with-mysql=shared --with-mysqli=shared _
    --with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ _
    --with-freetype-dir=/usr/lib/ --enable-soap --enable-pdo=shared _
    --with-pdo-mysql=shared --with-sqlite=shared
    ...
    make
    ...
    make install
    ...
    libtool --finish /sources/php-5.1.6/libs
    

    这一切都很好,当我重新启动Apache时,它会在phpinfo()中显示新的./configure。

    这样做之后,mysql停止工作,mysql部分消失,msyql停止工作。

    制造、制造、安装、libtool…将*.so文件放入

    /usr/local/lib/php/extensions/no-debug-non-zts-20050922

    我以前使用的配置启用了mysql,但没有启用pdo

    ./configure --with-apxs2=/usr/local/apache2/bin/apxs _
    --with-config-file-path=/user/local/apache2/conf/php.ini _
    --with-curl=/usr/lib/ --with-mysql --with-mysqli _
    --with-zlib --with-gd --with-jpeg-dir=/usr/local/lib/ _
    --with-freetype-dir=/usr/lib/ --enable-soap
    

    我不是一个庞大的尼克斯人,有人能告诉我哪里出了问题吗?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  3
  •   Pascal MARTIN    16 年前

    我不确定它是否真的有帮助,但是如果您删除 =shared “在您的配置行中?

    例如,这里有一个我之前使用过的configure命令*(由 PHPFIN *:

    $ /usr/local/php-5.1.6/bin/php -i | grep 'configure'
    Configure Command =>  './configure' '--prefix=/usr/local/php-5.1.6' '--with-config-file-path=/etc/php-5.1.6' 
      '--with-apxs2=/usr/bin/apxs2' '--disable-ipv6' '--with-openssl' '--with-zlib' '--enable-bcmath' 
      '--with-bz2' '--with-curl' '--enable-exif' '--enable-ftp' '--with-gd' '--with-ttf' 
      '--enable-gd-native-ttf' '--with-imap-ssl' '--with-ldap' '--enable-mbstring' '--with-mcrypt' 
      '--with-mhash' '--with-mysql' '--with-mysqli' '--enable-pcntl' '--with-pdo-mysql' '--with-pdo-sqlite' 
      '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sqlite-utf8' '--with-xmlrpc' 
      '--with-xsl' '--with-pear'
    

    (为了可读性添加了换行符)

    有帮助吗?

        2
  •  -1
  •   Michał Niedźwiedzki    16 年前

    不需要重新编译整个PHP。只需单独编译pdo-mysql模块即可。使用 pecl 安装:

    pecl install PDO_MYSQL
    

    你需要的是 phpize 安装。在Debian机器上,它由名为 php5-dev . 然后把它加到你的 php.ini 重新启动Apache。

    如果您使用的是Debian/Ubuntu系统,那么在名为 php5-mysql