2009-07-22 57 views
3

我本来asked this question on ServerFault并没有得到任何回复,我想它的节目相关的话,在这里不用...编译PHP 5.1.6与PDO的MySQL


前一阵子大客户我们的感动到一个托管服务提供商指定了一个软件环境,这个环境在所有活动服务器中都是一致的。

Amongs其他的东西,这包括Apache 2.2.8和PHP 5.1.6。

我们有一个用于开发的ubuntu 8.04服务器,并且这些版本的Apache和PHP不是默认安装的。所以我必须从源代码编译它们。这些版本已经开始运行了一年多了。

我们正在开始一个新的网站构建,我们想要使用需要PDO_MySQL的ZendFrameword。

我试着重新编译如下...(下划线表示行的延续)

./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的备份,它让我看到新的./configure在phpinfo()中。

这样做后,MySQL停止工作,MYSQL部分消失,msyql停止工作。

的牌子,使安装,libtool的...提出的* .so文件

在/ usr/local/lib目录/ PHP /分机/无调试非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 

我不是一个巨大的* nix的人,谁能告诉我,我要去哪里错了。

感谢

+0

5.2提供。10/5.3.0是当前的稳定版本。你确定你想要3岁的版本可能已知安全漏洞? – Kornel 2009-07-22 10:59:49

+0

@porneL前段时间,我们的一个大客户转移到了一个托管服务提供商,他指定了一个软件环境,这个环境在所有活动服务器上都是一致的。 – 2009-07-22 11:07:11

+0

@porneL我们处于必须使用我们所得到的状态。客户非常庞大(全球有数百个品牌),因此迁移到不同版本是一项艰巨的任务。 “如果它没有损坏,请不要修理它”以及所有...... – 2009-07-22 11:08:34

回答

3

我不知道它会真正帮助,但如果你在配置行中删除的“=shared”每一个实例是什么?

例如,这里是我前一段时间使用*(由的phpinfo给出)的配置命令:

$ /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' 

(新行增加了可读性的原因)

它有帮助吗?

-1

无需重新编译整个PHP。只需编译PDO_MYSQL模块。使用pecl进行安装:

pecl install PDO_MYSQL 

对于您需要安装phpize。在Debian机器上,它由名为php5-dev的软件包提供。之后,将其添加到您的php.ini并重新启动Apache。

如果您在Debian/Ubuntu系统PDO_MYSQL在呼包php5-mysql