wordpress構築時のメモ
構成
web
ミドル
項目 | 値 | 備考 |
---|---|---|
php | PHP 7.0.32 | |
nginx | nginx/1.12.1 | |
wordpress | 4.9.8 |
構築時の履歴
Install package
$ sudo yum update -y $ sudo yum install -y php70 php70-fpm php70-gd php70-mbstring php70-mcrypt php70-mysqlnd php70-zip nginx mysql56 php70-opcache
www.confのバックアップおよび設定
$ sudo cp /etc/php-fpm-7.0.d/www.conf /etc/php-fpm-7.0.d/www.conf.org $ sudo vim /etc/php-fpm-7.0.d/www.conf user = nginx group = nginx $ sudo vim /etc/php-7.0.ini date.timezone = "Asia/Tokyo"
php-fpmを起動
$ sudo /etc/init.d/php-fpm-7.0 restart
自動起動設定
$ sudo chkconfig php-fpm-7.0 on $ sudo chkconfig nginx on
権限をnginxに変更
$ sudo chown -R nginx:nginx /var/lib/php/7.0/session
nginx起動
sudo service nginx start
nginx.confの編集
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org $ sudo vim /etc/nginx/nginx.conf index index.html index.htm index.php; server { listen 80 default_server; listen [::]:80 default_server; server_name localhost; root /mnt/efs/www/html; client_max_body_size 3M; include /etc/nginx/default.d/*.conf; # wordpressパーマリンク対応 location / { try_files $uri $uri/ /index.php?$args; } location ~* /wp-config.php { deny all; } 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; } }
efs マウント
$ sudo yum install -y amazon-efs-utils $ sudo mkdir /mnt/efs $ sudo mount -t efs fs-XXXXXX:/ /mnt/efs
efs IDは任意に変更
sudo vim /etc/fstab 追記 fs-XXXXX:/ /mnt/efs efs defaults,_netdev 0 0
フォルダ作る
$ sudo mkdir -p /mnt/efs/www $ sudo mkdir -p /mnt/efs/www/html
nginxを再起動
sudo /etc/init.d/nginx restart
mysqlに入ったらパスワードを変更する
$ mysql -u admin001 -p -h XXXXXX.ap-northeast-1.rds.amazonaws.com dkagwqalka mysql> CREATE USER 'wp'@'%' IDENTIFIED BY 'XXXXXX'; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'wp'@'%' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; mysql> select host,user from mysql.user; mysql> CREATE DATABASE `wordpress`; mysql> FLUSH PRIVILEGES; mysql> exit
Install Wordpress
$ cd /mnt/efs/www/html $ sudo wget https://ja.wordpress.org/latest-ja.tar.gz $ sudo tar xzvf latest-ja.tar.gz $ cd wordpress $ sudo cp wp-config-sample.php wp-config.php $ sudo vim wp-config.php define('DB_NAME', 'wordpress'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'wp'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'XXXXXX'); /** MySQL のホスト名 */ define('DB_HOST', 'XXXXXXXX.ap-northeast-1.rds.amazonaws.com'); /** データベースのテーブルを作成する際のデータベースの文字セット */ define('DB_CHARSET', 'utf8'); # https対応 if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) { $_SERVER['HTTPS']='on'; } define('FS_METHOD','direct'); define('WP_AUTO_UPDATE_CORE',true);
wordpressフォルダを削除
$ sudo mv * /mnt/efs/www/html/ $ cd /mnt/efs/www/html/ $ sudo rm -r wordpress/
権限をnginxに変更
$ sudo usermod -a -G nginx ec2-user $ sudo chown -R ec2-user:nginx /mnt/efs/www/ $ sudo chmod 2775 /mnt/efs/www/ $ find /mnt/efs/www/ -type d -exec sudo chmod 2775 {} \; $ find /mnt/efs/www/ -type f -exec sudo chmod 0664 {} \;
backup
efsのバックアップ
基本的にefsは可用性を備えており、backupは不要とされているが、オペレーションミスなどがあるので念の為backupをしておく
今回は、簡易backupですのでData Pipelineを使いs3におく
backupスケジュール | 1週間に1度 | |
保存期間 | 1週間に1度の場合は、削除なし | |
バケット | ||
logs |
作業手順
* awsのコンソールから[Data pipeline]を選択 * [create new pipeline]を選択
- Source を build using a template のRun AWS CLI commandを選択
- Parameters に下記を入力
`` aws s3 sync /mnt/ s3://XXXXXX/
date "+%Y%m%d_%H%M"`/ --exact-timestamps --delete
* Schedule 週一回backupを取得する事とする * loggingの設定
s3://XXXXXXX/
* Runs onの設定
(sudo yum -y update aws-cli) && (sudo yum -y install amazon-efs-utils) && (sudo mount -t efs fs-XXXXX.efs.ap-northeast-1.amazonaws.com:/ /mnt) && (#{myAWSCLICmd})
efsのDNSを登録する * Ec2instance | | | | |---|---|---| |Instance Type| t2.medium || |Key Pair | | |Security Group Ids | | |Security Group Ids | |