我正在尝试设置一个Web服务器来托管Moodle,并且在尝试安装PHP7时遇到了问题。
我目前正在使用VirtualBox来托管CentOS 7.4。默认情况下,CentOS附带PHP 5.4.16。现在,根据我的阅读,从头开始升级和安装的选项是不同的。我曾尝试关注多个指向PHP7的网站,但没有运气。大多数指南告诉您安装两个存储库,Remi和EPEL。我遇到的主要问题是,每次安装epel时,yum会破坏或阻止我安装另一个包。
[root@localhost ~]# yum update
Loaded plugins: fastestmirror, langpacks
Could not retrieve mirrorlist http://mirrorlist.centos.org/?
release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot find a valid baseurl for repo: base/7/x86_64
我尝试了很多方法来解决这个问题。一些主要方式是:
yum clean all
yum --enablerepo=base clean metadata
rm -rf /var/cache/yum
我使用
确实绕过了一两次yum --enablerepo=epel clean metadata
以及
sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
我知道我尝试了更多的方法,但我不记得所有这些方法。故事的道德是他们通常不会帮助。有时yum工作正常,我会全部运行yum clean,它会再次停止运行。
方法2:
我尝试的另一种方法是从各自的网站安装rpm包。我使用WinSCP将文件传输到我的VM,然后使用yum来安装它们。一切运作良好,我得到epel和remi安装。但是,yum无法正常工作。
有时它会安装软件包,但有些软件将无法安装。我已经将yum超时值设置得更高,而其他软件包也可以通过,但有些还没有。然后我清理了yum缓存,再次看到有五个选项的消息。
方法3: 我找到了从https://wiki.centos.org/HowTos/php7安装PHP 7的文档,我认为它必须有效,因为这是受支持的方式。
我一直跟着直到第一部分。
root @ centos7-vm: ~ # yum -y install centos-release-scl.noarch
我将收到错误消息,指出无法从镜像下载软件包,或者如果yum已经给我发问题,它将显示清除yum的五个选项。
方法4:
从源代码构建PHP是我尝试的另一种选择。我导航到http://php.net/downloads.php并下载了tarball并使用WinSCP将其放到我的机器上。
我解压缩了文件,然后导航到了php目录。
我试图通过使用./configure来解决问题,但它声明我需要gcc。
我尝试使用yum install gcc安装gcc,但无法安装所有软件包。
我制作了一个新的VM并立即尝试安装gcc,但仍然没有运气。
有时候我明白为什么百胜无效,有时候我会把头撞在桌子上。
是否有在CentOS上获取PHP 7的标准化方法?任何人都可以链接准确的指南吗?
CentOS与PHP 5.4打包而不是7打包的原因是什么?
我觉得我已经尝试了几乎所有的东西,但我知道有一些网页我还没有找到。我想我做了我今天可能做的所有研究。
我确定我的问题可能不是最好的结构,可能会有点令人困惑,但我现在已经开展了大约6-7个小时的工作。
这是我的第一篇文章,所以如果它不完美我会道歉。
答案 0 :(得分:0)
在我的vps中,我刚刚添加了remi repo,
$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ rpm -Uvh remi-release-7.rpm
或
$ rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
然后在remi.repo和remi-php72.repo文件上启用/etc/yum.repos.d/。
稍后更新,并安装php及其库。
epel不是必要的,但是在正式的回购中。你只需要做一个
$ yum install epel-release
并在/etc/yum.repos.d /
中启用该文件你检查一些日志文件吗?看看是否有任何错误