読者です 読者をやめる 読者になる 読者になる

CaramelTrip

家族で海外を旅するフリーランス・プログラマーのログ

AWS上でNginxを使ってWordpressの環境構築 | EC2 + Wordpress + Nginx + PHP7 + Mysql5.6

wordpress
f:id:parsetree:20170123225345p:plain


今まではAWSでWordPressやる時はBitNamiを使ってました。


BitNamiは、amazonの公式でも紹介されています。10分ぐらいでサクッとセットアップできちゃいます。

aws.amazon.com


Apacheは便利だけど脆弱性多いし、Nginxの方が速いという事で新規にセットアップする事にしました。

折角の機会なのでAmazonLinuxとPHP7でいきます。


Wordpressの環境を新規作成

 

PHP7.0のインストール

$ sudo yum install -y php70 php70-fpm php70-gd php70-mbstring php70-mcrypt php70-mysqlnd php70-zip
$ php -v
# PHP 7.0.13 (cli) (built: Nov 18 2016 01:43:37) ( NTS )


www.confのバックアップ

$ sudo cp /etc/php-fpm-7.0.d/www.conf /etc/php-fpm-7.0.d/www.conf.org


www.confの設定

$ sudo vi /etc/php-fpm-7.0.d/www.conf
user = nginx
group = nginx


タイムゾーン設定

$ sudo vi /etc/php-7.0.ini
date.timezone = "Asia/Tokyo"


php-fpmを起動

$ sudo /etc/init.d/php-fpm start


自動起動設定

$ sudo chkconfig php-fpm on


確認

$ chkconfig --list php-fpm


権限をnginxに変更

$ sudo chown -R nginx:nginx /var/lib/php/7.0/session


 

nginxのインストール

$ sudo yum install nginx -y
$ nginx -v
# nginx version: nginx/1.10.1


自動起動設定

$ sudo chkconfig nginx on


確認

$ chkconfig --list nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off


nginx起動

sudo service nginx start


ブラウザでURLにパブリックIPを入力してnginxが起動しているか確認する

f:id:parsetree:20170123225622p:plain


nginx.confの編集

$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org
$ sudo vi /etc/nginx/nginx.conf

index index.html index.htm index.php;
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name localhost;
        root /var/www/html;
        client_max_body_size 3M;

        include /etc/nginx/default.d/*.conf;

        # wordpressパーマリンク対応
        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
            include fastcgi_params;
        }
    }


wwwフォルダがなければ作る

$ sudo mkdir /var/www


htmlフォルダがなければ作る

$sudo mkdir /var/www/html


index.phpを作ってphpとnginxを確認する

$ sudo vi /var/www/html/index.php
<?php echo phpinfo();>


保存してnginxを再起動

sudo /etc/init.d/nginx restart


ブラウザでURLにパブリックIPを入力してnginxが起動しているか確認する

f:id:parsetree:20170123225724p:plain


 

mysqlインストール

$ sudo yum install -y mysql56 mysql56-server
$ mysqld --version
mysqld Ver 5.6.33 for Linux on x86_64 (MySQL Community Server (GPL))


mysql起動

$ sudo /etc/init.d/mysqld start


自動起動設定

$ sudo chkconfig mysqld on


自動起動の確認

$ chkconfig --list mysqld


mysqlに入れるか確認(rootのパスワード無しで入れる)

$ mysql -u root


mysqlに入ったらパスワードを変更する

mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
mysql> exit


これで mysql_secure_installation コマンドを実行できるので実行します。

$ mysql_secure_installation


いくつか質問されるので、以下のように回答しました。

Change the root password? [Y/n] n # パスワードの変更
Remove anonymous users? [Y/n] Y # 匿名ユーザを削除
Disallow root login remotely? [Y/n] Y # root ユーザでのリモートからのログインを禁止
Remove test database and access to it? [Y/n] Y # test データベースを削除
Reload privilege tables now? [Y/n] Y # 権限テーブルをリロード


 

Mysqlユーザーの追加

MySQLへログインし、管理者権限を持つユーザー登録します。

$ mysql -uroot -p

mysql> GRANT ALL PRIVILEGES ON *.* TO hoge@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;


確認

mysql> select host,user from mysql.user;


WordPress用のデータベースを作成する ※バッククォートなので注意してください。

mysql> CREATE DATABASE `wordpress`;
mysql> FLUSH PRIVILEGES;
mysql> exit


 

WordPressのインストール

ルートディレクトリに移動

$ cd /var/www/html


ダウンロード

$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz


解凍

$ sudo tar xzvf latest-ja.tar.gz


できたwordpressフォルダに移動

$ cd wordpress


wp-config.phpを編集します。

$ sudo cp wp-config-sample.php wp-config.php
$ sudo vi wp-config.php

データベース名の設定
define('DB_NAME', 'wordpress');
ユーザーの設定
define('DB_USER', 'hoge');
パスワードの設定
define('DB_USER', 'password');


最後にhtmlフィルダへ移動させwordpressフォルダを削除

$ sudo mv * /var/www/html/
$ cd /var/www/html/
$ sudo rm -r wordpress/


権限をnginxに変更

$ sudo chown -R nginx:nginx /var/www/html


ブラウザでURLにパブリックIPを入力してwordpressのようこそがでればOK。

f:id:parsetree:20170123225913p:plain

後もう少しで完成です。

 

Wordpressのセットアップ

ようこそ画面で


  • サイトタイトル

  • ユーザー名

  • パスワード

  • メールアドレス

を入力して「WordPressをインストール」


wordpressの管理画面が出てくれば完成です!


お疲れ様でした!