先日正式リリースされたAmazonLinux2。今回はこちらでWordPressを動かしてみます。
AmazonLinux2について
軽くの説明ですが、AmazonLinux2はcentOS7ベースで作られており、最終リリースから5年間の長期サポートが保証されています。
詳しい特徴はコチラ
操作感はcentos7とほぼ変わりませんが、Extras Libraryが入っていたり、レポジトリがamzncore2だったりするので、インストールなどは異なります。
今回はできる限りデフォルトで入っているレポジトリだけで(mysqlがないのでそこだけ追加)AmazonLinux2にWordPressを入れて動作させるところまで行いたいと思います。
レッツインストール
さて、まずは構成です。WordPressですので、nginx+PHP7+php-fpm+MySQL5.7で作ってみましょうか。AmazonLinux2を起動して接続するまでは割愛。
まずは必要なもののインストールから。Extrasに入っているものを覗いてみます。
[root@ip-xxxxxxxxxx ~]# amazon-linux-extras list 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12 available [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 postgresql10 available [ =10 ] 6 python3 available [ =3.6.2 ] 7 redis4.0 available [ =4.0.5 =4.0.10 ] 8 R3.4 available [ =3.4.3 ] 9 rust1 available \ [ =1.22.1 =1.26.0 =1.26.1 ] 10 vim available [ =8.0 ] 11 golang1.9 available [ =1.9.2 ] 12 ruby2.4 available [ =2.4.2 =2.4.4 ] 13 nano available [ =2.9.1 ] 14 php7.2 available [ =7.2.0 =7.2.4 =7.2.5 ] 15 lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ] 16 libreoffice available [ =5.0.6.2_15 ] 17 gimp available [ =2.8.22 ] 18 docker=latest enabled [ =17.12.1 =18.03.1 ] 19 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 20 GraphicsMagick1.3 available [ =1.3.29 ] 21 tomcat8.5 available [ =8.5.31 ]
nginxとphp7.2がこちらにあったので入れます。
$ amazon-linux-extras install nginx1.12 $ amazon-linux-extras install php7.2
こちらのコマンドでインストールした後にlistを再確認
[root@ip-xxxxxxxxxxxxx ~]# amazon-linux-extras list 0 ansible2 available [ =2.4.2 ] 1 emacs available [ =25.3 ] 2 memcached1.5 available [ =1.5.1 ] 3 nginx1.12=latest enabled [ =1.12.2 ] 4 postgresql9.6 available [ =9.6.6 =9.6.8 ] 5 postgresql10 available [ =10 ] 6 python3 available [ =3.6.2 ] 7 redis4.0 available [ =4.0.5 =4.0.10 ] 8 R3.4 available [ =3.4.3 ] 9 rust1 available \ [ =1.22.1 =1.26.0 =1.26.1 ] 10 vim available [ =8.0 ] 11 golang1.9 available [ =1.9.2 ] 12 ruby2.4 available [ =2.4.2 =2.4.4 ] 13 nano available [ =2.9.1 ] 14 php7.2=latest enabled [ =7.2.0 =7.2.4 =7.2.5 ] 15 lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 ] 16 libreoffice available [ =5.0.6.2_15 ] 17 gimp available [ =2.8.22 ] 18 docker=latest enabled [ =17.12.1 =18.03.1 ] 19 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 20 GraphicsMagick1.3 available [ =1.3.29 ] 21 tomcat8.5 available [ =8.5.31 ]
enabledになっていることがわかります。ちなみに、この2つを入れた時点でphp-fpmも入ります。
yumで見てみましょう。
[root@ip-xxxxxxxxxx ~]# yum list installed | grep "php" php-cli.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2 php-common.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2 php-fpm.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2 php-json.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2 php-mysqlnd.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2 php-pdo.x86_64 7.2.5-3.amzn2.0.2 @amzn2extra-php7.2
あとはmysqlを入れればインストール系は終わり。・・・なんですけど、AmazonLinux2でmysqlを入れようとするとmariadbが入ってくるので、こちらだけレポジトリを追加します。
$ yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y $ yum-config-manager --disable mysql80-community $ yum-config-manager --enable mysql57-community
これでmysql57のレポジトリが追加完了。yumで入れられそうか見てみます。
[root@ip-xxxxxxxxxxxx ~]# yum list available | grep "mysql" apr-util-mysql.x86_64 1.6.1-5.amzn2 amzn2-core dovecot-mysql.x86_64 1:2.2.10-8.amzn2 amzn2-core freeradius-mysql.x86_64 3.0.13-8.amzn2 amzn2-core libdbi-dbd-mysql.x86_64 0.8.3-16.amzn2 amzn2-core mysql-community-client.i686 5.7.23-1.el7 mysql57-community mysql-community-client.x86_64 5.7.23-1.el7 mysql57-community mysql-community-common.i686 5.7.23-1.el7 mysql57-community mysql-community-common.x86_64 5.7.23-1.el7 mysql57-community mysql-community-devel.i686 5.7.23-1.el7 mysql57-community mysql-community-devel.x86_64 5.7.23-1.el7 mysql57-community mysql-community-embedded.i686 5.7.23-1.el7 mysql57-community mysql-community-embedded.x86_64 5.7.23-1.el7 mysql57-community mysql-community-embedded-compat.i686 5.7.23-1.el7 mysql57-community mysql-community-embedded-compat.x86_64 5.7.23-1.el7 mysql57-community mysql-community-embedded-devel.i686 5.7.23-1.el7 mysql57-community mysql-community-embedded-devel.x86_64 5.7.23-1.el7 mysql57-community mysql-community-libs.i686 5.7.23-1.el7 mysql57-community mysql-community-libs.x86_64 5.7.23-1.el7 mysql57-community mysql-community-libs-compat.i686 5.7.23-1.el7 mysql57-community mysql-community-libs-compat.x86_64 5.7.23-1.el7 mysql57-community mysql-community-release.noarch el7-7 mysql57-community mysql-community-server.x86_64 5.7.23-1.el7 mysql57-community mysql-community-test.x86_64 5.7.23-1.el7 mysql57-community ~~~~~~~~~~~~~~
大丈夫そうなのでインストール
$ yum install mysql-community-server php7.2 nginx
これで揃ったので、WordPressをダウンロードします。配置するのはどこでもいいですが、/var/www/public_htmlでも作ってそこに置くことにします。
$ mkdir -p /var/www/public_html $ cd /var/www/public_html $ wget https://ja.wordpress.org/latest-ja.tar.gz $ tar -xzvf latest-ja.tar.gz $ rm latest-ja.tar.gz
WordPressディレクトリができたので、nginxのコンフィグを設定します。 細かい設定は今度やるので、今回は繋ぐだけひとまず設定を入れるため、rootディレクトリの変更だけします。
$ vim /etc/nginx/nginx.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /var/www/public_html/wordpress; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
さて、これでOK。nginxを起動し、ブラウザよりアクセスします。
$ systemctl start nginx
WordPressの初期セットアップ画面が無事表示されました。
次にmysqlをWordPressから使えるようにします。まずは起動
$ systemctl start mysqld
起動するとmysqlの初期化が走り、rootユーザーの初期パスがログに出ます。
$ cat /var/log/mysqld.log ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2018-08-02T05:35:02.908264Z 1 [Note] A temporary password is generated for root@localhost:hogehogepwd ~~~~~~~~~~~~~~~~~~~~~~~~~~~
こちらでrootログインし、rootのパスワード変更をしたあと(初期パスだと操作できない)WordPress用のユーザーとDBを作成してあげます。
$ mysql -uroot -p hogehogepwd mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Defaultp@ssw0rd'; mysql> create database wpa001; mysql> create user wpa001@localhost identified by 'Hogehoge@1234'; mysql> grant all on wpa001.* to wpa001@localhost identified by 'Hogehoge@1234'; mysql> flush privileges;
wpa001の部分はなんでもいいです。パスワードを「Hogehoge@1234」にしていますが、こちらもなんでもいいです。 が、デフォルトで入れたmysqlだと、パスワードの強度の設定がMEDIUMのため、要件をみたないとエラーになります。 怒られる場合にはこんな表示
mysql> create user wpa001@localhost identified by 'Hogehoge@'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
ブラウザより、WordPressの初期設定に先程作ったDBなどを記入します。
あとはそのままブラウザの指示に従えば完成。
アクセスが出来ました。