Vagrantで自動的にLAMP環境を自動インストール。(+WordPress)

今回は、「Vagrant」でLAMP環境「Linux(Ubuntu)」「Apache」「MySQL」「PHP」+「WordPress」環境を自動インストールしていきます。

今回からはWindows環境のみの作業方法ではなく、Linux等でも出来る汎用的な記載をしていきますので、Windowsに依存する部分はWindows用に読み替えてください。
(ほとんどはファイル編集部分かと思います)

前回の記事
WindowsでVagrantによりVertualBox上にUbuntuを自動インストール
の「1」までの作業完了し、Boxを取得しておいて下さい。

今回の作業は以下の内容になります。

  1. 仮想環境の構築
  2. 自動設定用ファイルの作成
  3. 「Vagrantfile」の編集
  4. 仮想マシンの立ち上げ
  5. 各種アプリの動作確 (ブラウザで動作確認)

 

1.仮想環境の構築


mkdir LAMP
cd LAMP

さて、これからOSのインストールを行います。
下記のコマンドを打ってインストール作業を行ってください。


vagrant init precise32

 

するとこのような内容が表示され、初期化が完了しました。


C:\Users\mi\LAMP>vagrant init precise32
A <code>Vagrantfile</code> has been placed in this directory. You are now
ready to <code>vagrant up</code> your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
<code>vagrantup.com</code> for more information on using Vagrant.

2.自動設定用ファイルの作成

作業フォルダ(LAMP)に「bootstrap.sh」を作ります。


#!/usr/bin/env bash

# MySQLのroot passwd
MY_ROOT_PASSWD="PASSWORD"
export MY_ROOT_PASSWD

# WordPress DB passwd
WP_PASSWD="wordpress_passwd"
export WP_PASSWD

MY_CNF="/etc/mysql/my.cnf"
export MY_CNF

PHP_CNF="/etc/php5/apache2/php.ini"
PHP_CLI_CNF="/etc/php5/cli/php.ini"
export PHP_CNF
export PHP_CLI_CNF

HTTPD_CNF="/etc/apache2/apache2.conf"
export HTTPD_CNF

WP_CNF="/var/www/wordpress/wp-config.php"
WP_DB_NAME="wordpress"
export WP_CNF
export WP_DB_NAME

CMD_MYSQL="mysql -u root -p"${MY_ROOT_PASSWD}" "${WP_DB_NAME}
export CMD_MYSQL

echo "Package Update"

apt-get update >/dev/null 2>&1

echo "Installing Tools"
apt-get install -y unzip curl >/dev/null 2>&1

echo "Installing MySQL 5.5"

echo mysql-server-5.5 mysql-server/root_password password $MY_ROOT_PASSWD | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password $MY_ROOT_PASSWD | debconf-set-selections
apt-get install -y mysql-server>/dev/null 2>&1

sed -i -e "s/^\[client\]$/[client]\ndefault-character-set = utf8/" $MY_CNF
sed -i -e "s/^\[mysqld\]$/[mysqld]\nskip-character-set-client-handshake\n#default-character-set = utf8\ncharacter-set-server = utf8\ncollation-server = utf8_unicode_ci\ninit-connect = SET NAMES utf8/" $MY_CNF
sed -i -e "s/^\[mysqldump\]$/[mysqldump]\ndefault-character-set = utf8/" $MY_CNF
sed -i -e "s/^\[mysql\]$/[mysql]\ndefault-character-set = utf8/" $MY_CNF
/etc/init.d/mysql restart

echo "Installing Apache 2"
apt-get install -y apache2 >/dev/null 2>&1

echo "Installing PHP 5"
apt-get install -y php5 php5-common php5-mbstring php5-mysql>/dev/null 2>&1

/etc/init.d/apache2 restart

# phpMyAdmin
echo "Installing phpMyAdmin"

