1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon linux 2023 にWordpress6.4.3をインストール

Posted at

なにしたの

とあるミッションがあり、Wordpressにプラグインを入れて動作確認をすることが必要になりました。
最近あまりwordpressを触っていないので、AWS上に軽く立てて動かそうというのが狙いです。
以下の解説はインストール開始以降に絞っており、事前にAWSでインスタンスを立ててnetwork設定したりするところは大いに割愛しています。

参考にしたもの

いろいろバージョン

EC2
Amazon Linux 2023 AMI 2023.3.20240304.0 x86_64 HVM kernel-6.1
mysql
Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
php
php8.2-mysqlnd-8.2.15-1.amzn2023.0.1.x86_64
wordpress
6.4.3

インストール前提事項

aws上にEC2を立てています。
VPC、interet gateway、SecurityGroupはもともと作ってあります。

EC2を立てた後、コンソール上public ipやホスト名が見当たらないなーと少々悩みましたが、
EC2インスタンス作成の際、VPCのpublic ipを自動で取得するようになっていませんでした。(忘れがち)
インスタンスを立て直し、正しく設定してssh接続が可能になりました。

wordpressを拾ってきて解答

EC2にsshログイン後、ec2-userのhomeにてバイナリを拾ってきて解凍。

wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz

mysqlのインストール

よくわからないので適当にググって開始。
リポジトリに接続し、community-serverをインストール。

sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm 
sudo yum install -y mysql-community-server

エラーが出たので、以下を実行。なんでそうしたのかは覚えていないけれど・・・

sudo yum install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm

その後

sudo yum install -y mysql-community-server

すると

Import of key(s) didn't help, wrong key(s)?
~
You can remove cached packages by executing 'yum clean packages'.
Error: GPG check FAILED
[ec2-user@ip-10-0-8-113 ~]$

とか出る。GPGが整合取れてないということらしい。

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo yum update
sudo yum install -y mysql-community-server

で成功。

起動とステータス確認

sudo systemctl start mysqld
sudo systemctl status mysqld

めでたく起動しました。
なお、mysqlのrootの初期パスワードはこの中に入ってます。

sudo cat /var/log/mysqld.log

ログを漁ると、パスワードが見つかります。

mysqlのrootのパスワードを変更しよう

rootのパスワード変更が必要と思い、これもググって拾ったスクリプトを実行してみたが

mysql> set password for root@localhost=password('rootの新パスワード');

エラーになっちまった。ので調べてちゃんとSQLを投げる。
USER()でログインDBユーザのことを示すそうです。へえー。

mysql> ALTER USER USER() IDENTIFIED BY 'rootの新パスワード';
Query OK, 0 rows affected (0.01 sec)

うまく行きました。ではwodpressユーザを作成

mysql>
mysql> CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpressパスワード';
Query OK, 0 rows affected (0.02 sec)

これでmysqlのrootのパスワードが変更、wordpressユーザ作成に成功しました。

wordpress用のdatabaseの作成

CREATE DATABASE `wordpress-db`;
GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
FLUSH PRIVILEGES;

databaseを作った後、PHPからmysqlへの接続用にwp-config.phpを修正する。

nano wordpress/wp-config.php

うーん、nanoはどうにも使いづらい。昔ながらのvim(vi)がらくちん。
今の人はvimなんか使わないのかな・・・。

DB_NAME
DB_USER
DB_PASSWORD
の設定を実施。

あとは認証鍵類(ランダム文字列)の再設定。AUTH_KEY,SALT等を更新

define('AUTH_KEY',         'ひみつ');
define('SECURE_AUTH_KEY',  'ひみつ');
define('LOGGED_IN_KEY',    'ひみつ');
define('NONCE_KEY',        'ひみつ');
define('AUTH_SALT',        'ひみつ');
define('SECURE_AUTH_SALT', 'ひみつ');
define('LOGGED_IN_SALT',   'ひみつ');
define('NONCE_SALT',       'ひみつ');

と、変更しました。

apacheインストールとwordpress一式をコピー

apacheが入っていないことに気づいたのでインストール。
ec2-userのhomeに展開されてるwordpress一式をドキュメントルートにコピー
そんでもってhttpd.confを変更

sudo yum install httpd
sudo cp -r wordpress/* /var/www/html/

sudo vim /etc/httpd/conf/httpd.conf

<Directory "/var/www/html"> AllowOverride None 行を AllowOverride All に変更

これは問題なく行きましたね。

グラフィックライブラリのインストール

sudo yum install php-gd

実行後、検証

[ec2-user@ip-10-0-8-113 ~]$ sudo yum list installed php-gd
Error: No matching Packages to list

なぜかエラーに?

[ec2-user@ip-10-0-8-113 ~]$ sudo yum list installed php8.2-gd
Installed Packages
php8.2-gd.x86_64               8.2.15-1.amzn2023.0.1                @amazonlinux
[ec2-user@ip-10-0-8-113 ~]$

インストールには問題はなく、単にphp8.2で検索しないと出てこないという事でした

apahe関連の権限付与

この辺は定番かと思われますが、ちゃんとやらないとセキュリティあぶない。
合ってるのかな?知らんけど、機密はないので参考資料にある通りでいいや。

sudo chown -R apache /var/www
sudo chgrp -R apache /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0644 {} \;

めでたく、apache,mysql起動状態となりました。
が!publicのURLにブラウザからアクセスしても見れません。当然Networkの問題はあるだろうとみて、
セキュリティグループのルールにインバウンドのhttpを追加してみました。これは成功。443,8000はあるけど80はなかったみたい。

でもブラウザにhttpの応答はあるものの、画面にはit works! しか表示されません。これ何だっけ?apacheが動きましたよってことだったかな?
ドキュメントルートを再確認し、index.phpを表示しようとしたところ、index.phpのソースがなぜかそのまま表示されます。

いろいろ考えてみたが PHPがなかった ようです。
要するに、Amazon linux 2023は素では何にも入ってないってことですね。

sudo yum install php

Installed:
  libsodium-1.0.18-13.amzn2023.0.1.x86_64
  libxslt-1.1.34-5.amzn2023.0.2.x86_64
  nginx-filesystem-1:1.24.0-1.amzn2023.0.2.noarch
  php8.2-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-cli-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-fpm-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-mbstring-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-opcache-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-pdo-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-process-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-sodium-8.2.15-1.amzn2023.0.1.x86_64
  php8.2-xml-8.2.15-1.amzn2023.0.1.x86_64

Complete!

これでめでたくphpの画面らしきものは出たのですが、
mysqlがないよ みたいな事でブラウザ画面上、怒られてます。
ということで、軽くググってphp8.2のインストール手順のyum installを投げてみる。

sudo yum install php8.2-cli php8.2-common php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath

でも、どうしてもphp8.2-mysqlがインストールされず蹴られちゃうんですよね。
ということで調べたところ、 mysqliを入れるべし との情報を得ました

mysqliのインストール

sudo yum install php-mysqli
~
Installed:
  php8.2-mysqlnd-8.2.15-1.amzn2023.0.1.x86_64

やりました!

最後に再起動

sudo systemctl restart httpd

以上でwordpressの初画面の表示が成功いたしましたとさ。

めでたしめでたし。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?