題名のとおりです。
ansibleのplaybookを作る前に、どんな手順だっけと思ってまとめました。
ゴール
Vagrant で CentOSを作って、Nginx + MySQL環境にWordPressを構築する
下記構成でwordpressを動作させる
対象 | ソフトウェア |
---|---|
OS | CentOS |
Webサーバー | nginx |
Database | MySQL |
Other | PHP |
やらないこと
- セキュリティ関連の設定
本来必要なことですが、セキュリティの設定を除き手順の明瞭性を上げたいと思います。
環境・前提条件
- vagrant
- virtualbox
手順
仮想環境の用意
$mkdir vagrant_wordpress
$cd vagrant_wordpress
$vagrant init boxname
$vi Vagrantfile << vagrantファイルを編集する(privateネットを利用可能にする)
$vagrant up
メモ
sshがつながらないので下記をしておくこと
vagrant ssh
chmod 600 .ssh/authorized_keys
webサーバー
リポジトリの追加
リポジトリ追加しておきます
sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
インストール
$ sudo yum install -y nginx
$sudo service nginx start
$sudo chkconfig nginx on
インストールして、Nginxを起動します。
合わせてサーバー再起動時にNginxが起動するようにchkconfigで設定をします。
簡単な動作テスト
Vagrantfileに記述されているIPアドレスにアクセスしてみる。
ホストOS側のブラウザで、nginxのトップページが出ればOK。
書き換える
wordpressを、/var/www/wp/wordpressに配置する予定です。
$sudo vi /etc/nginx/conf.d/default.conf
# ...
location / {
root /var/www/html/wp/wordpress; # DocumentRootを変更
index index.html index.htm index.php;
}
# ...
書き換えたら再起動
iptables
$sudo service iptables stop
$sudo chkconfig iptables off
ifconfigで調べたipにローカルからアクセスする。
mysql
インストール
$sudo yum -y install mysql mysql-server
メモ
- mysqlはmysqlのクライアント
- mysql-serverはmysqlのデーモン。サービス名はmysqld
mysqlの起動
- OSに自動起動するよういにしておく。
sudo service mysqld start
sudo chkconfig mysqld on
初期設定
下記をします。
- mysqlにログインするユーザのパスワード設定
- wp用のDBを作成
mysql -u root
@mysql
update mysql.user set password=password('new_password_for_root') where user = 'root';
flush privileges;
exit
flush privileges;で設定変更を反映させています。
もし、うまく行かなければmysqlクライアントを終了したあとで、mysqldを再起動させればOKです。
sudo service mysqld restart
再度mysqlを実行して、passwordを聞かれればOKです。
$mysql -u root -p
Enter password:
wordpress用のDBを作成する
mysql -u root -p
Enter password: '先程設定したパスワード'
mysql> create database wordpress;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on wp.* to wp@localhost identified by 'wordpress_user_password';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
PHP
環境やPHPのversonによって必要なパッケージが異なるようですが、下記を入れます。
sudo yum -y install php php-mysql php-fpm
PHPはほとんど使ったことがないのですが、ライブラリがたくさんあるのですね…
パッケージ | 解説 |
---|---|
php-mysql | PHPからMySQLに接続するためのライブラリ |
php | php本体 |
php-fpm | FastCGI Process Manager。PHPのFastCGI実装 |
php-mbstring | PHPの日本語環境の設定 |
確認
versionが確認できればOK
$php --version
PHP 5.3.3 (cli) (built: Aug 11 2016 20:33:53)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
設定変更
したほうが良い気がするけど、とりあえずまずはしない。
php-fpm設定
いるかいらんかよくわからんが…
$sudo vi /etc/php-fpm.d/www.conf
user = apache # apache を nginx へ変更
group = apache # apache を nginx へ変更
設定を変更したら起動します。
$ sudo service php-fpm start
Starting php-fpm: [ OK ]
ついでに起動時に実行されるようにしておく。
$sudo chkconfig php-fpm on
wordpress
取得
$cd /var/www/html
$sudo mkdir wp
$cd wp
$sudo wget https://ja.wordpress.org/wordpress-4.6-ja.tar.gz
解凍
$sudo tar xvzf wordpress-4.6-ja.tar.gz
- /var/www/html/wp/wordpress となっていればOK
各種設定
word権限の変更
$cd /var/www/html
$chown -R nginx:nginx wp/wordpress
nginxとphp-fpmの連携
$sudo touch /etc/nginx/conf.d/wordpress.conf
$sudo vi /etc/nginx/conf.d/wordpress.conf
server {
listen 80;
server_name 195.168.59.16;
index index.php ;
root /var/www/html/wp/wordpress ;
location ~* /wp-config.php {
deny all;
}
location ~ \.php$ {
root /var/www/html/wp/wordpress ;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
/etc/nginx/nginx.conf
にinclude /etc/nginx/conf.d/*.conf;
の設定がされているので作成したwordpressの設定は自動的に読み込まれます。
動作確認
まとめ
セキュリティの設定はしていませんが、とりあえずwordpressの構築ができました。
上記も慣れてくれば5分〜10分程度でも完了できるようになりますが、こういった手順はレシピにまとめたいですね。
というわけで、今後は上記をansibleのplaybookにまとめて見たいと思います。