search
LoginSignup
10
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

VagrantでLAMP環境構築 + Cakephp3.6

目的と理由

  • XAMPPを使用するのではなく、Vagrantを使って環境構築したい。
  • Linux,MySQL,cakephp3のインストールが面倒くさいから一気に整えてしまいたい。
  • Cakephp3でDBでユーザー作成・権限付与、Cakephp3との接続の方法が知りたい。

実際にVagrantのインストールから
DB設計に移行したところまでを記載します。
こちらの記事がちょっとした環境構築の手順書になれば幸いです。

目次

1)VirtualBox,Vagrantのインストール
2)Vagrantfileの作成・修正
3)MySQL,Apache,PHPインストールの下準備
4)Vagrant upとその後の確認事項
5)Cakephp3のインストール
6)Apacheのconfigファイルの編集
7)MySQLのユーザーの作成と権限付与
8)Cakephp3とMySQLの接続
9)まとめ

構築手順

1)VirtualBox,Vagrantのインストール

どちらもOSにあったものをダウンロードする
※私の場合はWindows10 64bit

VirtualBoxのダウンロードとインストール
https://www.virtualbox.org/wiki/Downloads
Vagrantのダウンロードとインストール
https://www.vagrantup.com/downloads.html

2)Vagrantfileの作成・修正

  • Vagrant fileの作成
# Vagrantfileを置きたいディレクトリの作成
mkdir vagrant

# srcを置きたいディレクトリの作成
mkdir src

# Vagrantfileの作成(Vagrant init)
cd vagrant

# 新しくディレクトリの作成をしたい場合はmkdir
vagrant init "bento/centos-7.4"

※vagrantディレクトリとsrcディレクトリは同じ階層で作成する
bentoはchef社が提供しているvagrant用のbox
こちらがbentoの一覧↓
https://app.vagrantup.com/bento

  • Vagrantfileの修正
# コメントアウト(#)を削除
config.vm.network "private_network", ip: "192.168.33.10"

# パーミッションの設定
# config.vm.synced_folderの記述を修正してコメントアウト(#)を削除
config.vm.synced_folder "../src", "/vagrant", mount_options:['dmode=777','fmode=777']

# config.vm.provisionの記述を修正
config.vm.provision "shell", :path => "provision.sh"

※パーミッション設定しないと、Cakephp3がうまくインストールされなかったので注意
dmode:ディレクトリ、fmode:ファイルのパーミッション設定
dmode,fmodeについて詳しく書かれている記事↓
https://teratail.com/questions/29027
config.vm.networkについて詳しく書かれている記事↓
https://qiita.com/ringo0321/items/aec4c543cce63e60a529

3)MySQL,Apache,PHPインストールの下準備

  • provision.shの作成
# ディレクトリ内の確認
ls

# Vagrantfileがある階層でprovision.shの作成
touch provision.sh

※provision.shを使用しないでも、
vagrant up後にそれぞれインストールすることもできるが、
provision.shに書けばvagrant up時に勝手にインストールなどやってくれるので便利

  • インストールなどの下準備

以下をすべてコピーして、作成したprovision.shにペースト↓

# Apache,unzip,gitのインストール
yum -y install httpd unzip git

# MySQLのインストール
yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum -y install mysql-community-server

# PHPのインストール
yum -y install epel-release
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-intl php-mysql php-xml

# ApacheがVagrant up時に起動する設定
systemctl enable httpd.service
systemctl start httpd.service

# MySQLがVagrant up時に起動する設定
systemctl enable mysqld.service
systemctl start mysqld.service

# Vagrantの共有フォルダにパスを設定
rm -rf /var/www/html
ln -fs /vagrant /var/www/html

