この記事の目次
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を構築してみましょう。