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

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

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

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Apache

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

720閲覧

【AWS】EC2インスタンスのパブリックDNSに接続したい

manape

総合スコア12

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Apache

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/08/15 13:13

編集2020/08/15 21:31

前提・実現したいこと

EC2インスタンスのパブリックDNSに接続できなくなってしましました。
再度接続できるようにしたいです。

SSH接続まではできていて、Apacheを立ち上げる時にステータスがfailedになっているので、そこが問題かと思われます。

発生している問題・エラーメッセージ

sudo service httpd statusと打ったときの記述は下記です。

● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/httpd.service.d └─php-fpm.conf Active: failed (Result: exit-code) since 土 2020-08-15 12:35:43 UTC; 12s ago Docs: man:httpd.service(8) Process: 6303 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE) Main PID: 6303 (code=exited, status=1/FAILURE) 8月 15 12:35:43 ip-172-31-35-98.ap-northeast-1.compute.internal systemd[1]: ... 8月 15 12:35:43 ip-172-31-35-98.ap-northeast-1.compute.internal httpd[6303]: ... 8月 15 12:35:43 ip-172-31-35-98.ap-northeast-1.compute.internal systemd[1]: ... 8月 15 12:35:43 ip-172-31-35-98.ap-northeast-1.compute.internal systemd[1]: ... 8月 15 12:35:43 ip-172-31-35-98.ap-northeast-1.compute.internal systemd[1]: ...

ネットで調べても記事に載っている事象がバラバラで、解決方法に辿り着けませんでした。。
ここから原因を特定できますでしょうか…?

補足情報

元々静的サイトを下記のようにホスティングしていて、今回新たに同じインスタンスでWordPressとか入れられるのかなと思い色々いじってしまいました。

  • Route53で独自ドメインと紐付け
  • S3でホスティング
  • basic認証かけたいと思いhttp.confをいじった
  • home/ec2-user直下にwordpressインストールした(この確認をしようと思ってできなかったのが事の発端です)

phpのインストールは済んでいますが、元あったverがphp5系だったのをバージョンアップしたので、その際に必要な手順が抜けていた可能性もあります。

PHP 7.3.19 (cli) (built: Jul 2 2020 23:17:49) ( NTS )

参考

参考にしたサイトはありすぎるのですが、主にこちらを見ながら上記の内容をいじりました。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hosting-wordpress.html
https://qiita.com/zukakosan/items/0e0e30107ecf8adc0b02
https://www.yamamanx.com/amazon-linux-wordpress-php-53-72/
★解決時にこちらのサイトも参考にしました。

AWSやネットワークの知識が浅く、不備があったらすみません。
お知恵をお借りできますと幸いです。宜しくお願いいたします。

構文チェックの内容

sudo apachectl configtestを実行した結果を追記させていただきます。

httpd: Syntax error on line 57 of /etc/httpd/conf/httpd.conf: Cannot load modules/libphp5.so into server: /etc/httpd/modules/libphp5.so: cannot open shared object file: No such file or directory

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukky1201

2020/08/15 13:58

まずはapache設定ファイルの構文チェックをして結果を追記してください $ sudo apachectl configtest
manape

2020/08/15 14:15

ありがとうございます。 追記させていただきました。
yu_1985

2020/08/15 15:09

参考にした手順があるならそれを載せてください。 あと、ホームディレクトリに外からアクセスが必要なソースを置くのはやめましょう。
yukky1201

2020/08/15 15:31

php関連ファイルが見つからないとエラーが出てます。phpのインストールは実施済みですか?
manape

2020/08/15 20:04

ありがとうございます。 いずれも追記させていただきました。 ホームディレクトリもwp消去してきました。
guest

回答1

0

ベストアンサー

エラーから読み取れるところだと、必要なライブラリが恐らく入っていない…と言いたいところですが、php7ナノにも関わらずphp5のライブラリがないというエラーが出ているのが気になります。
httpd.confの内容がちょっと怪しいかと思います。

あと、AWSドキュメントのとおりにやっていればそもそもec2-userのホームディレクトリ直下にインストールすることにならないはずなのですが…。

ホームディレクトリに外からアクセスするものを置いてはいけない理由は、通常ホームディレクトリは権限的にそのユーザとルートユーザ以外のアクセスができないように設定されているため、そこに配置するとApacheやnginxのユーザがアクセスできない、ということがあります。
じゃあアクセスできるように権限を設定すればいいじゃないか、と思うかもしれませんが、ホームディレクトリに不要な権限をつけるとそのユーザでsshしようとしたときに権限のエラーで弾かれるようになります。(これはsshdの仕様です)
ホームディレクトリはあくまでそのユーザが使うためのもので、他のユーザからアクセスさせるのは正しくないでしょう。
ドキュメントでも/var/www/html配下にコピーする手順があるはずです。

安易にホームディレクトリ上でアプリを動かす人は本当に多いんですけどね…。

そもそもですけど、いきなり色んなものから設定を持ってこようと思わないほうがいいです。混乱するだけなので。
まずはAWSのドキュメントをそのままなぞってみてください。
恐らくですが、前提条件のところに書いてあるこちらのページの設定が足りていません。

あと、Amazon LinuxではなくAmazon Linux2を使ってください。
Amazon Linuxは近くサポートが切れます。

投稿2020/08/15 20:51

yu_1985

総合スコア7447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manape

2020/08/15 21:29

詳しくご回答いただき、ありがとうございました。 おっしゃる通り、必要なライブラリが入っていなかった(入れようとしたのですがepelリポジトリがおそらく有効になっておらず「利用できません」となっていた)のと、http.confに`LoadModule php5_module modules/libphp5.so`という記述があり、php5を読みに行ってしまっているのが原因でした。 上記をphp73に変更してライブラリも入れたところ、無事表示されました! まずはドキュメント通りコツコツビルドするのを心がけます…。 Linux2を使うようにもしたいと思います。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問