12
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VagrantでLaravel開発環境を構築する

Last updated at Posted at 2017-07-06

はじめに

Laravelでの開発にあたり、自PC上にvagrantで仮想環境を構築します。
既に世の中にたくさん情報がありますが、途中でエラーが発生したり、
複数の情報を合わせて見なければならなかったりだったので、自分用のメモです。

環境

スクリーンショット 2017-07-06 15.18.18.png

インストールするもの

  • CentOS 6.7
  • Apache2
  • MySQL5.7
  • PHP7
  • Composer1.4

Vagrantfileについて

Vagrantfileshell は以下のURLに登録しているものを使用します。
https://gist.github.com/ayayan-z/e09730a3cb4ef54ff4016f54a9a6d4fc

  • Vagrantfile 内のbox名は、必要に応じて書き換えてください。 config.vm.box = "centos6.7"
  • 基本的に上記以外の書き換えは不要です。
  • lamp.sh によって、上記の「インストールするもの」 全てがインストールされます。

手順

1. vagrantを起動する

$ vagrant up

2. vagrantにssh接続する

$ vagrant ssh

3. local と vagrant 間でファイル共有できるようにする

3-1. Vagrantfile の 以下の部分のコメントアウトを外す

Vagrantfile
  config.vm.synced_folder "./", "/var/www/html",
    :owner => "apache",
    :group => "apache",
    :mount_options => ["dmode=777,fmode=775"]

※ Laravelプロジェクト作成後に 権限関連をごにょごにょしなくて良いように、上記のように設定しました。

3-2. vagrantを再起動する

$ vagrant halt
$ vagrant up

3-X. 再起動でエラーが発生した場合...

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u apache`,gid=`getent group apache | cut -d: -f3`,dmode=777,fmode=775 vagrant /vagrant
mount -t vboxsf -o uid=`id -u apache`,gid=`id -g apache`,dmode=777,fmode=775 vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

下記の記事で解決できました。
http://qiita.com/osamu1203/items/10e19c74c912d303ca0b

3-4. 確認

以下のようにインストールされました。(2017.07.06 現在)

$ vagrant ssh

[vagrant@localhost vagrant]$ httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Mar 22 2017 06:52:55

[vagrant@localhost vagrant]$ mysqld --version
mysqld  Ver 5.7.18 for Linux on x86_64 (MySQL Community Server (GPL))

[vagrant@localhost vagrant]$ php -v
PHP 7.0.21 (cli) (built: Jul  5 2017 14:45:27) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.21, Copyright (c) 1999-2017, by Zend Technologies
    with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

[vagrant@localhost vagrant]$ composer --version
Composer version 1.4.2 2017-05-17 08:17:52

4. Laravelインストール & プロジェクト作成

インストール、プロジェクト作成、一気にやります。

[vagrant@localhost vagrant]$ cd /vagrant
[vagrant@localhost vagrant]$ composer create-project --prefer-dist laravel/laravel laravel_app

/var/www/html ではなく、 /vagrant で実行するのがポイント
/var/www/html だとエラーになる。なぜ。。。)

以下のバージョンがインストールされました。(2017.07.06 現在)

[vagrant@localhost laravel_app]$ cd /vagrant/laravel_app/
[vagrant@localhost laravel_app]$ php artisan --version
Laravel Framework 5.4.28

5. Apacheの設定

5-1. httpd.conf を編集する

[vagrant@localhost vagrant]$ sudo vi /etc/httpd/conf/httpd.conf

この部分を...

/etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
# ... 
# ... 
<Directory "/var/www/html">

↓以下のように書き換える

/etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/laravel_app/public"
# ... 
# ... 
<Directory "/var/www/html/laravel_app/public">

5-2. apahce再起動

[vagrant@localhost vagrant]$ sudo service httpd restart

6. 動作確認

image.png

でけた。

7. ついでに

MySQLのパスワードを簡単なものに変えておきます。

初期パスワードを確認します。

[vagrant@localhost vagrant]$ grep -e 'A temporary password is generated for root@localhost' /var/log/mysqld.log

初期パスワードで、mysqlに接続します。

[vagrant@localhost vagrant]$ mysql -u root -p

パスワードを変更します。

mysql> SET GLOBAL validate_password_length=4;
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> set password for root@localhost=password('root');
12
20
0

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
  3. You can use dark theme
What you can do with signing up
12
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?