※共有フォルダのパス設定をすることによって、
Vagrant内の/var/www/htmlから下の階層をエクスプローラー(Mac:Finder)で確認できる
パッケージ管理ツール(rpm,yum,dnf)について↓
https://uxmilk.jp/9715
yumについての記事↓
http://www.atmarkit.co.jp/ait/articles/1608/29/news019.html
systemctlについての記事↓
https://qiita.com/sinsengumi/items/24d726ec6c761fc75cc9
rmコマンドの記事↓
https://wa3.i-3-i.info/word11170.html
lnコマンドの記事↓
https://wa3.i-3-i.info/word11183.html

4)Vagrant upとその後の確認事項

  • Vagrantの起動
# Vagrantfileがあるディレクトリまで移動
cd vagrant

# Vagrantfileがあるか確認
ls

# Vagrantを起動
vagrant up

※終わるまでに時間がかかるので、エラーがでなければ待つのみ

  • vagrant up後の確認
# Vagrant内にログイン
vagrant ssh

# Apacheバージョン確認
httpd -version

# MySQLバージョン確認
mysql --version

#PHPバージョン確認
php -v

※それぞれバージョンが確認できたら環境構築は完了
sshについての記事↓
https://wa3.i-3-i.info/word11722.html

5)Cakephp3のインストール

  • composer.phar,Cakephp3のインストール
# 共有フォルダに移動
cd /var/www/html

# composer.pharのインストール
curl -s https://getcomposer.org/installer | php

# Cakephp3のインストール
php composer.phar create-project --prefer-dist cakephp/app cms

※Cakephp3インストールの"cms"はディレクトリ名
※より詳しい内容はこちら(Cakephp book)↓
https://book.cakephp.org/3.0/ja/quickstart.html
composerについての記事↓
https://qiita.com/yando/items/7711be5116e5392c7c96

6)Apacheのconfigファイルの編集

  • httpd.confの修正
# Apacheのconfigファイルを参照
sudo vi /etc/httpd/conf/httpd.conf

# AllowOverride NoneをAllに変更
<Directory "/var/www/html">
    ...
    AllowOverride All
</Directory>

# Apcheの再起動
sudo systemctl restart httpd

※この作業をしないとCSSが反映されないので注意

7)MySQLのユーザーの作成と権限付与

  • MySQLでユーザーの作成
# rootでMySQLにログイン
mysql -u root

# ユーザーの作成
create user {username}@localhost identified by {password};

※パスワードが必要なければ、identifiedからは記述しない

  • 作成したユーザーの確認
# DB'mysql'に移動
use mysql

# ユーザーの確認
select * from user\G;
  • 権限の付与
# 全DBの全権限を作成したユーザーに付与
grant all on *.* to {username}@localhost identified by {password};

※権限付与に制限を設けたい場合はgrant all on *を変更する必要あり
※パスワードが必要なければ、identifiedからは記述しない

  • ログインの確認
# 一度MySQLから出る
exit

# 作成したユーザーでMySQLにログイン
mysql -u {username} -p

※パスワードをなしにした場合はEnterでログインが可能

  • DBの作成
# DBの作成
create database {DBname} character set utf8mb4;

# DBを確認
show databases;

※DB作成のCHARACTER SET utf8mb4は適宜変更

8)Cakephp3とMySQLの接続

  • Cakephpのapp.phpの編集
# cms > config > app.phpを参照
# username,password,databaseを修正
'Datasources' => [
        'default' => [

            ...            

            'username' => '{username}',                  <--修正
            'password' => '{password}',                  <--修正
            'database' => '{DBname}',                    <--修正

            ...

※"cms"は作成したディレクトリ名
※パスワードをなしにした場合は''にする

  • ローカルサーバーにアクセス
# 作成したCakephpのディレクトリにアクセス
http://192.168.33.10/cms

※"cms"は作成したディレクトリ名

alt

※DataBaseの欄のマークが緑になっていたら、接続成功

  • Vagrant環境の停止
# Vagrant環境を停止する
vagrant halt

9)まとめ

この構築をすることで、XAMPPに頼らず環境構築することができます。
次回からのvagrant upはさほど時間がかからずに起動します。
お疲れ様でした!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
10
Help us understand the problem. What are the problem?