Amazon EC2 に EC-CUBE 4.3 を github repository からインストールする

# 目標
AmazonEC2(AL2023) + php 8.3 環境に EC-CUBE4.3 を、github repository から インストールする

## 知識材料 
- [EC-CUBE 4 開発者向けドキュメント](https://doc4.ec-cube.net/)
- [github EC-CUBE/ec-cube](https://github.com/EC-CUBE/ec-cube)

## 利用環境
- [Amazon EC2 AL2023](https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ec2.html)
- [php 8.3](https://www.php.net/releases/8.3/ja.php)

## 今回のゴール
- Amazon EC2 (AL2023) に php 8.3 環境を構築する
- EC-CUBE 4.3 をインストールする
- EC-CUBE 4.3 の管理画面を表示できるようにする


# 実践
## EC2 環境構築
- インスタンスタイプ/Instance type
    - t4g.small
- EBS
    - 8GiB

## 必要なパッケージインストール
### php 8.3
```
sudo dnf install -y php8.3
```

### git 
```
sudo dnf install -y git 
```

### composer
```
sudo dnf install -y composer 
```

## httpd 自動起動設定 ＆ 起動
```
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
```

## EC-CUBE4 install
### リポジトリクローン
```
cd /var/www/html

sudo git clone https://github.com/EC-CUBE/ec-cube
```
### (オプション)既存のデータベースインスタンスに EC-CUBE 用のスキーマを作成する場合
```
sudo vi ./ec-cube/.env
```

対象データベースの設定を環境変数ファイルに記述する
```
# This file is a "template" of which env vars needs to be defined in your configuration or in an .env file
# Set variables here that may be different on each deployment target of the app, e.g. development, staging, production.
# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration

###> symfony/framework-bundle ###
# For production servers, use: "APP_ENV=prod" and "APP_DEBUG=0"
# For local development, use: "APP_ENV=dev" and "APP_DEBUG=1"
APP_ENV=prod
APP_DEBUG=0
#TRUSTED_PROXIES=127.0.0.1,127.0.0.2
#TRUSTED_HOSTS=^localhost$,^example\.com$
###< symfony/framework-bundle ###

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For a sqlite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Set "serverVersion" to your server version to avoid edge-case exceptions and extra database calls
DATABASE_URL={{{ 対象データベースの接続文字列を記述する }}}
# DATABASE_URL=mysql://dbuser:secret@mysql/eccubedb
# DATABASE_URL=postgresql://postgres/eccubedb?user=dbuser&password=secret

# The version of your database engine
DATABASE_SERVER_VERSION=3

# The charset of your database engine
DATABASE_CHARSET=utf8mb4
###< doctrine/doctrine-bundle ###

###> symfony/mailer ###
MAILER_DSN=smtp://localhost:25
###< symfony/mailer ###

###> APPLICATION CONFIG ###
# EC-CUBE Configs. The default value is defined in app/config/packages/eccube.yaml.
# Please remove commented out and enable it if you want to change.

#ECCUBE_LOCALE=ja
#ECCUBE_TIMEZONE=Asia/Tokyo
#ECCUBE_CURRENCY=JPY
#ECCUBE_ADMIN_ROUTE=admin
#ECCUBE_USER_DATA_ROUTE=user_data
#ECCUBE_ADMIN_ALLOW_HOSTS=[]
#ECCUBE_ADMIN_DENY_HOSTS=[]
#ECCUBE_FORCE_SSL=false
#ECCUBE_PHPINFO_ENABLED=false
#ECCUBE_TEMPLATE_CODE=default
#ECCUBE_AUTH_MAGIC=<change.me>
#ECCUBE_COOKIE_NAME=eccube
#ECCUBE_COOKIE_PATH=/
#ECCUBE_COOKIE_LIFETIME=0
#ECCUBE_GC_MAXLIFETIME=1440
#ECCUBE_ADMIN_USER=admin
#ECCUBE_ADMIN_PASS=password
#ECCUBE_2FA_ENABLED=true
#ECCUBE_2FA_COOKIE_NAME=eccube_2fa
#ECCUBE_2FA_EXPIRE=14
#ECCUBE_RESTRICT_FILE_UPLOAD=0

###< APPLICATION CONFIG ###

```


### インストールスクリプト実行
```
cd ec-cube

sudo composer install
sudo php bin/console eccube:install --no-interaction

sudo chown -R apache:apache /var/ww/html/ec-cube
```

## ブラウザで管理画面にアクセス
> http://{ホスト or IP}/ec-cube/index.php/admin
- ログインID
    - admin
- パスワード
    - password

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/311258/4a73e096-be67-b359-86cf-66e93402b70a.png)