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. 前提条件
-
Vagrantがインストールされていること。
-
Virtualboxがインストールされていること。
-
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の設定
# 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
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以降を実施
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
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
上記の様に「bash: php: command not found」なる場合は、以下のコマンドを実施
sudo alternatives --install /usr/bin/php php /usr/bin/php81 1
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
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上の起動まで確認できます。引継ぎお付き合いいただければと思います。