我尝试使用PHP将mongodb安装到Centos 7服务器。我遵循https://www.php.net/manual/en/mongodb.installation.pecl.php
中的安装指南但是sudo pecl install mongodb
显示错误消息:
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading mongodb-1.8.1.tgz ...
Starting to download mongodb-1.8.1.tgz (1,292,453 bytes)
................................................................................................................................................................................................................................................................done: 1,292,453 bytes
586 source files, building
running: phpize
Can't find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
ERROR: `phpize' failed
根据错误消息的建议,我安装了php-devel package
,
yum install php-devel
但是我有很多依赖错误:
Error: Package: libstdc++-devel-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
Requires: libstdc++(x86-64) = 4.8.5-16.el7_4.2
Installed: libstdc++-4.8.5-28.el7_5.1.x86_64 (installed)
libstdc++(x86-64) = 4.8.5-28.el7_5.1
Available: libstdc++-4.8.5-16.el7.x86_64 (ultra-centos-7.4-base)
libstdc++(x86-64) = 4.8.5-16.el7
Available: libstdc++-4.8.5-16.el7_4.1.x86_64 (ultra-centos-7.4-updates)
libstdc++(x86-64) = 4.8.5-16.el7_4.1
Available: libstdc++-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
libstdc++(x86-64) = 4.8.5-16.el7_4.2
Error: Package: libcom_err-devel-1.42.9-10.el7.x86_64 (ultra-centos-7.4-base)
Requires: libcom_err(x86-64) = 1.42.9-10.el7
Installed: libcom_err-1.42.9-12.el7_5.x86_64 (installed)
libcom_err(x86-64) = 1.42.9-12.el7_5
Available: libcom_err-1.42.9-10.el7.x86_64 (ultra-centos-7.4-base)
libcom_err(x86-64) = 1.42.9-10.el7
Error: Package: gcc-c++-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
Requires: libstdc++ = 4.8.5-16.el7_4.2
Installed: libstdc++-4.8.5-28.el7_5.1.x86_64 (installed)
libstdc++ = 4.8.2-16.el7_5
libstdc++ = 4.8.5-28.el7_5.1
Available: libstdc++-4.8.5-16.el7.x86_64 (ultra-centos-7.4-base)
libstdc++ = 4.8.5-16.el7
libstdc++ = 4.8.2-16.el7
Available: libstdc++-4.8.5-16.el7_4.1.x86_64 (ultra-centos-7.4-updates)
libstdc++ = 4.8.5-16.el7_4.1
libstdc++ = 4.8.2-16.el7_4
Available: libstdc++-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
libstdc++ = 4.8.5-16.el7_4.2
libstdc++ = 4.8.2-16.el7_4
Error: Package: glibc-devel-2.17-196.el7_4.2.x86_64 (ultra-centos-7.4-updates)
Requires: glibc = 2.17-196.el7_4.2
Installed: glibc-2.17-222.el7.x86_64 (installed)
glibc = 2.17-222.el7
Available: glibc-2.17-196.el7.x86_64 (ultra-centos-7.4-base)
glibc = 2.17-196.el7
Available: glibc-2.17-196.el7_4.2.x86_64 (ultra-centos-7.4-updates)
glibc = 2.17-196.el7_4.2
Error: Package: glibc-headers-2.17-196.el7_4.2.x86_64 (ultra-centos-7.4-updates)
Requires: glibc = 2.17-196.el7_4.2
Installed: glibc-2.17-222.el7.x86_64 (installed)
glibc = 2.17-222.el7
Available: glibc-2.17-196.el7.x86_64 (ultra-centos-7.4-base)
glibc = 2.17-196.el7
Available: glibc-2.17-196.el7_4.2.x86_64 (ultra-centos-7.4-updates)
glibc = 2.17-196.el7_4.2
Error: Package: gcc-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
Requires: libgomp = 4.8.5-16.el7_4.2
Installed: libgomp-4.8.5-28.el7_5.1.x86_64 (installed)
libgomp = 4.8.2-16.el7_5
libgomp = 4.8.5-28.el7_5.1
Available: libgomp-4.8.5-16.el7.x86_64 (ultra-centos-7.4-base)
libgomp = 4.8.5-16.el7
libgomp = 4.8.2-16.el7
Available: libgomp-4.8.5-16.el7_4.1.x86_64 (ultra-centos-7.4-updates)
libgomp = 4.8.5-16.el7_4.1
libgomp = 4.8.2-16.el7_4
Available: libgomp-4.8.5-16.el7_4.2.x86_64 (ultra-centos-7.4-updates)
libgomp = 4.8.5-16.el7_4.2
libgomp = 4.8.2-16.el7_4
Error: Package: 1:openssl-devel-1.0.2k-8.el7.x86_64 (ultra-centos-7.4-base)
Requires: openssl-libs(x86-64) = 1:1.0.2k-8.el7
Installed: 1:openssl-libs-1.0.2k-12.el7.x86_64 (installed)
openssl-libs(x86-64) = 1:1.0.2k-12.el7
Available: 1:openssl-libs-1.0.2k-8.el7.x86_64 (ultra-centos-7.4-base)
openssl-libs(x86-64) = 1:1.0.2k-8.el7
Error: Package: libkadm5-1.15.1-8.el7.x86_64 (ultra-centos-7.4-base)
Requires: krb5-libs(x86-64) = 1.15.1-8.el7
Installed: krb5-libs-1.15.1-19.el7.x86_64 (installed)
krb5-libs(x86-64) = 1.15.1-19.el7
Available: krb5-libs-1.15.1-8.el7.x86_64 (ultra-centos-7.4-base)
krb5-libs(x86-64) = 1.15.1-8.el7
Error: Package: krb5-devel-1.15.1-8.el7.x86_64 (ultra-centos-7.4-base)
Requires: krb5-libs(x86-64) = 1.15.1-8.el7
Installed: krb5-libs-1.15.1-19.el7.x86_64 (installed)
krb5-libs(x86-64) = 1.15.1-19.el7
Available: krb5-libs-1.15.1-8.el7.x86_64 (ultra-centos-7.4-base)
krb5-libs(x86-64) = 1.15.1-8.el7
Error: Package: libsepol-devel-2.5-6.el7.x86_64 (ultra-centos-7.4-base)
Requires: libsepol(x86-64) = 2.5-6.el7
Installed: libsepol-2.5-8.1.el7.x86_64 (installed)
libsepol(x86-64) = 2.5-8.1.el7
Available: libsepol-2.5-6.el7.x86_64 (ultra-centos-7.4-base)
libsepol(x86-64) = 2.5-6.el7
Error: Package: libselinux-devel-2.5-11.el7.x86_64 (ultra-centos-7.4-base)
Requires: libselinux(x86-64) = 2.5-11.el7
Installed: libselinux-2.5-12.el7.x86_64 (installed)
libselinux(x86-64) = 2.5-12.el7
Available: libselinux-2.5-11.el7.x86_64 (ultra-centos-7.4-base)
libselinux(x86-64) = 2.5-11.el7
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
下面是服务器的详细信息,有什么解决方法吗?
百胜润肠
Loaded plugins: changelog, fastestmirror, versionlock
Loading mirror speeds from cached hostfile
* epel: download.nus.edu.sg
* remi-php73: mirrors.thzhost.com
* remi-safe: mirrors.thzhost.com
repo id repo name status
MongoDB/7/x86_64 MongoDB Repository 62
*epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,463
ius/x86_64 IUS for Enterprise Linux 7 - x86_64 486
mongodb-org-3.4/7 MongoDB Repository 125
nodesource/x86_64 Node.js Packages for Enterprise Linux 7 - x86_64 106
remi-php73 Remi's PHP 7.3 RPM repository for Enterprise Linux 7 - x86_64 384
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 4,006
ultra-centos-7.4-base UltraServe CentOS-7.4 - Base 7,407
ultra-centos-7.4-extras UltraServe CentOS-7.4 - Extras 401
ultra-centos-7.4-updates UltraServe CentOS-7.4 - Updates 1,836
ultra-centos-7.x-newrelic-monitoring UltraServe CentOS-7.x - New Relic Infrastructure Monitoring Agent 10
ultra-centos-7.x-ultrarepo UltraServe CentOS-7.x - UltraServe Repo Packages 50
repolist: 28,336
rpm -q centos-release
centos-release-7-5.1804.el7.centos.2.x86_64
php --version
PHP 7.3.23 (cli) (built: Sep 29 2020 08:33:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.23, Copyright (c) 1998-2018 Zend Technologies
答案 0 :(得分:1)
remi-php73 Remi用于Enterprise Linux 7的PHP 7.3 RPM存储库-x86_64 384
好像您正在使用我的存储库,该存储库提供most extensions
因此,我建议不要简单地使用可用的RPM,而不要尝试从源代码构建它。
yum install php-pecl-mongodb
或者,如果您使用软件集合
yum install php73-pecl-mongodb
所述
顺便说一句,安装问题似乎与 ultra-centos-7.4-base (甚至不知道这是什么)有关,因为您已经安装了7.5版的软件包
答案 1 :(得分:0)
AWS EC2服务器似乎带有 ultra-centos-7.4-base 。
对于面临相同依赖性问题的人们,您可以考虑通过以下方式更改存储库来源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://wiki.docking.org/index.php/CentOS_7_Base.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
仔细检查您要回购的商品:
yum repolist
那么您应该可以运行yum install php-devel