サンプルデータを使用するため、あえてMagento2.3.5をインストールする

Magentoを勉強し始めたのですが、どうやらMagento2.3とMagento2.4の間にインストール方法が変わったらしいです（サンプルデータを確認したかったのですが2.4ではうまくいきませんでした）。なのであえてちょっと古いMagento2.3.5をインストールします。公式の[2.3系Installation Guide](https://devdocs.magento.com/guides/v2.3/install-gde/install-flow-diagram.html)をもとに作業を進めていきます。

# 準備作業

## 必要なソフトウェア
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/cec2dffc-3126-cb45-d9ff-cd4df3e3cbb3.png)

以下がMagento以外にも必要となります（出展：[Adobe Version2.3資料](https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements.html)
- Composer(1)
- Elasticsearch(7.6)
- MySQL(5.6, 5.7)
- PHP(7.2, 7.3)
- Apache(2.4)

## サーバの準備
手元に適当なLinuxサーバがなかったので、Google Cloud上に構築します。Composerで展開するときにメモリを結構消費するので、以下の構成としました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/ede48199-7d6c-8bc8-9e64-b1ef7a15df28.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/9e3bce9c-12c7-bee5-cb2d-62589d1950a2.png)

お約束の
```
sudo apt update; sudo apt upgrade
```
を行っておきます。

## Apache

```
sudo apt install apache2
```

動作確認まで行っておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/249b35c0-8494-8d0e-06d7-03d0e8f31f69.png)

### /etc/apache2/sites-available/000-default.confの更新
赤枠の部分を追加します。この設定を行っておかないとMagento2が動きません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/b3bd9833-9ab8-627a-9246-28f832cfbea9.png)

```html
        <Directory /var/www/html>
                AllowOverride All
                Require all granted
        </Directory>
```

### Rewrite の有効化
Magento2を動作させるために設定します。。mod_rewriteを有効にします。

```shell-session
~$ sudo a2enmod
Your choices are: access_compat actions alias allowmethods asis auth_basic auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authnz_fcgi authnz_ldap authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex buffer cache cache_disk cache_socache cern_meta cgi cgid charset_lite data dav dav_fs dav_lock dbd deflate dialup dir dump_io echo env expires ext_filter file_cache filter headers heartbeat heartmonitor http2 ident imagemap include info lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat ldap log_debug log_forensic lua macro mime mime_magic mpm_event mpm_prefork mpm_worker negotiation php8.1 proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_hcheck proxy_html proxy_http proxy_http2 proxy_scgi proxy_wstunnel ratelimit reflector remoteip reqtimeout request rewrite sed session session_cookie session_crypto session_dbd setenvif slotmem_plain slotmem_shm socache_dbm socache_memcache socache_shmcb speling ssl status substitute suexec unique_id userdir usertrack vhost_alias xml2enc
Which module(s) do you want to enable (wildcards ok)?
rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  systemctl restart apache2
```


Apacheを再起動します。
```
sudo systemctl restart apache2
```

## MySql

バージョンをきちんと指定してインストールしたいので、[UbuntuでMySQL 5.7をインストールする方法](https://www.hitori-josys.me/entry/2021/08/09/120000)を参照して作業を進めます。

```shell-session
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
```

以下の画面が表示されるので順次選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/eeccebf1-44ee-9d70-17e9-84301962c99f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/b865a910-ae81-2895-59ce-d05390a3d0cd.png)
また以下の画面に戻るので、「OK」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/07292b29-f29f-9e39-f869-f3e1b256ec83.png)

aptキーを追加します。
```shell-session
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
```

```sudo apt update```します。

```
$ sudo apt update
```

Repogitoryが追加されたか確認します。

