LoginSignup
21
4

More than 1 year has passed since last update.

1. 初めに

初めまして、piroです。
初投稿の記事で、色々と足らなかったり見づらいことあるかもしれませんが、良ければ最後まで見てください!!!

2.概要

「VagrantでAmazon Linux2 PHP 8.1 + Laravel 9 + Apache 2.4 + Mysql(おまけ)」を環境構築する内容になります。
2日間に分けて投稿するのでよろしくお願いします。

1日目 : Vagrant設定、PHPインストール・設定、Laravel インストール・設定 ←ここ
2日目 : Apache インストール・設定、Mysql インストール・設定

  • 環境構築した際の最新バージョン
  • Windows 10 の環境構築になります。
  • コマンド実行は「Git Bash」を使用

1日目は以下のサイト参考にしております。
[参考URL]
https://qiita.com/ntm718/items/b06188c459fe70a3fe87
https://dev.classmethod.jp/articles/ec2-php81-laravel9/

3. 前提条件

  1. Vagrantがインストールされていること。

  2. Virtualboxがインストールされていること。

  3. Vagrant環境でVirtualboxの共有フォルダが使用できること。

[投稿者の使用バージョン]
Vagrantは2.3.0を使用
Virtualboxは6.1.32を使用

4.環境構築

4-1. Vagrant環境構築

4-1-1. 環境構築用のフォルダを作成して、フォルダへ移動
C:\Users\user\php_workspase\vagrant
4-1-2.Vagrantの設定ファイル作成
コマンド
'vi Vagrantfile'
4-1-3.Vagrantの設定
Vagrantfile
  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  #config.vm.box = "base"
   config.vm.box = "gbailey/amzn2"
   config.vm.network "private_network", ip: "192.168.33.10"
  
  # share folder settings
  config.vm.synced_folder "./src","/var/www/html/src", create:"true", group:"apache", :mount_options => ['dmode=775', 'fmode=775']
  config.vm.provision "shell", run: "always", inline: <<-SHELL
    systemctl restart httpd.service
  SHELL
  • config.vm.box : 使用するVMイメージ指定。
    以下のVMイメージを使用。Amazon Linux2のVMになります
    https://app.vagrantup.com/gbailey/boxes/amzn2
  • config.vm.network : プライベートネットワーク設定
4-1-5. Vagerat起動

4-1-2で作成したファイルがあるフォルダ上実行

コマンド
vagrant up
  • 初回は、virtualbox等に色々と設定等行うので時間かかります

4-2. PHPインストール

4-2-1.Virtualboxの環境へ接続
コマンド
    vagrant ssh

接続すると以下のようになる
image.png

4-3. Amazon Linux2の各ソフトアップデート

4-3-1.アップデートコマンドを実行
コマンド
sudo yum update
4-3-2.PHP8.1が表示されているか確認
コマンド
amazon-linux-extras
  • 8.0のみしか表示されないので、4-2-3以降を実施
  • 8.1が表示されることがあれば、4-2-5以降を実施

以下の様に8.0しか表示されない場合になります
image.png

4-3-3.php8.1の導入できるように設定
コマンド
sudo amazon-linux-extras install epel
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
4-3-4.php8.1が導入可能かチェック

以下のコマンド実行してphp81が見つかればインストールが可能になります。

コマンド
sudo yum search php81

image.png

4-3-5.PHP8.1をインストール
コマンド
sudo yum install php81 php81-php-mbstring php81-php-mysqlnd php81-php-gd php81-php-xml php81-php-fpm
4-3-6.「php81」コマンドを「php」で実行できるように設定
コマンド
php -v

image.png

上記の様に「bash: php: command not found」なる場合は、以下のコマンドを実施

コマンド
sudo alternatives --install /usr/bin/php php /usr/bin/php81 1

image.png

4-4. Laravelインストール

4-4-1. Composerをインストール
コマンド
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php
sudo php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

公式サイト(公式サイト通りコマンド実行)
https://getcomposer.org/download/

4-4-2.Composerインストール確認
コマンド
composer --version

image.png

4-4-3.Laravel インストールフォルダ作成(仮)※2日目の記事でApacheをインストールした際に再度行うので、ここでは一旦インストールの確認
コマンド
sudo mkdir /var/wwww
sudo chown vagrant /var/wwww
cd /var/wwww
composer create-project --prefer-dist laravel/laravel app

config.vm.synced_folder "./src","/var/www/html/src"
の部分が共有フォルダ設定

5.終わりに

1日目の場合は「config.vm.synced_folder "./src","/var/wwwww/"」にするとコーディングはできます。
2日目以降で、Apacheを使用してWeb上の起動まで確認できます。引継ぎお付き合いいただければと思います。

21
4
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
21
4