Laravelでブログサイトを作る 05. Laravel開発環境の用意

はじめに
Windows11環境に、VirtualBox+Vagrantを使用して環境を作成します。
上記の環境構築方法については前回を御覧ください。
仮想環境に導入するもの
- CentOS 7.9
- PHP 7.4
- MySQL 8.0
- composer 2.1
- git 1.8.3.1
- nodejs 16.13.1
Vagrantfile
vagrantを利用して仮想サーバを作成します。
今回使用するVagrantfileは以下になります。
Vagrant.configure("2") do |config|
# Box名
config.vm.box = "CentOS7"
# ホストオンリーの設定にIPを指定します。ブラウザからアクセスする時等は以下のIPです。
config.vm.network "private_network", ip: "192.168.56.10"
# メモリ(数値は自分の環境と相談)
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
# Windows側のファイルを、仮想サーバに認識させる
# 作業ディレクトリのファイルを、仮想サーバ内では`/vagrant`として扱うようにする
config.vm.synced_folder ".", "/vagrant", mount_options:['dmode=777','fmode=777']
# 初回起動時に実行
config.vm.provision "shell", inline: <<-SHELL
# タイムゾーン・言語設定の変更
timedatectl set-timezone Asia/Tokyo
localectl set-locale LANG=ja_JP.utf8
# 更新
yum -y update
yum -y update kernel
SHELL
# 再起動(vagrant-reloadプラグイン必須)
config.vm.provision "reload"
# 初回に実行するコマンド(環境を構築する)
config.vm.provision "shell", inline: <<-SHELL
# apacheインストール
yum -y install httpd
# 邪魔なapache設定を削除
rm /etc/httpd/conf.d/welcome.conf
# PHPインストール
yum -y install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php74 php php-devel php-bcmath php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql
# PHP設定調整
sed -i -e "s/memory_limit = 128M/memory_limit = 1024M/g" /etc/php.ini
sed -i -e "s/;date.timezone =/date.timezone = Asia\/Tokyo/g" /etc/php.ini
sudo chmod 777 /var/lib/php/ssession/
# MySQLインストール
yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
# MySQL認証方式の指定
echo 'default-authentication-plugin = mysql_native_password' >> /etc/my.cnf
# apache/MySQL自動起動設定
systemctl enable httpd.service
systemctl enable mysqld
# ファイアウォール停止
systemctl stop firewalld
systemctl disable firewalld
# composerインストール
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
# gitインストール
yum -y install git
# unzipインストール
yum -y install unzip
# Node.js(npm)インストール(yumで古いバージョンを取得→nで新しいものを取得→古い方を削除)
yum -y install nodejs npm
npm install -g n
n stable
yum -y remove nodejs npm
SHELL
# 再起動
config.vm.provision "reload"
end
サーバ内作業
vagrant sshでサーバ内に入って、以下の作業を行えば開発環境の構築は完了です。
$ pwd
/home/vagrant
# [コメント] apache設定の調整
$ sudo sed -i -e "s/User apache/User vagrant/g" /etc/httpd/conf/httpd.conf
$ sudo sed -i -e "s/Group apache/Group vagrant/g" /etc/httpd/conf/httpd.conf
$ sudo sed -i -e "s/DirectoryIndex index.html/DirectoryIndex index.php index.html/g" /etc/httpd/conf/httpd.conf
$ sudo sed -i -e "s/\/var\/www\/html/\/home\/vagrant\/blog\/public/g" /etc/httpd/conf/httpd.conf
$ sudo sed -i -e "s/AllowOverride None/AllowOverride All/g" /etc/httpd/conf/httpd.conf
# [コメント] Laravelインストーラ取得
$ composer global require laravel/installer
$ echo "export PATH=~/.config/composer/vendor/bin:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
# [コメント] Laravelプロジェクト作成
$ laravel new blog
# [コメント] デフォルトパスワードを表示
$ sudo grep "A temporary password is generated" /var/log/mysqld.log | sed -s 's/.*root@localhost: //'
# [コメント] rootパスワードを設定、データベース作成
# [コメント] パスワードを求められるので、一手前で表示させたデフォルトパスワードを使用する
$ mysql -uroot -p --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_pass_123'; flush privileges;CREATE DATABASE blog;"
# [コメント] ENVにMySQLパスワードを設定
$ sed -i -e "s/DB_PASSWORD=/DB_PASSWORD=NEW_pass_123/g" /home/vagrant/blog/.env
# [コメント] apache再起動
$ sudo systemctl restart httpd
動作確認
http://192.168.56.10/にアクセスし、Laravelのwelcome画面が表示されたら無事、構築完了です。
2022-04-08 09:00:00