```shell-session
$ sudo apt-cache policy mysql-server
mysql-server:
  Installed: (none)
  Candidate: 5.7.40-1ubuntu18.04
  Version table:
     5.7.40-1ubuntu18.04 500
        500 http://repo.mysql.com/apt/ubuntu bionic/mysql-5.7 amd64 Packages
     5.7.40-0ubuntu0.18.04.1 500
        500 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     5.7.21-1ubuntu1 500
        500 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
```
5.7をインストールします。途中、Rootのパスワードを聞かれます。
```shell-session
$ sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/b7899b2e-943e-767d-d7b8-ad7187b42410.png)


インストール出来たら、コマンドラインからログインできるか確認してみます。
```$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
```

### MySQL上のDatabase設定、他

前の章から引き継ぎ、MySQLのなかで```magent2```というデータベースを作成します。

```sql
CREATE DATABASE magento2;
```

```magentip```というユーザを作成します。ここで```magentip```のパスワードも設定します。

```sql
CREATE USER 'magentip'@'localhost' IDENTIFIED BY '<your_pssword>';
ALTER USER 'magentip'@'localhost' IDENTIFIED WITH mysql_native_password BY '<your_pssword>';
```

```magentip```に権限付与します。
```sql
GRANT ALL PRIVILEGES ON *.* TO 'magentip'@'localhost' WITH GRANT OPTION;
```

権限を変更したので```FLUSH PRIVILEGES```してからコンソールを抜けます。
```shell-session
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
```

## PHP

Magento2.3.5で必要なPHPは7.2, 7.3です。apt install でインストールできるPHPのバージョンを確認します。

```shell-session
$ sudo apt-cache policy php
php:
  Installed: (none)
  Candidate: 1:7.2+60ubuntu1
  Version table:
     1:7.2+60ubuntu1 500
        500 http://asia-northeast1.gce.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
```

よってそのままインストールします。

```shell-session
$ sudo apt install php
(途中略)
 php -v
PHP 7.2.24-0ubuntu0.18.04.15 (cli) (built: Nov  2 2022 09:09:52) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.24-0ubuntu0.18.04.15, Copyright (c) 1999-2018, by Zend Technologies
```
7.2がインストールされました。

必要なモジュールをインストールします。

```shell-session
sudo apt install php7.2-bcmath php7.2-intl php7.2-soap php7.2-zip php7.2-gd php7.2-curl php7.2-cli php7.2-xml php7.2-xmlrpc php7.2-gmp php7.2-common php7.2-mbstring php7.2-mysql
```

## Elasticsearch
あとで気づいたのですが、2.3.5では不要でした。

### javaのインストール
まずjava(openjdkのほう）をインストールします。

以下のコマンドでインストールできるopenjdkのバージョンを確認します。

```shell-session
$ sudo apt search "^openjdk.*jdk$"
Sorting... Done
Full Text Search... Done
openjdk-11-jdk/bionic-updates,bionic-security 11.0.17+8-1ubuntu2~18.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-17-jdk/bionic-updates,bionic-security 17.0.5+8-2ubuntu1~18.04 amd64
  OpenJDK Development Kit (JDK)

openjdk-8-jdk/bionic-updates,bionic-security 8u352-ga-1~18.04 amd64
  OpenJDK Development Kit (JDK)