echo phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2 | debconf-set-selections
echo phpmyadmin phpmyadmin/reconfigure-webserver seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/dbconfig-install boolean true | debconf-set-selections
echo phpmyadmin phpmyadmin/dbconfig-install seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/db/app-user string phpmyadmin | debconf-set-selections
echo phpmyadmin phpmyadmin/db/app-user seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/db/dbname string phpmyadmin | debconf-set-selections
echo phpmyadmin phpmyadmin/db/dbname seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/method multiselect 'unix socket' | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/method seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/admin-user string root | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/admin-user seen true | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/admin-pass password $MY_ROOT_PASSWD | debconf-set-selections
echo phpmyadmin phpmyadmin/mysql/app-pass password $MY_ROOT_PASSWD | debconf-set-selections
echo phpmyadmin phpmyadmin/app-password-confirm password $MY_ROOT_PASSWD | debconf-set-selections
apt-get -y install phpmyadmin>/dev/null 2>&1

# WordPress
echo "Installing WordPress"

cd /var/www/
wget http://ja.wordpress.org/latest-ja.zip >/dev/null 2>&1
unzip latest-ja.zip >/dev/null 2>&1
rm -f latest-ja.zip
chown -Rf www-data:www-data wordpress

echo "Setup WordPress conf file"

cd wordpress
mv wp-config-sample.php $WP_CNF
sed -i -e "s/database_name_here/wordpress/" $WP_CNF
sed -i -e "s/username_here/wordpress/" $WP_CNF
sed -i -e "s/password_here/wordpress_passwd/" $WP_CNF

echo "Setup WordPress add user"

mysqladmin -u root -p${MY_ROOT_PASSWD} create ${WP_DB_NAME}
${CMD_MYSQL} -e "grant all privileges on wordpress.* to 'wordpress'@'localhost' identified by '"${WP_PASSWD}"';"

# Apache mod_rewrite Enable
a2enmod rewrite

# php.ini [Date] setting
sed -i -e "s/^\[Date\]$/[Date]\ndate.timezone = 'Asia\/Tokyo'/" ${PHP_CNF}
sed -i -e "s/^\[Date\]$/[Date]\ndate.timezone = 'Asia\/Tokyo'/" ${PHP_CLI_CNF}

/etc/init.d/apache2 restart

 

3.「Vagrantfile」の編集

「Vagtantfile」を開き編集します。


# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.

# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.provision :shell, :path => "bootstrap.sh"
end

4.仮想マシンの立ち上げ

<div>vagrant up</div>

C:\Users\mi\LAMP>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'precise32'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 80 => 8080 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Mounting shared folders...
[default] -- /vagrant
[default] Running provisioner: shell...
[default] Running: C:/Users/mi/AppData/Local/Temp/vagrant-shell20131004-7220-161
pd0r
stdin: is not a tty
Package Update
Installing Tools
Installing MySQL 5.5
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 6390
Installing Apache 2
Installing PHP 5
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified
domain name, using 127.0.1.1 for ServerName
...done.
Installing phpMyAdmin
Installing WordPress
Setup WordPress conf file
Setup WordPress add user
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1 for ServerName
... waiting .apache2: Could not reliably determine the server's fully qualified
domain name, using 127.0.1.1 for ServerName
...done.

自動インストールが終了しましたら、下記のようにブラウザ等で確認してください。

5.各種アプリの動作確認 (ブラウザで動作確認)

http://127.0.0.1:8080/

! Windows_Vagrant_LAMP_install(2)

 

phpMyAdminはこちらで起動
http://127.0.0.1:8080/phpmyadmin

ログインはユーザ「root」、パスワード「PASSWORD」

! Windows_Vagrant_LAMP_install(3)

! Windows_Vagrant_LAMP_install(4)

 

WordPressはこちらでアクセス
http://127.0.0.1:8080/wordpress

! Windows_Vagrant_LAMP_install(5)

 

 パスワードなどは、各種適当につけてあるので、実運用の場合には各々適切に変更してください。

また。仮想マシンの「CPU」「メモリ」量等、デフォルトのままでなので、動作が結構遅いと思います。
皆さんのクライアントマシンのマシンパワーにより調整してみてください。

! Windows_Vagrant_LAMP_install(6)

Similar Posts:

One thought on “Vagrantで自動的にLAMP環境を自動インストール。(+WordPress)

  1. Pingback: 開発環境構築 - Windows 8.1 Proで、ローカル開発環境(LAMPっぽいもの)の構築手段の選定。 - 001 (VMの選定) | yoshikawa.64kb

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


Time limit is exhausted. Please reload CAPTCHA.

コメントは承認待ちです。表示されるまでしばらく時間がかかるかもしれません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータがどう処理されているか知りたい方はこちらをお読みください