8

我浏览了每一个谷歌结果,阅读了所有关于这个错误的论坛帖子,但我无法解决它。

当使用 PECL 安装任何东西时,我总是会收到这个错误:

checking whether the C compiler works... configure: error: cannot run C compiled programs.

到那时为止,其他一切都成功了,他们砰!

我使用的是 CentOS 4.3,PEAR 是最新的稳定版本,GCC 是稳定的最新版本。一切正常,但 C 编译器似乎总是出错。我试图通过临时启用它来使 tmp 具有操作的正确权限:

mount -o remount,exec,suid /tmp

但这不起作用。

我确实尝试了所有建议的方法,但均无济于事。有任何想法吗?

4

3 回答 3

9

我在 Centos 5.3 上,通过删除 /tmp/var/tmp上的 noexec 标志,我能够成功运行 PECL 安装程序(在我的情况下是 APC)

mount -o remount,exec,suid /tmp
mount -o remount,exec,suid /var/tmp

仅在 /tmp 上执行此操作不起作用 - 我仍然收到错误“检查 C 编译器是否工作......配置:错误:无法运行 C 编译程序。”

请记住在安装完成后使用 noexec 再次运行这些重新安装。

于 2009-11-21T03:24:48.837 回答
7
cd ~
mkdir setups
cd setups
wget http://pecl.php.net/get/APC-3.1.2.tgz
tar -xvf APC-3.1.2.tgz
cd APC-3.1.2
phpize && ./configure --with-apxs && make

我很快把它写下来,并且能够通过一些手动工作来安装 APC。例如将模块复制到 PHP 模块中,并在 php.ini 中添加扩展名。现在完美运行。

于 2009-05-25T13:34:48.313 回答
2

当我在安装 MongoDB 驱动程序时遇到类似问题时,这对我有用:

sudo mkdir /root/tmp.pear
sudo mkdir /root/tmp.pear-build-root

sudo ln -s /root/tmp.pear /tmp/pear
sudo ln -s /root/tmp.pear-build-root /tmp/pear-build-root

然后:

sudo sudo pecl install XXX

(这不会打开安全漏洞,因为只有 root 可以在这两个目录中创建可执行文件。)

请注意,以下内容不适用于PECL:

sudo pear config-set temp_dir /var/tmp/pear/temp
于 2011-03-13T19:00:40.650 回答