WordPress構築「Vagrant+PHP+Mysql+Apache」

Vagrant作成

Vagrantfile作成

vagrant init Box名

Vagrantfileが存在するディレクトリでvagrant upを実行

②PHP5.6インストール

Centos6.0用

# For CentOS 6.5, 6.4, ...

% sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

% sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Centos7.0用

# For CentOS 7.0

$ sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

% sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum listパケージを確認する

% yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

インストール

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

sudo yum  --enablerepo=remi --enablerepo=remi-php56 install  php php-mbstring php-mysql 

*色々コマンドインストール

sudo yum install vim-enhanced git zsh dstat sysstat ccze s3cmd wget

 

MySQLインストール

rpmを追加する

yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

インストール

yum install mysql mysql-devel mysql-server mysql-utilities

設定ファイル

# /etc/my.cnf

[mysqld]
character-set-server = utf8
skip-character-set-client-handshake

[mysql]
default-character-set = utf8

MySQL の起動、自動起動設定

$ sudo service mysqld start
$ sudo chkconfig mysqld on

セキュリティ強化

$ sudo mysql_secure_installation

Enter current password for root (enter for none): Enter
Set root password?(rootパスワード設定する?) [Y/n] Y
Remove anonymous users?(匿名ユーザー削除する?) [Y/n] Y
Disallow root login remotely?(リモートからのrootログインを拒否する?) [Y/n] Y
Remove test database and access to it?(テストDB削除する?) [Y/n] Y
Reload privilege tables now?(設定した内容を反映するか?) [Y/n] Y

データベース作成

データベースを「wordpress」ユーザー名を「wpadmin」パスワードを「password」で作成します。

$ mysql -u root -p
> CREATE DATABASE `wordpress` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
> CREATE USER `wpadmin`@`localhost` IDENTIFIED BY 'password';
> GRANT ALL ON `wordpress`.* TO `wpadmin`@`localhost`;

Apache のインストール

$ sudo yum -y install httpd

設定ファイル

# /etc/httpd/conf/httpd.conf

# ユーザーとグループの設定です
User apache
Group apache

# Web サーバーにアクセスしたクライアントに返す情報です。
# レスポンスヘッダには「Server: Apache」という名前しか返されません。
ServerTokens Prod

# エラーメッセージ出力時にフッタを表示しないようにします。
ServerSignature Off
Apache の起動、自動起動設定
$ sudo service httpd start
$ sudo chkconfig httpd on

WordPress のインストール

https://ja.wordpress.org/ から最新版をダウンロードします。

$ cd /var/www
$ wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar zxfv latest-ja.tar.gz
$ sudo rm -rf  latest-ja.tar.gz
$ sudo chown -R apache:apache wordpress

設定ファイル

$ cd /var/www/wordpress
$ sudo cp wp-config-sample.php wp-config.php
# wp-config.php

// データベース情報を設定します。
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpadmin');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');

// 「put your unique phrase here」を 適当な文字列に置き換えます。
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');

// プレフィックスは変更しておいた方がいいです。
$table_prefix  = 'wp_';

動作確認

http://[wordpress.confで設定したドメイン] をブラウザで開きます。

Basic 認証の設定

管理画面にBasic 認証を設定します。

鍵の生成

ユーザー名を「wordpress」 パスワードを「password」にします。

$ sudo htpasswd -cb /var/www/wordpress/.htpasswd wordpress password
# /var/www/wordpress/.htaccess

<Files "wp-login.php">
  AuthType Basic
  AuthName "Please enter your name and password"
  AuthUserFile /var/www/wordpress/.htpasswd
  Require valid-user
</Files>

設定を反映

$ sudo apachectl configtest
$ sudo service httpd graceful

シンボリックリンク

sudo ln -s /vagrant/hoge /var/www/html

 

* .htaccessを/html の直下に作成

権限を755にする

アクセル確認

http://VagrantFileのIP 設定値/wordpress/wp-admin/install.php