我正在尝试在 Linux 上安装 PECL 软件包,但安装程序从未通过配置阶段。
我的托管提供商在 /var/tmp 处安装了一个文件系统,该系统阻止文件执行,这导致了此错误:
root@host [/usr/local/apache/conf/includes]# pecl install pdo
downloading PDO-1.0.3.tgz ...
Starting to download PDO-1.0.3.tgz (52,613 bytes)
.............done: 52,613 bytes
12 source files, building
running: phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
building in /var/tmp/pear-build-root/PDO-1.0.3
running: /root/tmp/pear/PDO/configure
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/root/tmp/pear/PDO/configure' failed
我 99% 确定问题是您无法执行 /var/tmp 中的文件(我在这里复制了一个可执行文件并尝试验证)。我确信如果我让 PECL 在其他地方完成构建工作,我可以让 PECL 完成,但我找不到适当的配置设置。
如何告诉 PECL 在非默认文件夹中构建?
哇哦,为什么要从 PECL 安装 PDO? PDO 自 PHP 5.1 起内置于 PHP 中。你运行的是5.0吗?
如果您运行的是 5.1 或更高版本并且缺少 PDO,则可能是:
- 你的 PHP 副本是在没有它的情况下编译的,必须重新编译;或者
- 您的 PHP 副本是从操作系统的存储库安装的,没有 PDO 模块
如果为 1,您需要从头开始重新编译 PHP,或者仅编译共享模块并将其复制到正确的位置。
如果是 2,您只需要安装操作系统的 PDO 扩展即可。在 RHEL 和 CentOS 下,尝试yum search php-pdo
。我不知道调用其他发行版的包安装程序的正确语法,但该包几乎肯定会包含字符串“php-pdo”。 (提示:如果您从操作系统获取 PHP,他们也可能提供常见的 PECL 包。尝试在他们的存储库中搜索“pecl”。)
最后,如果您正在运行 5.0...为了这个世界上的美好事物,请升级!通读首先PHP手册中的升级说明 http://www.php.net/manual/en/appendices.php,以防万一您意外使用旧行为。
(另外,要重新配置 pecl,请尝试pecl config-show
查看可用的设置,然后是pecl config-set ...
更改设置。不要尝试为高于 5.0.x 的 PHP 版本安装 PDO 扩展,它会will break。顶部甚至还有一个大脂肪盒PECL 网站上的 PDO 页面 http://pecl.php.net/package/PDO.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)