VagrantでWordPress構築
昨日の勢いで、とりあえずローカル環境に
VagrantでWordPressの構築までやった。
今後のためにメモを残しておく。
0.構築の前提
ホストOS:Windows 10
ホストの仮想基盤:VirtualBox
ゲストOS:CentOS 7.2
ゲストのWebサーバ:NGINX/1.10.2
ゲストのRDBサーバ:MySQL(Ver14.14)
Vagrantのboxファイル:Vagrantbox.esから
vagrant box add <box名> <URL>
でbox listに適当に追加。
1.Vagrantのインスタンス作成
1-1. Vagrantの初期化
Git Bashで適当なフォルダに移動して下記を実行。
(そこがプロジェクトフォルダになる)
vagrant init <box名>
1-2. ゲストOSからホストOS経由でネット接続
プロジェクトフォルダにできたVagrantfileを
下記の通り編集する。
Vagrantfile
:
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "192.168.XXX.XXX" ← コメントアウトを解除する
:
ここまでがホスト(Windows)側の話。
以降はターミナルでssh接続して作業する。
2.CentOS7の設定変更
2-1. rootパスワードを変更
Vagrantで作成したOSのroot初期パスワードが
「vagrant」と安易だったので、適当に変更。
(入力後、新規パスワードの入力が求められる)
#パスワード変更
passwd
2-2. firewalldの設定変更
ダウンロードしたboxは設定が切られていたため、
http通信を許可し、自動起動設定を行う。
#http通信許可
sudo firewall-cmd --add-service=http --permanent
#設定反映
sudo firewall-cmd --reload
#自動起動の設定
systemctl enable firewalld
2-3. 時刻同期の設定
時刻同期がうまくいってなかったので、
Chronyをインストールして諸々設定。
#Chronyのインストール
sudo yum install -y chrony
#自動起動の設定
sudo systemctl enable chronyd
#タイムゾーンの設定
sudo timedatectl set-timezone Asia/Tokyo
#Chronyの強制反映
chronyc -a makestep
また、「/etc/chrony.conf」には下記を追加。
# Additional Setting
server ntp.nict.jp iburst
stratumweight 0
:
# Allow NTP client access from local network.
allow 192.168.0.0/16
:
3.PHP関連のパッケージ導入
3-1. PHP・PHP-MYSQLのインストール
#インストール
sudo yum install php php-mysql
#バージョン確認
php -v
3-2. PHP-FPMのインストール
PHPのFastCGI実装のひとつ。これがないと
NGINXがPHPを実行できません。
(Apacheの場合は必要ないみたい。多分。)
#インストール
sudo yum -y install php-fpm
#バージョン確認
php -v
#自動起動の設定
sudo chkconfig php-fpm on
4.NGINX導入
4-1. NGINXのインストール
今回はApacheではなくNGINXを使用。
(NGINXの方が高速・軽量らしいので)
#インストール
sudo yum -y install nginx
#バージョン確認
nginx -v
#自動起動の設定
sudo systemctl enable nginx
なお、NGINXはyumに登録されている
バージョンが若干古く、最新の安定版を
取得したい場合は下記の記事を参考にどうぞ。
4-2. PHP-FPMの設定変更、再起動
他所のサイトでも散々書かれているが、
ApacheならWordPressの導入は割と
スンナリ行くが、NGINXの場合はファイル
「/etc/php-fpm.d/www.conf」の変更が必要。
user = apache
user = nginx
:
group = apache
group = nginx
変更後はPHP-FPMを再起動する。
#再起動
sudo systemctl restart php-fpm
5.MySQLの導入
5-1. MySQL-communityのインストール
MySQLをWordPressで利用するには、まずは
MySQL-Communityをインストールする必要が
あるらしいので、とりあえずインストール。
#インストール
sudo yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
5-2. MySQLのインストール
なお、MariaDBもWordPressで使用できるが、
今回は慣れてるMySQLで。
#インストール
sudo yum -y install mysql-server
#バージョン確認
mysql --version
#自動起動の設定
sudo systemctl enable mysqld
6.WordPressの導入
6-1. WordPressのダウンロード
インターネット経由でダウンロードする。
場所はどこでもいいけど、今回は
/var/www
にダウンロードする。
#移動
cd /var/www
#ダウンロード
sudo wget https://ja.wordpress.org/latest-ja.tar.gz
#展開(「wordpress」ディレクトリが出来る)
sudo tar xzf latest-ja.tar.gz
#展開後、圧縮ファイルを削除
sudo rm latest-ja.tar.gz
#「wordpress」からリネームコピー
sudo cp -r wordpress test
#パーミッション変更
chmod 755 /var/www/test
これで、「/var/www/test」をWordPressの
ルートディレクトリとして使用する土台ができた。
6-2. MYSQLにWordPress用のDB作成
WordPressで使用するDBを作成する。
(rootユーザーでログインする)
#MySQLを管理者権限で起動
mysql -u root
mysql> --DB作成
mysql> create database test;
mysql> --ユーザー作成
mysql> grant all on test.* to user@localhost identified by 'password';
mysql> --MySQLを終了
mysql> \q
2・3行目を実行して「Query OK, ~」的な
実行結果が表示されればOK。なお、
test … DB名
user … DBAユーザー
password … DBAユーザーのパスワード
なので、各自変更されたし。
6-3. DBをWordPressへ登録
WordPressの初期ダウンロード状態に
「wp-config-sample.php」があるので、
それをコピーして「wp-config.php」を作成し、
下記の通り変更する。
:
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'test'); /** MySQL データベースのユーザー名 */
define('DB_USER', 'user'); /** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password');
: :
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
test、user、passwordには
「6-2. MYSQLにWordPress用のDB作成」で
設定したものを入れる。
'put your unique phrase here'の箇所には
下記URLで生成された秘密鍵を設定する。
https://api.wordpress.org/secret-key/1.1/salt/
6-4. NGINXの設定ファイルの変更
Apacheの「.htaccess」を使い慣れている人も
多いと思うが、NGINXの場合は「/etc/nginx/nginx.conf」
がそれに該当する設定ファイルである。
下記の通り設定するとうまくいった。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/test;
index index.php; # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /var/www/test;
index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
7.ブラウザーからアクセス確認
散々つまづきまくりながら上記の設定を
行い、とりあえずはWordPressの初期画面に
辿り着くことが出来た。
時間にしておよそ5時間ほど。
あとはWordPressの初期設定からである。
ぶっちゃけ、Linuxの操作は慣れてるから
割とサクサクできたけど、WordPressは
あまり触ったことがないので不安である。
とりあえず、プラグインで色々遊んで
徐々にWordPressに慣れていこうと思う。
早くAWSで運用したい…
~参考にさせていただいたサイト~