LoginSignup
3
3

More than 3 years have passed since last update.

AWSでWordPressを始めてハマった話

Last updated at Posted at 2020-02-02

はじめに

突然「よーしパパAWSでWordPress頼んじゃうぞー」と思い立つ。

まずは検索。
https://www.google.com/search?q=aws+wordpress

情報いっぱいあるし、余裕だな

アカウントを作る

AWS アカウント作成の流れ
簡単そうだな

スケーラブルなウェブサイトの構築方法:フェーズ 1
サーバー 1 台構成で WordPress 環境を構築

スケーラブルにはしないのでサブネットの設定などは必要無いのだが、特に考えずにチュートリアルの通り進める。
見本の画面と実際の画面がところどころ違うが、大した問題ではない。
簡単すぎる

WordPressでハマる

無事にインスタンスが起動した。フェーズ 1-5でWordPressの操作を始めるのだが、ログインできない。
wp0.jpg
データベースのパスワード・・・あったか?そんなの。
説明にはこう書いてある。

作成した MySQL の DB 設定に基づき、設定します。

1.「admin」と入力します。
2. 指定した DB 接続用パスワード (wordpress) を入力します。
3.「送信」をクリックします。

空欄とかコンソール・ログインパスワードなど色々試したが通らない。

WordPress ウェブサイトの起動
AWSマネジメントコンソール->EC2->インスタンス->アクション->インスタンスの設定->システムログの取得 でパスワードを探したが見当たらない。
30分ほど調べてwp-config.phpをイジる方針に変更

SSHでハマる

teratermでログインする。秘密鍵ファイルec2handson.pemがあったのでrootログインできると思っていたがログインできない。
思い当たるユーザ名をいくつか試したが通らない。ナゼだ・・・?
何度か試していると何かメッセージが出てる事に気がついた。

Please login as the user "ec2-user" rather than the user "root".

ん? ec2-user・・・なんだそれは?
よく見たらステップ 4-1書いてあった
ec2shuchu.jpg

ユーザー名: ec2-user

無事にSSHにログインできた。
EC2 Linux インスタンスの root パスワードを設定または変更するにはどのようにしたらよいですか?
root権限で作業するのは邪道と聞いた事がある。するけど。
Amazon Linuxはよく知らないので手探り。
httpd.confの場所を探す。

# find / -name httpd.conf
/etc/httpd/conf/httpd.conf

DocumentRootの場所を探す。

# grep DocumentRoot /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"

CentOSに近い感じ。WordPressの様子を調べる。

# ll /var/www/html
total 220
-rwxrwxrwx  1 apache apache   420 Feb  2 12:13 index.php
-rwxrwxrwx  1 apache apache 19935 Feb  2 13:30 license.txt
-rwxrwxrwx  1 apache apache 10180 Feb  2 13:30 readme.html
-rwxrwxrwx  1 apache apache  6939 Feb  2 13:30 wp-activate.php
drwxrwxrwx  9 apache apache  4096 Feb  2 13:30 wp-admin
(略)

あれ。wp-config.phpが無い。つまりインストールが終わってない。
という事はデフォルトのパスワードがどこかに書いてあるのでは?
・・・ハッ!
passwp.jpg

Apacheでハマる

無事にWordPressにログインできた。更新を掛けるとPHP5.5が古いと指摘された。
リポジトリにphp7.3があるか確認。

# yum list | grep php73
php73.x86_64             7.3.11-1.21.amzn1          @amzn-updates
php73-cli.x86_64         7.3.11-1.21.amzn1          @amzn-updates
php73-common.x86_64      7.3.11-1.21.amzn1          @amzn-updates
php73-fpm.x86_64         7.3.11-1.21.amzn1          @amzn-updates

ありそう。まずはApacheを止める。

# service httpd stop
Stopping httpd:                             [FAILED]

ん? 止まらない。既に止まってるのか?

# service httpd start
Starting httpd: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs                       [FAILED]

Apacheは止まってるが何かのプロセスがport80を使ってる。なんだ?
プロセス番号を調べてkillしてみよう。

# lsof -i | grep http
nginx   2811   root  6u  IPv4  11918   0t0  TCP *:http (LISTEN)
nginx   2811   root  7u  IPv6  11919   0t0  TCP *:http (LISTEN)
nginx   2814  nginx  6u  IPv4  11918   0t0  TCP *:http (LISTEN)
nginx   2814  nginx  7u  IPv6  11919   0t0  TCP *:http (LISTEN)

nginx.jpg
nginxだこれ!

解決

nginxと分かればあとは楽だろう。
最新のWordPress向けにPHPをバージョンアップする
AWS EC2 + CentOS 7.6 + Apache 2.4 + PHP 7.3 + MySQL 8.0 でWordPress5.1を動かす

# service nginx stop
# service php-fpm stop
# yum remove php*
# yum remove httpd*
# yum clean all
# yum install php73 php73-cli php73-common php73-fpm php73-imap php73-json php73-mbstring php73-mysqlnd php73-opcache php73-pdo php73-process php73-xml
# vi /etc/php-fpm-7.3.d/www.conf
user = apache
group = apache
listen = 127.0.0.1:9000
# service php-fpm start
# service nginx start

PHP7.3になったがWordPressの更新でエラーが出た。
WordPress更新時にFTP情報入力画面が表示される場合の対処方法3つ
所有者を変更して解決。

# chown -R apache:apache /var/www/html/

resultwp.jpg
めでたしめでたし😇

まとめ

  • AWSは誰でも簡単にWordPressが設置できる
  • ユーザー名は ec2-user
  • デフォルトのパスワードは説明書に書いてある
  • httpdはnginx
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3