6/15追記
ひとまずphp7.1、apacheのインストールができましたので最後にまとめておきます。
回答、助言を下さったみなさま、誠にありがとうございました。
前提・実現したいこと
Dockerを用いてphp7.1、apacheの環境構築をしたいです。目的としてはLaravelの開発環境を用意したいです。
その後MySQLなど準備したいものはあるのですが初手でつまづいてしまいました。
自分なりに色々と調べてみたのですが手詰まりとなってしまったので、知見をお借りできれば幸いです。
M1チップ搭載のMacを使用しているのが原因のようです。
色々試してはいるのですが解決には至ってないため、何かありましたらご提示いただけますと幸いです。
発生している問題・エラーメッセージ
CentOS 7 に PHP 7.1 を yum でインストールする手順
https://weblabo.oscasierra.net/centos7-php71-install/
こちらのページを参考にインストールを進めていたのですが、apacheとphp7.1を検索する段階で大量のエラーが発生します。
CLI
1#コンテナ作成 2$ docker run -it -d --name test centos:centos7 3 4#コンテナ内部へ移動 5$ docker exec -it test /bin/bash 6 7# EPELのリポジトリ情報を取得 8$ yum -y install epel-release 9 10# Remiのリポジトリ情報を取得 11$ yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 12 13# ここで大量のerror[14]404が発生。インストールに失敗 14$ yum search httpd php71
エラーメッセージ一部
CentOS
1# yum search httpd php71 2Loaded plugins: fastestmirror, ovl 3Loading mirror speeds from cached hostfile 4epel/aarch64/metalink | 9.2 kB 00:00:00 5 * base: ftp.yz.yamagata-u.ac.jp 6 * epel: ftp.iij.ad.jp 7 * extras: ftp.yz.yamagata-u.ac.jp 8 * remi-safe: ftp.riken.jp 9 * updates: ftp.yz.yamagata-u.ac.jp 10base | 3.6 kB 00:00:00 11extras | 2.9 kB 00:00:00 12http://ftp.riken.jp/Linux/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 13Trying other mirror. 14To address this issue please refer to the below wiki article 15 16https://wiki.centos.org/yum-errors 17 18If above article doesn't help to resolve this issue please use https://bugs.centos.org/. 19 20http://repo1.sea.innoscale.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 21Trying other mirror. 22http://mirrors.thzhost.com/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 23Trying other mirror. 24http://mirror.bebout.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 25[…省略…] 26Trying other mirror. 27https://remi.mirror.digitalpacific.com.au/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found 28Trying other mirror. 29http://mirror.innosol.asia/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.innosol.asia/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: (28, 'Connection timed out after 30006 milliseconds') 30Trying other mirror. 31http://mirrors.mediatemple.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.mediatemple.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: (28, 'Connection timed out after 30006 milliseconds') 32Trying other mirror. 33http://remi.xpg.com.br/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: remi.xpg.com.br; Unknown error" 34Trying other mirror. 35 36 37 One of the configured repositories failed (Safe Remi's RPM repository for Enterprise Linux 7 - aarch64), 38 and yum doesn't have enough cached data to continue. At this point the only 39 safe thing yum can do is fail. There are a few ways to work "fix" this: 40 41 1. Contact the upstream for the repository and get them to fix the problem. 42 43 2. Reconfigure the baseurl/etc. for the repository, to point to a working 44 upstream. This is most often useful if you are using a newer 45 distribution release than is supported by the repository (and the 46 packages for the previous distribution release still work). 47 48 3. Run the command with the repository temporarily disabled 49 yum --disablerepo=remi-safe ... 50 51 4. Disable the repository permanently, so yum won't use it by default. Yum 52 will then just ignore the repository until you permanently enable it 53 again or use --enablerepo for temporary usage: 54 55 yum-config-manager --disable remi-safe 56 or 57 subscription-manager repos --disable=remi-safe 58 59 5. Configure the failing repository to be skipped, if it is unavailable. 60 Note that yum will try to contact the repo. when it runs most commands, 61 so will have to try and fail each time (and thus. yum will be be much 62 slower). If it is a very temporary problem though, this is often a nice 63 compromise: 64 65 yum-config-manager --save --setopt=remi-safe.skip_if_unavailable=true 66 67failure: repodata/repomd.xml from remi-safe: [Errno 256] No more mirrors to try. 68http://ftp.riken.jp/Linux/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 69[…省略…] 70https://mirror.hoster.kz/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found 71https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found 72https://remi.mirror.digitalpacific.com.au/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found 73http://mirror.innosol.asia/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.innosol.asia/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: (28, 'Connection timed out after 30006 milliseconds') 74http://mirrors.mediatemple.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.mediatemple.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: (28, 'Connection timed out after 30006 milliseconds') 75http://remi.xpg.com.br/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: remi.xpg.com.br; Unknown error"
試したこと
調べたところ同様のエラーの事例は数多くありましので、キャッシュの削除やネットワーク通信の確認をしましたが問題は解決しませんでした。
#キャッシュの削除 $ yum clean all $ rm -rf /var/cache/yum/* #ネットワーク通信の確認 $ ping www.yahoo.co.jp
試したこと②
ダウンロードに失敗しているミラーサイトのURLを見るとaarch64になっているがremiからはaarch64の配布を行っていない(x86_64に書き換えると有効なURLが見つかる)
$ docker run -it -d --platform linux/amd64 --name centos7 centos:centos7 $ docker exec -it centos7 /bin/bash $ uname -m x86_64
X86_64でCentOSが起動できているかと思ったのですが
# yum -y install epel-release # yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum search httpd php71 Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile 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. (以下省略)
やはり同様のエラーが出てしまいました。
補足情報
mirrorとして出てくるURLが全て無効なものなので、根本的に何か方法を間違えているのかと思います。
https://shsm385.hatenablog.com/entry/2019/09/20/102722
こちらのサイトが参考になるかと思ったのですが、
#CentOS-Base.repo [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/altarch/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64 #released updates
例えばこのCentOS-Base.repoをどのように修正すればいいのか、
あるいはエラーの最初に出てくるhttp://ftp.riken.jp/Linux/remi/enterprise/7/safe/aarch64/repodata/repomd.xmlのURLが404ならばどのようにして正しいURLを探せば良いのか、解決の方向性が分からず困っております。
また、PHPとapache導入のコマンドをDockerfileにまとめたいと思っているため、viで編集するというのは根本的な解決ではないのかなと感じております。
長くなりましたがCentOS7にphp7とapacheを導入するにあたり、御助言いただければ幸いです。
よろしくお願いします。
###解決方法
CLI
1# docker run -d --privileged --platform linux/amd64 --name test centos:centos7 /sbin/init 2# docker exec -it test /bin/bash 3# yum install epel-release -y 4# vi /etc/yum.repos.d/epel.repo
epelをインストールした段階でyumが正常に動かなくなっていました
https://www.mapleharp.jp/342/
ここを参考に編集します。
baseurlのコメントアウトを解除し、metalinkをコメントアウトしました。
CLI
1# yum update -y 2# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 3# yum search httpd php71 4# yum -y install httpd php71 php71-php 5# systemctl enable httpd.service 6# systemctl start httpd.service 7# php71 -v 8PHP 7.1.33 (cli) (built: Apr 28 2021 09:50:40) ( NTS ) 9Copyright (c) 1997-2018 The PHP Group 10Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
ひとまずphpとapacheがインストール出来ましたのでBAさせて頂きました。
回答2件
あなたの回答
tips
プレビュー