```
```openjdk-17-jdk```がインストール可能です。
```
sudo apt update
sudo apt-get install openjdk-17-jdk
```

Javaのバージョンを確認します。
```shell-session
$ java -version
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu118.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu118.04, mixed mode, sharing)
```

### Elasticsearchのインストール

Elasticsearchのインストールを開始します。

```shell
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
```

Elastic-7.x.listを```source.list.d```に加えます（そういう意味らしい）。
```shell
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
```

Elasticsearchの本体をインストールします。
```shell
sudo apt update
sudo apt install elasticsearch
```

Elasticsearchをサービスとして登録します。

```shell-session
$ sudo systemctl daemon-reload
$ sudo systemctl enable elasticsearch.service
Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.
```

### elasticsearchの設定

以下ファイルの設定を行います（この辺りは[こちらの](https://www.thecoachsmb.com/install-magento-2-4-5-on-ubuntu-22-04-complete-guide/)サイトより引用）。
- elasticsearch.yml
- elasticsearch.service

### elasticsearch.yml
```
sudo vi /etc/elasticsearch/elasticsearch.yml
```
***cluster.name***と***node.name***の文頭の#を外し、***node.name***を'My First Node'に変更しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/22fef922-14ef-831e-954f-3058c7255731.png)



次に***network.host***と***http.port***の行を有効にします（Un-commentする）。***network.host***はどこからでもアクセスできるように**0.0.0.0**に変更します（Google cloudなのでこうしておかないとローカルPCからアクセスできない）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/8a96fe47-967d-ccab-f283-ec4c13dbd68e.png)

また、以下も変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/460bead1-1a6c-2caa-1567-3847ce1b5303.png)



### ```elasticsearch.service```

```
sudo vi /usr/lib/systemd/system/elasticsearch.service
```
***TimeoutStartSec***を**900**に変更。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/cda31de1-52ea-fc8e-7f48-830cc22a7d6f.png)

ここまでの設定が終わったらelasticserchサービスを開始します（コマンドプロンプトが返ってくるまで1～2分必要です）。

```shell-session
$ sudo systemctl daemon-reload
$ sudo systemctl start elasticsearch.service
$ sudo systemctl start elasticsearch.service
```

curlで **http://localhost:9200** にアクセスして動作確認します。

```shell-session
$ curl -X GET 'http://localhost:9200'
{
  "name" : "My First Node",
  "cluster_name" : "my-application",
  "cluster_uuid" : "_na_",
  "version" : {
    "number" : "7.17.7",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "78dcaaa8cee33438b91eca7f5c7f56a70fec9e80",
    "build_date" : "2022-10-17T15:29:54.167373105Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
```
elasticsearchが動いていることを確認できました。

# Magento
composerを使用してMagentoをダウンロードします。

## composerのインストール

インストールに必要なファイルを取得します。

```
curl -sS https://getcomposer.org/installer -o composer-setup.php
```
カレントディレクトリはこういう状態になります。

```shell-session
~/tmp$ curl -sS https://getcomposer.org/installer -o composer-setup.php
:~/tmp$ ls
composer-setup.php
```

Magento 2.3.5ではcomposer 1が必要なのでオプション ```--1```を付けます。

```shell-session
$ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer --1
All settings correct for using Composer
Warning: You forced the install of Composer 1.x via --1, but Composer 2.x is the latest stable version. Updating to it via composer self-update --stable is recommended.
Downloading...

Composer (version 1.10.26) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
```
ちょっと怒られているけどインストール完了です。バージョンを確認します。

```shell-session
p$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.26 2022-04-13 16:39:56
```

## Magento2.3.5

### Magentoのアクセスキー
この後MagentoのAccess Keyが必要なのであらかじめ取得しておきます（ご本尊の[Adobeのページ](https://experienceleague.adobe.com/docs/commerce-operations/installation-guide/prerequisites/authentication-keys.html?mt=false)に取得方法が記載されています）。取得したアクセスキーは

-Username: public Key
-Password: private Key

として使用します。

### Magentoユーザ作成

このあたりから、参照する記事によって記載している内容が異なってきます。ここからは[こちらの記事](https://magento.szmake.net/setup/debian10-for-magento2-4-4/#)を参考にしています。

MagentoのCLI操作やCRON用のユーザを用意します（パスワードを聞かれるので用意しておいてください）。

```shell-session
$ sudo adduser magento_user
Adding user `magento_user' ...
Adding new group `magento_user' (1003) ...
Adding new user `magento_user' (1002) with group `magento_user' ...
Creating home directory `/home/magento_user' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for magento_user
Enter the new value, or press ENTER for the default
        Full Name []: Magento2 User
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] Y
```

デフォルトグループをwww-dataグループにします。
```shell-session
sudo usermod -g www-data magento_user
```

一応、sudoグループにも含めておきます。
```
sudo adduser magento_user sudo
```

### Magento2.3.5のダウンロード

以降は先ほど作成したmagento_userで操作するのでsuコマンドで切り替えます。
```
su - magento_user
```

**DocumentRoot**フォルダの所有者をmagento_userにします。**DocumentRoot**は特に変更していないので/var/www/htmlです。

```shell-session
$ sudo chown magento_user:www-data /var/www/html -R
$ ls -all
total 20
drwxr-xr-x 2 magento_user www-data  4096 Nov 14 06:40 .
drwxr-xr-x 3 root         root      4096 Nov 14 06:40 ..
-rw-r--r-- 1 magento_user www-data 10918 Nov 14 06:40 index.html
```

Magento2はhtmlコンテンツとしてインストールするので、インストールディレクトリにカレントを変更します（以下では/var/www/html直下に入れる）。なお、中身が空でないとインストール中エラーになるので、もともと入っていたindex.htmlは消します。

```shell-session
$ cd /var/www/html
$ rm index.thml
$ $ ls -all
total 8
drwxr-xr-x 2 magento_user www-data 4096 Nov 14 08:13 .
drwxr-xr-x 3 root         root     4096 Nov 14 06:40 ..
```

ダウンロードを開始します。結構時間がかかります。
```shell-session
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.3.5 .
Creating a "magento/project-community-edition=2.3.5" project at "./"
Installing magento/project-community-edition (2.3.5)
  - Installing magento/project-community-edition (2.3.5): Loading from cache
Created project in /var/www/html/.
Loading composer repositories with package information
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies (including require-dev)
Package operations: 471 installs, 0 updates, 0 removals
  - Installing laminas/laminas-dependency-plugin (1.0.4): Downloading (100%)         
  - Installing psr/container (1.1.1): Downloading (100%)         
（途中略）
Writing lock file
Generating autoload files
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../codeception,../../magento/magento-coding-standard,../../phpcompatibility/php-compatibility
```

### Magentoのセットアップ

セットアップします。
```shell-session
$ bin/magento setup:install \
--base-url="http://<your url>/" \
--db-host=localhost \
--db-name=magento2 \
--db-user=magentip \
--db-password="<your password>" 
Starting Magento installation:
File permissions check...
[Progress: 1 / 992]
Required extensions check...
[Progress: 2 / 992]
Enabling Maintenance Mode...
[Progress: 3 / 992]
Installing deployment configuration..
（途中略）
[Progress: 991 / 992]
Write installation date...
[Progress: 992 / 992]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_o9ymoa
Nothing to import.
```

最後にでている ```/admin_o9ymoa```がConfigページへのアクセス先となります（ランダムな文字列が表示される）。

### ファイルのPermission変更
DocumentRoot配下に作成されたフォルダ・ファイルのオーナーとパーミッションを変更します。

```shell-session
$ cd /var/www/html
$ sudo chown -R magento_user:www-data .
$ find . -type d -exec chmod 770 {} \;
$ find . -type f -exec chmod 660 {} \;
$ chmod 770 bin/magento
```

### Deploy

これを行わないとMagento上のコンテンツがコンパイルされません。
```shell-session
$  php bin/magento deploy:mode:set production
Enabling maintenance mode
Starting compilation
Compilation was started.
%message% 0/8 [>---------------------------]   0% < 1 sec 76.5 MiBProxies code generation... 0/8 [>---------------------------]   0% < 1 sec 76.5 MiB
Proxies code generation... 1/8 [===>------------------------]  12% 1 sec 78.5 MiB
Repositories code generation... 1/8 [===>------------------------]  12% 1 sec 78.5 MiB
Repositories code generation... 2/8 [=======>--------------------]  25% 16 secs 205.0 MiB
Service data attributes generation... 2/8 [=======>--------------------]  25% 16 secs 205.0 MiB
Application code generator... 3/8 [==========>-----------------]  37% 16 secs 205.0 MiB
Application code generator... 4/8 [==============>-------------]  50% 24 secs 227.0 MiB
Interceptors generation... 4/8 [==============>-------------]  50% 24 secs 227.0 MiB
Interceptors generation... 5/8 [=================>----------]  62% 38 secs 257.0 MiB
Area configuration aggregation... 5/8 [=================>----------]  62% 38 secs 257.0 MiB
Area configuration aggregation... 6/8 [=====================>------]  75% 45 secs 349.0 MiB
Interception cache generation... 6/8 [=====================>------]  75% 45 secs 349.0 MiB
Interception cache generation... 7/8 [========================>---]  87% 51 secs 349.0 MiB
App action list generation... 7/8 [========================>---]  87% 51 secs 349.0 MiB
App action list generation... 8/8 [============================] 100% 51 secs 349.0 MiB
Generated code and dependency injection configuration successfully.
Compilation complete
Starting deployment of static content

Deploy using quick strategy
frontend/Magento/blank/en_US            2345/2345           ============================ 100%   7 secs
adminhtml/Magento/backend/en_US         2438/2438           ============================ 100%   7 secs
frontend/Magento/luma/en_US             2362/2362           ============================ 100%   7 secs

Execution time: 25.704952001572
Deployment of static content complete
Disabling maintenance mode
Enabled production mode.
```
中身が空っぽですが表示されました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/b6b23045-cce9-41d6-f29a-ac34dd9e6795.png)


### Magento adminユーザの追加

Magento2のAdmin関係の設定をまだ行っていないため、設定を追加します。
```shell-session
$ $ php bin/magento admin:user:create
Admin user: admin
Admin password: <admin-password>
Admin email: <your-e-mail-address>
Admin first name: <your-first-name>
Admin last name: <your-last-name>
Created Magento administrator user named admin
```

### 管理画面

サイトのURLに先ほど出てきた管理画面用Path ```/admin_o9ymoa```を付与すると管理画面に入ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/90eb9ca1-15fa-01bd-d755-fb77655e8eaf.png)

