さくらのVPSにmagento2.3をインストールしてみた


この投稿は [Magento Advent Calendar 2019] (https://adventar.org/calendars/4213) の13日目です。

# 背景
[ネコでもわかる！ さくらのVPS講座 for リアル] (https://sakura-kanto.doorkeeper.jp/events/99573) に参加させていただいた時に、さくらのVPS３ヶ月無料券をいただいたので、そちらを利用して、さくらのVPS上にmagentoを構築していきます。さくらさんありがとうございます！！


# 手順
1. さくらのVPSでubuntu server の立ち上げ
2. LAMP環境構築
3. composerを利用してmagentoのソースをダウンロード
4. magento インストール

## さくらのVPSでubuntu server の立ち上げ
<details><summary>　（さくらのVPSの環境構築を表示する場合は開いてください。）　</summary><div>
1　契約したvpsを選択します。
![スクリーンショット 2019-12-12 15.00.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/04b3f27e-112a-7ec3-90cc-53b7ec340079.png)

2　各種設定　＞　OSインストールを選択します。
![スクリーンショット 2019-12-12 15.19.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/bc598e2d-36a8-e1e4-a7d1-be31f11c347f.png)

3　今回はubuntu 18.04を利用したいのでカスタムOSを選択します。
![スクリーンショット 2019-12-12 15.27.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/44dded2a-0477-d0d2-4c00-325c03478135.png)
4　設定内容を確認するを選択し、インストールOSがUbuntu 18.04　amd64 になっているか確認して
インストールを実行するをクリックします。
![スクリーンショット 2019-12-12 17.54.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/9fb176ad-42c5-4ea5-7d2b-147c7037f614.png)

5　カスタムインストールを開始しました。VNCコンソールを起動してインストール作業を行ってください。と表示されたら
　 画面下に表示される、VNCコンソールを起動をクリックします。


6　Set up users and passwordsと表示されたら、お好みのuser名を入力し、Continue を押します。 (基本tabで移動できます。)
![スクリーンショット 2019-12-12 18.06.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/d0478990-0dce-0040-c17c-a6ebbf5b14e0.png)

7　Set up users and passwordsと表示されたら、またお好みのuser名を入力し、Continue を押します。
![スクリーンショット 2019-12-12 18.09.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/2975fdd1-4e9a-7907-ce68-2de3be789c9a.png)

8　Set up users and passwordsと表示されたら、お好みのpassowrdを入力し、Continue を押します。
![スクリーンショット 2019-12-12 18.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/29c5ffdd-f674-364c-cd90-1cef26698e87.png)


9　もう一度 Set up users and passwordsと表示されるので、先ほど入力したパスワードを入力して,Continue を押します
![スクリーンショット 2019-12-12 18.21.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/001f7012-f881-e922-4c5e-da5187624e06.png)

10 Partition disksと表示されるので,Guided - reuse partition, Virtual disk 1 , partition #1 (vda1)を選択します。
![スクリーンショット 2019-12-12 18.29.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/2e7438a2-f58f-a15b-1f94-67a59e7784ae.png)

11 下記の画面が表示されるのでYesを選択します。
![スクリーンショット 2019-12-12 18.45.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/21b14ce6-abac-cb0c-0d23-9275b42da57b.png)

12　Finish the installationと表示されたら、Continueを選択します。

13　install が終了すると接続ができなくなるので、管理画面の起動ボタンを選択してサーバを起動させます。
![スクリーンショット 2019-12-12 18.51.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/b6655bef-5c99-2a53-fe9b-c139bf2bb0f8.png)

14　サーバーを起動させたら管理画面にあるコンソールボタンを押して、VNCコンソールかシリアルコンソール（β版）をクリックしてコンソールを起動させます。

15　username と password を入力してログインします。
![スクリーンショット 2019-12-13 0.25.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/ea5751d4-4dc4-bc0f-014f-cb1e9382b0a5.png)




</div></details>

# LAMP環境構築

## リポジトリーアップデート && リポジトリーアップグレード

```bash
sudo apt update -y && apt upgrade -y
```

### php7.3 インストール && 必要なモジュールのインストール && 設定 
```bash

sudo apt install software-properties-common
sudo apt-add-repository ppa:ondrej/php

# Press [ENTER] to continue or Ctrl-c to cancel adding it.
# と表示されたら ENTERを押します。


# php モジュールのインストール
sudo apt upgrade
sudo apt-get install  -y  php7.3-cli php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-curl php7.3-intl php7.3-xsl php7.3-mbstring php7.3-zip php7.3-bcmath php7.3-iconv php7.3-soap libapache2-mod-php7.3 
```
#### phpのメモリー上限の設定をあげておきます。
php.ini　fileを開き

```bash
sudo vi /etc/php/7.3/apache2/php.ini
```
memory_limitを1Gにします。

```bash
memory_limit = 1G
```




### mysql インストール&&設定
```shell

sudo apt install -y mysql-server mysql-client

sudo service mysql start

sudo mysql_secure_installation

Press y|Y for Yes, any other key for No: y

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

# 入力した文字は表示されませんが今回はmagento23というパスワードにしました。
New password: 

# 残りはすべてyでオッケーです。

# mysql-server にログイン

sudo mysql -u root -p

# databaseの作成
create database magento character set utf8mb4;

# database user の作成
create user magento IDENTIFIED BY 'magento23';

# database user に権限の付与
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'magento23';

# 反映
flush privileges;
```

### apache2の設定

apache2のconfを開き

```bash
sudo vi /etc/apache2/apache2.conf
```

```bash
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
```
上記のところを下記のように変更します。 

```bash 
Servername localhost

<Directory /var/www/>
        Options Indexes FollowSymLinks
　　　　　AllowOverride all
        Require all granted
</Directory>
```

```
cd /etc/apache2/mods-enabled/
sudo a2enmod rewrite
sudo systemctl restart apache2
```

rewriteを有効にします。

```
sudo vi /etc/apache2/envvars 
```

ubuntuユーザーで統一します。

```
 export APACHE_RUN_USER=ubuntu
 export APACHE_RUN_GROUP=ubuntu
```

# composerを利用してmagentoのソースをダウンロード

### composerのインストール
composer Download は最新版になるとコマンドが変わるので、こちらの[リンク](https://getcomposer.org/download/)で確認してください。

```
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
```
###Public Key と Private Keyの取得 

1　Magento[公式サイト](https://magento.com/)のMy Account項目でユーザー登録をします。
![スクリーンショット 2019-12-13 1.25.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/a23dcb88-b262-97ff-38e7-ed459f4e4746.png)

2　アカウント登録が完了したら、My Account項目をも一度選択して、Marketplaceのタブをクリックします。
(私だけかもしれませんが、たまに[Marketplace](https://marketplace.magento.com/)のサイトに飛んでしまうので、飛んでしまった場合はブラウザーバックしてもう一度Marketplaceのタブをクリックしてください。)
![スクリーンショット 2019-12-13 14.09.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/ead20b9c-f119-f289-bc0d-4885ad92141c.png)

3　Marketplaceに飛べたら、Access Keysをクリックします。

4 Create A New Access Keyをクリックして、アクセスキーを作成します。（Access KeysのPublic KeyとPrivate Keyは、後ほど使います）
![スクリーンショット 2019-12-13 14.33.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287040/de7cee98-9b83-7a8e-e56d-209b46c2288f.png)


### magentoのダウンロード

```
# index.htmlを削除します。
sudo rm /var/www/html/index.html

# magentoのダウンロードに取り掛かります。
sudo php composer.phar create-project --repository=https://repo.magento.com/ magento/project-community-edition /var/www/html

# Authentication required (repo.magento.com):と表示されたら、Access Keysで表示されていた。
 Username:(Public Key)
 Password:(Private Key)
を入力します。


# ダウンロードが終わったらfileの所有者とグループの変更します。
chown ubuntu:ubuntu -R /var/www/html/*

# apache2 再起動
sudo systemctl restart apache2

```

# magento インストール

magentoのインストールが完了したら、ipアドレスをwebブラウザーに入力して開きます。
magentoのセットアップ画面が表示されると思います。
あとは適時入力していくだけです。


# 参考文献

[magento2：開発環境構築（初級者編）](https://qiita.com/hitomi_gi/items/4ffa8abe98d317d72a05)
[Magento 2.3 Developer Documentation](https://devdocs.magento.com/#/individual-contributors)