lightsail上に自前でWordpressを構築する(Amazon Linux編)
投稿日:
環境
Amazon Linux AMI 2018.03 (lightsail)
※2020年2月追記
lightsailのAmazon Linuxでcretbotの挙動があやしくなってきたので
CentOS版も作りました。
記事はこちら
lightsailではWordpressを載せたインスタンスを生成できますが、
全部載せbitnami環境があまり好きではなかったので
空のインスタンスに自分でWordpress環境を構築しました。
構築する環境は
nginx + php-fpm(PHP7.2)
とします。
インスタンス作成
lightsailのインスタンスを作成します。
プラットフォーム:Linux/Unix
設計図の選択:OSのみ Amazon Linux
インスタンス設定
作成したインスタンスの設定をします。
対象インスタンスのネットワーキングを開き、静的IPをアタッチしておきます。
また、HTTPSで公開する場合はファイアウォールにてTCPの443ポートを開けておきます。
各種インストール&設定
インスタンスにSSHにて接続し、以下コマンドを実行していきます。
まずrootになります。
sudo -i
いろいろインストールします。
yum install -y git nginx php72-fpm php72-bcmath php72-cli php72-common php72-devel php72-gd php72-json php72-mbstring php72-mysqlnd php72-pdo php72-xml mysql-server
nginxの設定
nginxの設定ファイルを追加します。
ファイル名の.confより前は任意です。
vim /etc/nginx/conf.d/wordpress.conf
以下のように記載します。
(Wordpressおきまりのやつです)
server {
listen 80;
listen [::]:80;
server_name your-domain.jp;
root /usr/share/nginx/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~\.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
}
}
phpの設定
設定ファイルを開きます。
vim /etc/php.ini
画像アップロードが難なくできるよう、以下の箇所を修正します。
upload_max_filesize = 16M
post_max_size = 16M
php-fpmの設定
設定ファイルを開きます。
vim /etc/php-fpm.d/www.conf
nginxで動くように以下の箇所を修正します。
user = nginx
group = nginx
貧弱インスタンスを作成した場合はpm.max_〜
をインスタンスのパワーに合わせて変更してください。
pm.max_children = 15
pm.max_spare_servers = 10
nginx & php-fpmの起動
起動
service nginx start
service php-fpm start
自動起動有効化
chkconfig nginx on
chkconfig php-fpm on
mysqlの設定
起動&自動起動設定有効
service mysqld start
chkconfig mysqld on
rootのパスワード設定をします。
以下のnew-password
部分に設定したいパスワードを入力してください。
/usr/libexec/mysql55/mysqladmin -u root password 'new-password'
let’s encrypt設定
let’s encryptで無料SSL証明書を取得します。
your-domain.jp
部分にはWordpressで使うドメインを入力してください。
cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --webroot -w /usr/share/nginx/html -d your-domain.jp --debug
SSL証明書が取得できたらnginxの設定ファイルを再度開きます。
vim /etc/nginx/conf.d/wordpress.conf
SSLについて追記します。
server {
〜省略〜
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/your-domain.jp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.jp/privkey.pem;
〜省略〜
}
これで基盤はできあがりました。
後はWordpressの公式サイトなどを見ながらWordpressをDownload&設定するだけです。
付録:mysqlコマンド
ユーザー作成
CREATE USER 'wp-user'@'localhost' IDENTIFIED BY 'new-password';
データベース作成
CREATE DATABASE wp-database character set utf8mb4;
指定ユーザーのパスワードを変更
UPDATE mysql.user SET password=password('new-new-password') where user = 'wp-user';