Vagrant + CentOS8 + Laravel で開発環境を構築

Vagrant + CentOS8 + Laravel で開発環境を構築

前回まで

前回までの記事で、LAMP 環境の構築まで終えました。

今回の記事では、Laravel のインストール、設定、データベースの接続、マイグレーションまで行っていきます。

環境

  • Windows10
  • Apache:2.4
  • PHP:7.4.11
  • MySQL:8.0.21

Composer のインストール

Laravel をインストールするために Composer をインストールします。Composer とは PHP のパッケージ管理システムです。

# rootユーザーになっていたら一般ユーザーに切り替える
exit

# インストーラーをダウンロード
wget https://getcomposer.org/installer -O composer-installer.php

# composerをインストール
php composer-installer.php

All settings correct for using Composer
Downloading...

Composer (version 1.10.15) successfully installed to: /home/vagrant/composer.phar
Use it: php composer.phar

# ホームディレクトリへ移動
cd ~

# composerコマンドがどこからでも使えるようにする(rootユーザーでのアクセスが必要)
sudo mv composer.phar /usr/local/bin/composer

# シェルにPATHが通っているか確認する
# /usr/local/bin が入っていれば大丈夫です
echo $PATH

# バージョンの確認
composer -v

Laravel インストーラーのダウンロード

# Laravelインストーラーをダウンロード時に、rootユーザーだとエラーが出る
Do not run Composer as root/super user! See https://getcomposer.org/root for details

# rootユーザーであれば、一般ユーザーに切り替え

# Laravelインストーラーをダウンロード
composer global require laravel/installer

Laravel 実行ファイルを$PATH に登録

# グローバルなComposerのインストールパスを探す
composer global about
Changed current directory to /home/vagrant/.config/composer
Composer - Dependency Manager for PHP
Composer is a dependency manager tracking local dependencies of your projects and libraries.
See https://getcomposer.org/ for more information.

# /home/vagrant/.config/composer/vendor/bin を登録する

# ホームディレクトリ配下の .bashrc ファイルにPATHを登録する
cd ~
vim .bashrc
# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH:$HOME/.config/composer/vendor/bin"
export PATH

# $HOME/.config/composer/vendor/bin この部分を追記

# 一度ログアウトする
exit

# 再度ログイン後、下記のコマンドを実行
laravel -V

/var/www/html/ の権限を変更する

/var/www/html/ ディレクトリを、Web サーバから書き込み可能にするために権限を変更します。

chown -R apache:apache /var/www/html

# 所有者とグループが変更されていることを確認
ls -la
drwxr-xr-x. 2 apache apache 23 Nov 22 11:54 html

新しいプロジェクトを作成する

今回は Laravel6 系を入れていきます。

# rootユーザーへ切り替え
sudo -i

# インストール先へ移動
cd /var/www/html/

# インストール
# composer create-project --prefer-dist laravel/laravel [作成するプロジェクト名] "6.*"
composer create-project --prefer-dist laravel/laravel laravel_dev "6.*"

Apache の設定を変更する

ブラウザから Laravel のトップページが表示できるように、Apache の設定を変更していきます。123 行目あたりのドキュメントルートの記述を、Laravel をインストールしたプロジェクト配下にある public ディレクトリに変更します。

こうすることで、ブラウザからアクセスした際にここのディレクトリ内にある index.php ファイルが表示されるようになります。

vim /etc/httpd/conf/httpd.conf

# DocumentRoot "/var/www/html"
DocumentRoot "/var/www/html/laravel_dev/public"

Laravel の権限を変更する

Laravel ディレクトリを、Web サーバから書き込み可能にするために権限を変更します。

sudo chown -R apache:apache /var/www/html/laravel_dev/storage
sudo chown -R apache:apache /var/www/html/laravel_dev/bootstrap/cache

Apach を再起動

systemctl restart httpd

ブラウザからサーバの IP アドレスでアクセスするとトップ画面が表示されれば完了です。

hello_laravel

データベースを作成

コマンドラインからデータベースへ接続し、新しくデータベースを作成します。

mysql -u root -p
Enter password:

# 新しくデータベースを作成
mysql> create database laravel_DB;

# 正しく作成されたか確認
mysql> show databased;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.69 sec)

# ログアウト
exit;

データベースに接続する準備

Laravel からデータベースに接続するために、.envファイルを編集していきます。

cd /var/www/html/laravel_dev

vim .env
--- 抜粋 ---
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_DB
DB_USERNAME=root
DB_PASSWORD='設定したパスワードを入力'
------------

# キャッシュをクリア
php artisan config:clear
php artisan cache:clear

# マイグレーションを実行
php artisan migrate

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (0.26 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0.35 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (0.1 seconds)


# ロールバックも実行してみる
php artisan migrate:rollback

Rolling back: 2019_08_19_000000_create_failed_jobs_table
Rolled back: 2019_08_19_000000_create_failed_jobs_table (0.07 seconds)
Rolling back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_100000_create_password_resets_table (0.08 seconds)
Rolling back: 2014_10_12_000000_create_users_table
Rolled back: 2014_10_12_000000_create_users_table (0.07 seconds)

無事に Laravel の開発環境まで構築することが出来ました!

次回はサーバ側のディレクトリと、ホスト OS 側のディレクトリの共有など細かい設定を行って使いやすい環境を構築して行こうと思います。

お疲れ様でした!