Laravel開発環境構築
VPC設定
- vpc作成
- パブリックサブネットとプライベートサブネットを作成
EC2設定
- EC2インスタンス作成
- EC2へSSH接続 接続方法はこちらの記事
-
sudo yum update -y
でyumを最新状態にする -
sudo yum -y install httpd
でアパッチをインストール -
sudo systemctl start httpd.service
でアパッチ起動 -
sudo systemctl status httpd.service
で起動しているかの確認 -
ps -axu
でも確認可能。この時は/usr/sbin/httpd
が表示されているかも確認。
上記で確認すると大量に結果が表示される。
こういった時は絞り込みをする。
ps - axu | grep <検索文字>
例)ps -axu | grep httpd
-
sudo systemctl enable httpd.service
これで、サーバーを起動した時に自動的にアパッチも起動する様に設定(これをしないと、サーバーが停止すると再度起動しても、アパッチは停止したままで、都度起動が必要な状態のままになる。
自動起動設定が機能したか確認するためにはsudo systemctl is-enabled httpd.service
を入力。これでenabled
が表示されればOK
ファイアーウォール設定
上記でアパッチをインストールしてもこれだけではwebページへアクセス出来ない。それはアパッチをインストールしただけでは通信がファイアーウォールによって遮断される為。
その為、現状はEC2の「パブリック IPv4 アドレス」を開いても一向に開かれず、読み込み画面がぐるぐるするだけ。
これを解除するために、EC2インスタンスの該当「セキュリティグループ」を確認する。
インバウンドのルールにタイプSSH、ポート範囲22などと記載されている場合、ssh接続以外では接続できない。その為、httpアクセスが出来る様に設定を変える。
インバウンドのルールにHTTPを追加し、ソースの部分は「Anywhere-IPv4」にすると接続可能に。
手順
- EC2のセキュリティグループで作成したEC2インスタンスを選択し、インバウンドルールの編集を行う。
タイプ : HTTP, ソース : myAnywher-IPv4を選択する。
これで設定OK
Elastic IPアドレスを固定する。
これを設定しないとインスタンスを停止するたびにアドレスが変わっていない。
但し、ElasticIPアドレスを設定したインスタンスを停止すると課金される!
使っている間はインスタンスは起動しておき、インスタンスを停止する場合、ElasticIPアドレスは開放し、さらに関連付けの解除をする必要あり!!
RDSの設定
- RDS設定の前に推奨されているプライベートサブネットを2つ作成する。
既にVPCの設定で1つプライベートサブネットの作成をしているので、追加で1つ作成する。 - DB用のEC2のセキュリティグループを1つ作る
- RDSでサブネットグループを作成する
- RDSでパラメーターグループを作成する
- RDSでオプショングループを設定する。
- RDSデータベースを作成する。
- EC2にssh接続する。
-
sudo yum -y install mysql
でmysqlをインストールする - RDSを作成したらEC2のElasticIPアドレスを使用してssh接続をターミナルから行う。
*RDSのデータベースから作成したDBのエンドポイントを確認する。
ターミナルに戻ってmysql -h <エンドポイント> -u root -pを実行し、RDSを作成した際のパスワードを入力するとmysqlにログイン出来る。
-h : エンドポイントを指定している
-u : ログインするユーザーを指定している(rootはマスターユーザーの事RDS作成時に自分でここは設定している)
-p : これをする事でこの後にパスワード入力が求められる。これをしないと画面上にパスワードが表示される形でログインする事になる
Laravel構築
上記までのAWS設定完了後、LaravelのソースをAWSへアップロードしていく。
詰まったところ
公式のコマンドでLaravelのプロジェクトが作成されない
curl -s "https://laravel.build/example-app" | bash
実行すると
Unable to find image 'laravelsail/php81-composer:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/laravelsail/php81-composer/manifests/latest: unauthorized: incorrect username or password.
See 'docker run --help'.
bash: line 16: cd: example-app: No such file or directory
解決
上記はDockerにログインしていないというエラーだった
Docker公式
こちらからログインして、再度実行でOK