Я пытаюсь настроить веб-сервер для размещения 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 all, и он снова перестает работать.
Метод 2:
Еще один метод, который я попробовал, - установка пакетов rpm с соответствующих веб-сайтов. Я использовал WinSCP для передачи файлов на мою виртуальную машину, а затем использовал yum для их установки. Все работает хорошо, и я получил epel и remi для установки. Но тогда yum не работает должным образом.
Иногда он устанавливает пакеты, но некоторые не устанавливаются. Я установил значение тайм-аута yum выше, и другие пакеты проходят, но некоторые все еще не делают. Затем я очищаю кеш yum и снова вижу сообщение с пятью опциями.
Метод 3:
Я нашел документацию по установке PHP 7 из https://wiki.centos.org/HowTos/php7 и подумал, что она должна работать, потому что это поддерживаемый способ.
Я следовал до самой первой части.
root @ centos7-vm: ~ # yum -y install centos-release-scl.noarch
Я либо получу сообщение об ошибке, в котором говорится, что пакет не может быть загружен с зеркала, либо, если yum уже дает мне проблемы, он покажет пять вариантов очистки yum.
Метод 4:
Сборка PHP из исходных текстов была еще одним вариантом, который я попробовал. Я перешел на http://php.net/downloads.php, скачал tarball и использовал WinSCP, чтобы установить его на мою машину.
Я распаковал файлы и перешел в каталог php.
Я пытался добиться успеха с помощью ./configure, но там говорилось, что мне нужен gcc.
Я пытался установить gcc с помощью yum install gcc, но не смог установить все пакеты.
Я сделал новую виртуальную машину и сразу попытался установить gcc, но все равно не повезло.
Резюме
Иногда я понимаю, почему yum не работает, иногда я бью головой о свой стол.
Существует ли стандартизированный метод получения PHP 7 на CentOS? Может кто-нибудь связать точное руководство?
По какой причине CentOS поставляется с PHP 5.4, а не с 7?
Я чувствую, что перепробовал почти все, но знаю, что есть какая-то веб-страница, которую я еще не нашел. Я думаю, что я сделал обо всех исследованиях, которые я мог бы сегодня.
Я уверен, что мой вопрос, вероятно, не структурирован лучше и может быть немного запутанным, но я работаю над этим уже 6-7 часов.
Это мой первый пост, поэтому я прошу прощения, если он не идеален.