EC2のサーバにWordPressをインストールしてみよう ~AWSで作るWordPress~ Part.4

AWSのAmazonのEC2にてWordPressの構築をまとめる。
内容は基本コピペで構築できる。

EC2のサーバにWordPressをインストールの仕方について

WordPressのインストールに必要なものは以下になります。

  • Apache
  • PHP
  • MySQL
  • mod_ssl (セキュアな管理系の構築のため
  • Openssl (セキュアな管理系の構築のため
  • emacs (メモ帳ライクなテキストエディター※Viが苦手なため・・。)
スポンサーリンク

パッケージの更新

ルート権限に移動して、パッケージファイルの更新を行います。

$sudo su -
# yum -y update

そうするといろいろパッケージが更新されていきます。

# yum -y update
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                         | 2.1 kB     00:00
amzn-updates/latest                                      | 2.3 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package aws-amitools-ec2.noarch 0:1.5.6-1.1.amzn1 will be updated
---> Package aws-amitools-ec2.noarch 0:1.5.7-1.0.amzn1 will be an update
---> Package aws-apitools-common.noarch 0:1.1.0-1.8.amzn1 will be updated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  unzip.x86_64 0:6.0-2.9.amzn1
  yum.noarch 0:3.4.3-137.57.amzn1
  yum-metadata-parser.x86_64 0:1.1.4-8.12.amzn1

Complete!

次にサーバの時間の変更を行います。

# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

必要なソフトウェアのインストール

# yum -y install httpd
# yum -y install emacs
# yum -y install php php-mysql php-mbstring php-gd
# yum -y install mysql-server
# yum -y install openssl
# yum -y install mod_ssl
# yum -y install emacs

Apacheの設定

アパッチは基本的には入れたままで使えるが、邪魔なものを削除していく

emacs /etc/httpd/conf/httpd.conf

※emacsでファイル編集時にlocked~見たいな事が出た場合pを入力することで解消する。」

サーバ情報の削除

# Don't give away too much information about all the subcomponents
# we are running.  Comment out this line if you don't mind remote sites
# finding out what major optional modules you are running
ServerTokens ProductOnly

構築当初はアクセスが少ないことを見込んで、Apacheのプロセスの循環をあげてメモリリークを防ぐ

StartServers       3
MinSpareServers    2
MaxSpareServers   10
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  20

シンボリック攻撃を防ぐ設定

    Options -Indexes FollowSymLinks

サーバ情報の秘匿

ServerSignature Off

アイコンはディレクトリは不要のため削除

#Alias /icons/ "/var/www/icons/"
 #   Options Indexes MultiViews FollowSymLinks
 #   AllowOverride None
 #   Order allow,deny
 #   Allow from all

終わったらセーブをする。

Ctrl+x Ctrl+s
Ctrl+x Ctrl+c
不要なファイルの削除
# rm -f /etc/httpd/conf.d/welcome.conf
# rm -f /var/www/error/noindex.html

httpdのサービスの自動ONを設定し、apacheのサービスを再起動する。

# chkconfig httpd on
# service httpd start

PHPの設定

PHPの設定を追加する。

emacs /etc/php.ini

日本語化対応

output_handler =

PHPの情報削除

expose_php = Off

エラーログの吐き出し先の設定

error_log = /var/log/php_err.log

文字コードをUTF-8にしたり、日本語対応を設定する

default_charset = UTF-8
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto

 MySQLの設定

日本語化に対応するため以下を追加する。

emacs /etc/my.cnf
character_set_server=utf8<br/>

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid<br/>
[mysql]
default-character-set=utf8<br/>
[mysqldump]
default-character-set=utf8

PHPの自動起動とプログラムの実行

# chkconfig mysqld on
# service mysqld start

MYSQLのインストーラーの実行

基本的にはROOTのパスワードの設定と、基本設定を削除するか?の問いのためすべてYにする。

# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set root password? [Y/n] y
New password:<パスワードの入力>
Re-enter new password:<パスワードの入力>
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

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

Reload privilege tables now? [Y/n] y
 ... Success!

MYSQLにログインしてデータベースを作成する。
※後々WordPressの設定の際に必要となるので覚えておくこと。

mysql -u root -p
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL ON wordpress_db.* TO wordpressuser@localhost IDENTIFIED BY 'wordpresspass';
FLUSH PRIVILEGES;

show databases;のコマンドでデータベースが作成されていることを確認する。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit

WordPressのインストール

WordPressのインストールを実施する。
tmpフォルダにて一度ダウンロードし、内容を修正したのちapacheのフォルダに移動させる。

WordPressのダウンロードと圧縮されているので解凍する。
解凍後にWordPressのディレクトリに移動する。

# cd /var/tmp
# wget http://ja.wordpress.org/latest-ja.tar.gz
# tar xzvf latest-ja.tar.gz
# cd wordpress

サンプルファイルをコピーし、コンフィグファイルを編集する。。

# cp wp-config-sample.php wp-config.php
# emacs wp-config.php

データベースの設定を追加する。
MYSQLでデータベースを作成したときの設定を入力する。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress_db');<br/>

/** MySQL データベースのユーザー名 */
define('DB_USER', 'wordpressuser');<br/>

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'wordpresspass');<br/>

https://api.wordpress.org/secret-key/1.1/salt/
にアクセスし入手した情報を貼り付ける。
※新規にサイトにアクセスし設定してください。

define('AUTH_KEY',         ',?}9^(=5jbj-3HF8Y86NqB_3h3h2])CQ}-{L27kaIJZYg{?Kh;BcphePB_lP6&qu');
define('SECURE_AUTH_KEY',  'K#llsyn5tw|yzRX^U$W+|fHcW7q YxCD(S?k%],=|^Bb{-`iApNPqpcb@;+#Dzg;');
define('LOGGED_IN_KEY',    'Yk@@0D/[D1%7 |:aqea4r]kwO~K}K[zRH;b3KD+P,;didd$p${BhUgu%js5;Qt4.');
define('NONCE_KEY',        'lSH>jm5r2!E.{L>)2,B+$^M|0g#VWfU,_^m6h}dGa51K2U=%(%NO?yQyNjB:g=hW');
define('AUTH_SALT',        ';&ub-W]l>h2m|]!T;q~V5;Lmqm>3Q<i({b33e!J(2n0cdJg)yh}+!bC6$(ytYaW:');
define('SECURE_AUTH_SALT', '3B!9kSErNd5DY)(2~~4v|h)vH|mA6B7DuG+fX!/XDd229=Y+-]5dr`^!wp&C7x;~');
define('LOGGED_IN_SALT',   'DwVkh_L@Eq]r;7OrT^SZh5uaXtRDA1RCXhML%3i:y^<Q%&-PZygA&YhUt8:)&MSM');
define('NONCE_SALT',       '-ZZHXMYzcog<.l-/R7omgTDM5)u=T<^9s-W,U$j-bE1-VE5&uGyp27S!,Hv`0z{~');

最後に変更したファイルをApacheのフォルダに格納する。
このときApacheの紐付けとapacheの再起動を実施する。

# cp -R * /var/www/html/
# chown -R apache:apache /var/www/html/
# service httpd restart

アクセス確認

ブラウザより、SSHでアクセスしているIPアドレスまたは、サーバのURLを入れる。

そうすればWordPressにアクセスできるはずだ!

WordPressログイン

次の章ではWordPressのHTTPS化を設定する。