PHP
WordPress
Apache
環境構築
Vagrant

Wordpressのローカル環境を、Vagrantでゼロから構築

More than 1 year has passed since last update.


目標


  • vagrantを立てる

  • Wordpressの最初の画面が見れるまで!


詳細


  • Ubuntu16.04

  • PHP:7系

  • Mysql:5.7系

  • Apache:2.4系

とても普通の構成です。


VirtualBoxとVagrantのインストール

割愛しますmm

以下の記事を参考にすればできると思います。


vagrant upをするまで


vagrant initを叩く

ここまでで、以下のコマンドを叩いた時に、同様の結果がでるように頑張ってください!

$vagrant box list

ubuntu16.04 (virtualbox, 0)

$vagrant init ubuntu16.04


Vagrantfileの編集

これでVagrantfileができますので、それを編集。

以下のように。

# -*- mode: ruby -*-

# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu16.04"

config.vm.network "private_network", ip: "192.168.33.10"

config.vm.synced_folder ".", "/var/www/html", nfs: true

end

「nfs使わないよ。」という方は無視してく↓。

config.vm.synced_folder ".", "/var/www/html"でも大丈夫でしょう。


vagrant up&ssh

$vagrant up

$vagrant ssh

これで仮想環境の中に入れます。

ここからは基本的にvagrantの中での操作です。


 各種インストール


とりあえずアップデート

$sudo apt update

自分は盲目的に最初のvagrant sshのあとにアップデートするのですが、アカン!!という方はよく調べてから・・・。


Apacheのインストール

$sudo apt install apache2

# 以下でバージョンを確認できたらok
$apache2ctl -v


Mysqlのインストール

$sudo apt install mysql-server #途中紫の画面がでますが、無視してEnter!セキュリティを気にする方は注意して設定してください。

# このままだと、rootログインできないので。
$sudo rm -fr /var/lib/mysql
$sudo mkdir /var/lib/mysql
$sudo chown mysql:mysql /var/lib/mysql
$sudo /usr/sbin/mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
$sudo /etc/init.d/mysql restart

# ↓でログインできたらok
$mysql -u root -p

# DBの作成
mysql> create database wordpress;


PHPのインストール

$sudo apt install php libapache2-mod-php php-mysql php-mbstring php-mcrypt php-curl php-gd php-xml

# 以下でバージョンが確認できたらok
$php -v


設定ファイルの変更など


apache2.confの編集

$sudo vim /etc/apache2/apache2.conf

中頃に<Directory />・・・などと書かれているところがあると思うので、その周辺を以下のように。

<Directory />

Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>

なお、今回wordpressのプロジェクトディレクトリは/var/www/html/wordpress/とします。

編集後は以下コマンドでシンタックスチェックをします。

$apache2ctl configtest #Syntax okみたいなのがでます。

# 以下コマンドで動けばok
$sudo service apache2 start


wordpressを持ってくる

https://ja.wordpress.org/

本家のダウンロードをボタンを押します。

zipを解凍したら、wordpressというディレクトリが出てくると思います。

それをVagrantfileと同じディレクトリへ移動します。


共有ディレクトリについて

vagrantはmac側とディレクトリを共有することができます。

今回はmacのVagrantfileの場所と、vagrant側の/var/www/html/を共有しています。


wordpressをApacheで動かせるように。

現状で、Apacheもwordpress本体も用意されていますが、それらが結びついていません(適切な表現が・・・)。

vagrant側です。

$sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/010-wordpress.conf

# ディレクトリ設定
$sudo vim /etc/apache2/sites-available/010-wordpress.conf

以下のようにします。

<VirtualHost *:80>

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/wordpress/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

DocumentRootを書き換えただけです。

バーチャルホストを有効に

$sudo a2dissite 000-default

$sudo a2ensite 010-wordpress
$sudo systemctl restart apache2


wordpressディレクトリの権限を変更

$sudo chown -R vagrant:www-data wordpress


最後にApache Restart!

$sudo systemctl restart apache2


ブラウザにアクセス

http://192.168.33.10/ ここにアクセスしたらwordpressの初期画面が見れると思います。


データベース情報

wordpressの初期画面で入力するDB情報です。

データベース名: wordpress

ユーザー名: root
パスワード:
データベースホスト名: localhost
テーブル接頭辞: wp_ ※ パスワードなしでOK


まとめ

最後までたどり着けたでしょうか・・・。

解説が少ない、稚拙な文章です申し訳ないです。

ちなみに今回作った環境を、$vagrant packageすると、次回以降簡単に構築できるようになります。

詳しくは調べてみてください!