質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

解決済

【CentOS/Docker/M1 Mac】php7.1とapacheを導入の際、[error14]404エラーが発生する

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

2回答

0評価

0クリップ

5110閲覧

投稿2021/06/10 07:15

編集2021/06/15 00:08

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

#コンテナ作成 $ docker run -it -d --name test centos:centos7 #コンテナ内部へ移動 $ docker exec -it test /bin/bash # EPELのリポジトリ情報を取得 $ yum -y install epel-release # Remiのリポジトリ情報を取得 $ yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # ここで大量のerror[14]404が発生。インストールに失敗 $ yum search httpd php71

エラーメッセージ一部

CentOS

# yum search httpd php71 Loaded plugins: fastestmirror, ovl Loading mirror speeds from cached hostfile epel/aarch64/metalink | 9.2 kB 00:00:00 * base: ftp.yz.yamagata-u.ac.jp * epel: ftp.iij.ad.jp * extras: ftp.yz.yamagata-u.ac.jp * remi-safe: ftp.riken.jp * updates: ftp.yz.yamagata-u.ac.jp base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 http://ftp.riken.jp/Linux/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. To address this issue please refer to the below wiki article https://wiki.centos.org/yum-errors If above article doesn't help to resolve this issue please use https://bugs.centos.org/. http://repo1.sea.innoscale.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http://mirrors.thzhost.com/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http://mirror.bebout.net/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found […省略…] Trying other mirror. https://remi.mirror.digitalpacific.com.au/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. http://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') Trying other mirror. http://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') Trying other mirror. http://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" Trying other mirror. One of the configured repositories failed (Safe Remi's RPM repository for Enterprise Linux 7 - aarch64), 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=remi-safe ... 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 remi-safe or subscription-manager repos --disable=remi-safe 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=remi-safe.skip_if_unavailable=true failure: repodata/repomd.xml from remi-safe: [Errno 256] No more mirrors to try. http://ftp.riken.jp/Linux/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found […省略…] https://mirror.hoster.kz/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found https://remi.mirror.digitalpacific.com.au/enterprise/7/safe/aarch64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found http://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') http://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') http://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

# docker run -d --privileged --platform linux/amd64 --name test centos:centos7 /sbin/init # docker exec -it test /bin/bash # yum install epel-release -y # vi /etc/yum.repos.d/epel.repo

epelをインストールした段階でyumが正常に動かなくなっていました
https://www.mapleharp.jp/342/
ここを参考に編集します。
baseurlのコメントアウトを解除し、metalinkをコメントアウトしました。

CLI

# yum update -y # yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum search httpd php71 # yum -y install httpd php71 php71-php # systemctl enable httpd.service # systemctl start httpd.service # php71 -v PHP 7.1.33 (cli) (built: Apr 28 2021 09:50:40) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

ひとまずphpとapacheがインストール出来ましたのでBAさせて頂きました。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

退会済みユーザー

退会済みユーザー

2021/06/10 07:38 編集

dockerから外に出られないようなネットワーク設定になっていると思うので、docker runするときに--netオプションを補って使えるネットワークを指定したら直りそうな気がするけど、自分ではやったことがないし責任が取れないので回答にはしません。「docker run ネットワーク設定」でそれなりに記事があります。
退会済みユーザー

退会済みユーザー

2021/06/10 07:37

ご意見ありがとうございます。 curlなどもやってみたのでネットワークは有効かと思うのですが、また別の問題があるということでしょうか。 --netを使う方法についても調べてみますので、何か進展あれば投稿させて頂きます。 ご意見ありがとうございます。
FKM

2021/06/10 08:37

yumには普通にアクセスできるんでしょうか? 見たところ、yumのミラーサイトのリポジトリが死んでる気がしますが…
yukky1201

2021/06/10 08:57 編集

M1チップのMacを使用でしょうか? その場合、アーキテクチャがx86_64ではなくaarch64と認識されてしまい、aarch64のパッケージを探しに行ってしまう。しかし、該当のディレクトリは存在しない。そのため、404エラーになってしまう。というのが原因です。 別な方も質問もありましたが、M1チップMacでx86_64アーキテクチャとして認識させる方法は、残念ながら不明でした。
退会済みユーザー

退会済みユーザー

2021/06/11 01:37

追記しておきべきでした。M1チップのMacbookを使用しております。 Keynoさんの回答を見てもそうだったのですが原因が分かりすっきりしました。 確かに下記のようにaarch64の部分を書き換えるとパッケージを見つけることができました。 ありがとうございます!
FKM

2021/06/11 03:02

クローズする場合は情報提供者にBAを返しておいてください。あとあとの閲覧者も困りませんので。
退会済みユーザー

退会済みユーザー

2021/06/11 05:53

問題解決ができていないので、このままにしておいた方が良いかと思ったのですがいかがでしょうか? M1 Macで同様のエラーに阻まれている人も多いため、解決策が見つかれば後の方々の役にも立つかなと思っております。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです