Amazon Linux 2にWordPressをインストールする

Amazon Linux 2, Nginx, PHP7, MariaDBを基盤とした環境にWordPressをインストールする手順について記載します。

手順を書き直しました

以下、古い手順です


今回構築する環境

  • Amazon Linux 2
  • Nginx 1.12.2
  • PHP 7.2
  • PHP-FPM 7.2.0
  • MariaDB 5.5.56
  • WordPress 4.9.4 日本語版

EC2のデプロイ

  • AMI: Amazon Linux 2 LTS Candidate…
  • Instance Type: t2.micro
  • Storage: gp2 8GB
  • etc…

セキュリティグループは自分の環境からのIPでInbound port 80を許可するよう設定


OSの設定

時刻の設定

参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html

タイムゾーン設定

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

各種インストール

参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html

Nginxインストール

$ sudo amazon-linux-extras install nginx1.12

PHPインストール

$ sudo amazon-linux-extras install php7.2

PHPその他インストール

$ sudo yum install php-mbstring php-pear php-fpm php-mcrypt php-gd php-opcache php-pecl-apcu-bc

MariaDBインストール

$ sudo yum install mariadb mariadb-server

Nginx設定

設定ファイルを作成

server {
listen 80;
server_name www.example.net;
root /var/www/site;
index index.php index.html index.htm;
access_log /var/log/nginx/site_access.log;
error_log /var/log/nginx/site_error.log;

location ~* /wp-config.php {
deny all;
}

location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
}

コンフィグチェック

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

自動起動&起動

$ sudo systemctl enable nginx
$ sudo systemctl start nginx

PHP設定

設定

;バージョンを隠す
expose_php = Off

;タイムゾーンの指定
date.timezone = "Asia/Tokyo"

;文字コードの指定
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto

PHP-FPM設定

設定

user = nginx
group = nginx

自動起動&起動

$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm

MariaDB設定

自動起動&起動

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

DB初期設定

$ sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

<strong>Enter current password for root (enter for none):
</strong>
初期なので何も入力せず

OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

<strong>Set root password? [Y/n] Y
</strong> New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

<strong>Remove anonymous users? [Y/n] Y</strong>
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

<strong>Disallow root login remotely? [Y/n] Y
</strong> ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

<strong>Remove test database and access to it? [Y/n] Y
</strong> - Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

<strong>Reload privilege tables now? [Y/n] Y
</strong> ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

設定

[mysqld]
character-set-server = utf8

DBユーザー設定

$ mysql -u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "user"@"localhost" IDENTIFIED BY "password";
FLUSH PRIVILEGES;

WordPressインストール

ダウンロード

$ curl -O https://ja.wordpress.org/latest-ja.tar.gz
$ tar xzvf latest-ja.tar.gz
$ sudo mkdir /var/www/site
$ sudo cp -rp wordpress/* /var/www/site/
$ sudo chown -R nginx:nginx /var/www/site
$ cd /var/www/site
$ sudo mv wp-config-sample.php wp-config.php

設定

/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

認証用ユニークキーを貼り付ける

https://api.wordpress.org/secret-key/1.1/salt/ へアクセスし以下の場所に貼り付ける


* 認証用ユニークキー

<認証用ユニークキーを貼り付ける>
....


hostsを設定

一時的にhostsを編集する(mac)


##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost

<EC2のパブリックIPアドレス> www.example.net

WordPressへアクセス

インストールページへ進む
http://www.example.net/wp-admin/install.php

※http://www.example.net/index.phpへアクセスするとリダイレクトが繰り返され設定が進まない。


書きかけだった。続きあり。。

One Reply to “Amazon Linux 2にWordPressをインストールする”

コメントは受け付けていません。