LoginSignup
0
0

More than 1 year has passed since last update.

AWS ec2 デプロイ laravel8 php8 mysql8

Posted at

ほぼ受け売りです。
参考:
公式
LaravelをAWSのEC2へデプロイする手順
laravelをAWS EC2にデプロイする

インバウンド HTTP (ポート 80) 接続をインスタンスに許可するセキュリティルールを追加していない場合には、ルールを追加する。

公式の最初のほうに書かれてあるのを参考に。

php8.0をインストール

sudo amazon-linux-extras install -y php8.0

sudo yum install  php-mbstring php-openssl php-xml unzip

Apacheのインストール

sudo yum install -y httpd

設定

wabサーバの起動
sudo service httpd start

システムがブートするたびにapacheが起動するよう設定
sudo chkconfig httpd on

有効か確認
chkconfig --list httpd

ウェブサーバーをテストします。ウェブブラウザで、インスタンスのパブリック DNS アドレス (またはパブリック IP アドレス) を入力します。
Apacheの初期画面が表示されれば成功です。

ec2-user アカウントがこのディレクトリで複数のファイルを操作することを許可するには、ディレクトリの所有権とアクセス許可を変更する必要があります。

ec2-userをapacheグループに追加
sudo usermod -a -G apache ec2-user

いったんログアウトして、再度ログイン
exit

/var/www とそのコンテンツのグループ所有権を apache グループに変更
sudo chown -R ec2-user:apache /var/www

グループに、/var/wwwの書き込み許可追加
sudo chmod 2775 /var/www

/var/www とサブディレクトのディレクトリ許可を変更
find /var/www -type d -exec sudo chmod 2775 {} \;

/var/www とサブディレクトリのファイル許可を変更
find /var/www -type f -exec sudo chmod 0664 {} \;

MYSQL8インストール

既存でインストールされている邪魔者を削除
sudo yum remove mariadb-libs
sudo rm -rf /var/lib/mysql

リポジトリのインストール
sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

MYSQLのインストール
cd /usr/lib64
sudo ln libsasl2.so.3 libsasl2.so.2
sudo  yum clean all
sudo yum -y install mysql-community-server mysql-devel

MYSQLの起動
sudo systemctl start mysqld.service
sudo systemctl enable mysqld.service

初期パスワードに確認
sudo cat /var/log/mysqld.log | grep 'temporary password'

パスワード変更
sudo mysql_secure_installation

再起動
sudo systemctl restart mysqld.service

gitをインストール

インストール
sudo curl -sS https://getcomposer.org/installer | php

パスを通す
sudo mv composer.phar /usr/local/bin/composer

composer自身のインストール

curl -sS https://getcomposer.org/installer | php

composerコマンドのパスを通す
sudo mv composer.phar /usr/local/bin/composer

パス確認(/usr/local/bin/composerと表示されればOK)
which composer

Laravelプロジェクトをgit clone

sudo yum install git
cd /var/www
git clone [URL]

Apacheの設定変更
http.confファイルのDocumentRootの変更
Laravelでは、プロジェクト内のpublicディレクトリをドキュメントルートに指定する必要がある

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

キーボードで「i」を押して入力状態にする
DocumentRoot "/var/www/html"の箇所をDocumentRoot "/var/www/プロジェクト名/public"に変更

http.confファイルに以下のDirectoryを追加(.htaccessの有効化)

<Directory /var/www/プロジェクト名/public>
 AllowOverride All
</Directory>

Escキーを押して次のコマンドを入力(画面左下に入力中のコマンドが表示される)

:wq

Apacheの設定変更後は、再起動。

sudo service httpd restart

パッケージのインストール

cd /var/www/[プロジェクトのフォルダ名]

composer.jsonファイルがない場合
composer init

vendorディレクトリが生成される
composer install

Laravelプロジェクトの設定

sudo chmod -R 777 /var/www/[プロジェクト名]/storage
sudo chmod -R 775 /var/www/[プロジェクト名]/bootstrap/cache

config, routeのキャッシュクリア
だいたいなんかエラー出たら、これ打っときゃ直る。

php artisan config:cache
php artisan route:cache

.envの設定
git cloneしたLaravelプロジェクトには.envファイルがないので、
composer insatallで作成された、.env.exampleを使用する

cp .env.example .env
vi .env

APP_URL=http://IPアドレス ←サーバーのIPにする

DB_CONNECTION=mysql
DB_HOST=←RDSのエンドポイント
DB_DATABASE=データベース名
DB_USERNAME=RDS作成時のユーザ名
DB_PASSWORD=設定したパスワード

キーを作成し、キャッシュをクリアする

php artisan key:generate
php artisan config:clear

後は煮るなり焼くなり

0
0
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
0
0