2021/05/26

Laravelとは?AWSのEC2で構築する方法について紹介します!

 
  

Laravelとは?


Laravelとは、PHPのフレームワークの1つで、もっとも人気のフレームワークです。

その他には、CakePHPが有名です。LaravelもCakePHPも素晴らしいフレームワークですが、それぞれ特徴があるため、メリット、デメリットを確認しておきましょう。

AWSでLaravelを構築するには?


AWSでLaravelを構築するには、主に3つの方法があります。

1つ目は、AWS EC2(Amazon Elastic Compute Cloud)というクラウドサーバーで構築をする方法です。一番ベーシックな手法ですが、AWSの設定からサーバーの設定まで必要なため、構築を完了するまで少し時間がかかります。

2つ目は、Elastic Beanstalkという簡単にデプロイしてくれるサービスを利用する方法です。言語に合わせた環境を自動で構築してくれるため、利用者は簡単にデプロイを実施することができます。

3つ目は、Amazon LightsailというWebシステムを構築する際に必要となるサービスを、パッケージとして提供してくれるサービスを利用する方法です。Laravel用のサービスを選択することで、AWSで必要なサービスを全て用意できます。

AWS EC2でLaravelを構築する方法


AWS EC2でLaravelを構築する方法について紹介します。

なお、AWSのアカウントを持っていることを前提に説明します。まだアカウントを持っていない人は登録しましょう。

EC2を作成し、SSH接続まで確認する

Laravelを構築するためにAWS EC2インスタンスを作成します。

AWSにログイン後、EC2を開き、インスタンス起動を選択します。Amazon Linuxを選択し、インスタンスの作成を実施しましょう。

インスタンスの作成が完了すれば、sshで接続して無事に作成が完了しているかを確認しましょう。インスタンス作成時に使用したキーファイル (hogehoge.pem)を利用して以下のようにSSH接続します。

ssh -i hogehoge.pem ec2-user@xx.xxx.xx.xxx



無事に接続が完了し、以下のように表示されれば完了です。

Warning: Permanently added 'testtest.ap-northeast-1.compute.amazonaws.com,xxx.xx.xxx.xx' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
11 package(s) needed for security, out of 13 available
Run "sudo yum update" to apply all updates.



最後に

sudo yum update



を実行して、インスタンスを最新の状態にしておきましょう。

Apacheをインストールする

EC2の作成ができたら、Laravelを動かすためのサーバーであるApacheをインストールします。

Apacheをインストールします。

sudo yum install httpd



Apacheを起動してみます。

sudo systemctl start httpd



自動で起動するように設定してみましょう。

sudo systemctl enable httpd



Apacheが無事に動いているかを確認します。

systemctl status httpd.service



表示が以下のようにActiveだと正常に動いていますので、次に進みましょう。

 httpd.service - The Apache HTTP Server
 Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
 Active: active (running) since Thu 20YY-MM-DD 14:40:15 UTC; OOs ago


MySQLをインストールする

Apacheのインストールが完了したらMySQLをインストールします。

MySQLのインストールを実施します。

sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
sudo yum install mysql-community-server -y


インストールが完了したら、起動してみましょう。

sudo systemctl start mysqld.service



自動的に起動するように設定します。

sudo systemctl enable mysqld.service



正常に起動できているか確認しましょう。

systemctl status mysqld.service


MySQLは自動的にデフォルトパスワードが設定されますので、以下のコマンドで確認しておきましょう。

sudo cat /var/log/mysqld.log | grep password


PHPとcomposerをインストール

PHPとPHPのライブラリである、composerをインストールします。

PHPと必要なパッケージをインストールします。

sudo amazon-linux-extras install php7.3
sudo yum install php-cli php-xml php-json php-mbstring php-process php-common php-fpm php-zip php-mysqlnd -y



正常にインストールされたかを確認しましょう。

php -v


最後にcomposerをインストールしましょう。

sudo curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer


Laravelをインストール

Laravelをインストールします。

htmlフォルダへ移動し、先ほどインストールしたcomposerを利用します。

cd /var/www/html
composer create-project --prefer-dist laravel/laravel hogehoge


Laravelの設定を実施します。

composer update
chmod -R 777 bootstrap/cache
chmod -R 777 storage
php artisan key:generate



設定ファイルである、.envファイルについては必要であれば修正してください。

最後にApacheの設定をLaravelに合わせましょう。

sudo vi /etc/httpd/conf/httpd.conf



上記のようにファイルを開き、

DocumentRoot /var/www/hogehoge/public
<directory "=" var=" www="html=" hogehoge=" public"=">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted



以上のように修正します。

最後にApacheを再起動すれば、Laravelのページが表示されます。

sudo systemctl restart httpd


AWS EC2でLaravelを構築しよう!


AWSでLaravelを構築するために、今回はEC2をメインに紹介してきました。

AWSでは、もっと簡単に構築できるサービスとしてElastic BeanstalkやAmazon Lightsailがあります。しかし、AWS EC2での構築ができれば、これらを使った構築を簡単に感じられるでしょう。ぜひAWSでLaravelを構築してみましょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】