# サンプルデータのインストール

これを行うためにあえてMagento 2.3.5を入れました。できるでしょうか。

## developer modeへの変更

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/f41612ab-bf6f-f1d9-459c-a856c3b972d1.png)
とあるので、developer modeに変更します。まず今のmodeを確認します。なおカレントディレクトリはMagento2がインストールされているディレクトリです。

```shell-session
$ php bin/magento deploy:mode:show
Current application mode: production. (Note: Environment variables may override this value.)
```

developer modeに変更します。[こちらの](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cli/set-mode.html?lang=en#change-to-developer-mode)手順に従います。

```shell-session
$ rm -rf ./generated/metadata/* ./generated/code/*
$ php bin/magento deploy:mode:set developer
$ php bin/magento deploy:mode:show
Current application mode: developer. (Note: Environment variables may override this value.)
```
切り替わりました。


## サンプルデータのDeploy

```shell-session
$  php bin/magento sampledata:deploy
<warning>Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html</warning>
    Authentication required (repo.magento.com):
      Username: <your public key>
      Password: <your private key>
Do you want to store credentials for repo.magento.com in /var/www/html/var/composer_home/auth.json ? [Yn] Y
<warning>Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/</warning>
Info from https://repo.packagist.org: #StandWithUkraine
./composer.json has been updated
Loading composer repositories with package information
<warning>Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/</warning>
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies (including require-dev)
（途中省略）
Writing lock file
Generating autoload files
75 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../magento/magento-coding-standard,../../phpcompatibility/php-compatibility,../../codeception
```

続いて、以下のコマンドを発行します。
```shell-session
$ php ./bin/magento setup:upgrade
Cache types config flushed successfully
Cache cleared successfully
File system cleanup:
（途中省略）
Module 'Yotpo_Yotpo':
Enabling caches:
Current status:
Array
(
    [layout] => 1
    [block_html] => 1
    [full_page] => 1
)

Nothing to import.
```
うまくいったようです。


## cronの設定
本当はMagento2セットアップ時に行うのですが、前に実施したときサンプルデータインストール時にcron関係でエラーが出たのであえてここで行っています。
[こちらの記事](https://magento.szmake.net/setup/debian10-for-magento2-4-4/#toc_id_4)を参考にしました。
magento_userのcromとして登録するので、カレントユーザをmagento_userにしてから実行する必要があります。

```shell-session
$ cd /var/www/html/
$ php ./bin/magento cron:install --force
Crontab has been generated and saved
```

内容を確認してみます。
```shell-session
$ crontab -l

#~ MAGENTO START 69dd2b02e1f3a65918182048ea4e29979a849d8942e8f53ed20a4bf10e529b36
* * * * * /usr/bin/php8.1 /var/www/html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/var/log/magento.cron.log
#~ MAGENTO END 69dd2b02e1f3a65918182048ea4e29979a849d8942e8f53ed20a4bf10e529b36
```

# 結果
こんな画面が出ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56044/c8cd0729-1e42-8908-2099-0ee4d44f1528.png)