【メモ】さくらのレンタルサーバにLaravelをインストールする

ネット上にたくさんある手順の通りに作業すれば簡単ですよね…？と思っていたら、案の定色々つまづいてしまいました。次回も同じことができるようにメモです。

# やりたいこと
* さくらのレンタルサーバ スタンダードプランにLaravelをインストール
* welcomeが表示される
* 初期状態のままマイグレーションして、デフォルトのuserテーブルを作成する
* URLにpublicを表示しないようにする

# 目次
1. [PHPのバージョンを確認](#1phpのバージョンを確認)
2. [サーバに接続する](#2サーバに接続する)
3. [composerをインストール](#3composerをインストール)
4. [Laravelプロジェクトを作成](#4laravelプロジェクトを作成)
5. [ブラウザで表示確認](#5ブラウザで表示確認)
6. [URLからpublicの表示を消す](#6urlからpublicの表示を消す)
7. [データベースを作成する](#7データベースを作成する)
8. [データベースの設定をする](#8データベースの設定をする)
9. [マイグレーションを実行する](#9マイグレーションを実行する)
10. [テーブルが作成されたことを確認](#10テーブルが作成されたことを確認)
11. [参考](#11参考)

# 前提
* さくらのレンタルサーバ スタンダードプラン契約済
* mac使用
* サンプルとして、「hoge」プロジェクトを作成
* 以下、ユーザ名「hogename」として記載(hogenameの部分は、自分のユーザ名に置き換えて下さい)

# 1.PHPのバージョンを確認
さくらインターネット サーバコントロールパネル（以下、サーバコントロールパネルと記載）にログインする。
「アプリケーションの設定」にある、「PHPのバージョン選択」をクリック。
PHPのバージョンが古ければ、とりあえず最新バージョンに変更しておく。

# 2.サーバに接続する
SSH接続でレンタルサーバーにログインする。
当方macのため、「ターミナル」を使用。

```Console:
$ ssh hogename@hogename.sakura.ne.jp
```
上記を実行するとパスワードの入力を求められるため、<font color="red">「サーバコントロールパネルのログインパスワード」</font>を入力する。
下記の文言が表示されたらOK

```Console:
  Welcome to FreeBSD!
```
<font color="#999999">ここでpermission deniedと表示されて数時間詰まってしまったのですが、会員メニューのログインパスワードをずっと入力し続けていだだけでした…</font>

# 3.composerをインストール
ホームディレクトリ直下に「bin」ディレクトリを作成して、その中にインストールする。


```Console:
$ #ホームに移動
$ cd ~

$ #binを作成
$ mkdir bin

$ #binに移動
$ cd bin

$ #composerをインストール
$ curl -sS https://getcomposer.org/installer | php

$ #下記が表示されたらOK
 Use it: php composer.phar
```
念のため、正しくインストールされたことを確認

```Console:
$ #自分が今どこにいるのか確認
$ pwd
$ /home/hogename/bin

$ #bin(composerのインストール先)にいることが分かったので、ここでコマンド実行
$ php composer.phar

$ #下記が表示されたらOK
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
 
```
どのディレクトリからでも、「composer.phar」でコマンドを実行できるようにする。

```Console:
$ #ホームに移動
$ cd ~

$ #composerファイルのパーミッションを755に変更
$ chmod 755 bin/composer.phar

$ # 念のためアップデート
$ composer self-update

$ #下記の通り表示されるはず
  You are already using composer version *.*.* (stable channel).
```

# 4.Laravelプロジェクトを作成
www直下に作成する。
バージョンは5.5.*を選択

```Console:
$ #wwwディレクトリに移動
$ cd www

$ #wwwにいることを確認
$ pwd
  /home/hogename/www

$ #Laravelプロジェクト「hoge」を、バージョン5.5.*で作成
$ composer.phar create-project laravel/laravel ./hoge "5.5.*" --prefer-dist

$ #下記が表示されたらOK
  set successfully.
```
サーバコントロールパネルの、「運用に便利なツール」内にある「ファイルマネージャー」を起動すると、「hoge」のディレクトリが作成されていることを確認できる。

# 5.ブラウザで表示確認
ブラウザで、`hogename.sakura.ne.jp/hoge/public`にアクセスする。
Laravelのwelcomeページが表示されたらOK

# 6.URLからpublicの表示を消す
このままだとURLに「/public」が表示されて格好悪いので、publicを表示させないようにする。

サーバコントロールパネルのファイルマネージャーより、hoge直下の`.htaccess`ファイルを右クリック。
「編集」を選択し、内容を下記の通り書き換える。
参考：[liaotzukai/Php laravel 5.5 project .htaccess file -GitHubGist](https://gist.github.com/liaotzukai/8e61a3f6dd82c267e05270b505eb6d5a)

ブラウザで、`hogename.sakura.ne.jp/hoge/`にアクセスする。
Laravelのwelcomeページが表示されたらOK

# 7.データベースを作成する
サーバコントロールパネルの、「アプリケーションの設定」内にある「データベースの設定」をクリックする。

「データベースの新規作成」から新規作成する。
データベース名は、`user名_任意の名前`で固定（hogename_test等）。

データベース一覧に記載されている、以下の情報をメモしておく。
>・データベースサーバ
>・データベースユーザ名
>・接続パスワード
>・データベース名

# 8.データベースの設定をする
サーバコントロールパネルのファイルマネージャーより、hoge直下の「.env」ファイルを右クリックする。
「編集」を選択し、データベースに関する記述の部分を下記の通り書き換える。

```console:.env
DB_CONNECTION=mysql
DB_HOST=データベースサーバ 
DB_PORT=3306
DB_DATABASE=データベース名
DB_USERNAME=データベースユーザ名
DB_PASSWORD=接続パスワード
```
書き換え完了したら、保存してから閉じる。

APP_KEYを生成する。
Laravelプロジェクトのディレクトリに移動してから、下記コマンドを実行する。

```Console:
$ #hogeディレクトリに移動
$ cd hoge

$ #hogeにいることを確認
$ pwd
  /home/hogemane/www/hoge

$ #APP_KEYを生成
$ php artisan key:generate

$ #下記が表示されたらOK
  set successfully.
```

# 9.マイグレーションを実行する
既にLaravelプロジェクトのディレクトリにいるはずなので、そのまま下記を実行する。

```Console:
$ #マイグレーション実行
$ php artisan migrate

$ #下記が表示されたらOK
  Migration table created successfully.
```

# 10.テーブルが作成されたことを確認
サーバコントロールパネルの「アプリケーションの設定」内にある「データベースの設定」をクリック。
「管理ツールログイン」をクリック。
php MyAdminが表示されるので、接続パスワードを入力してログインする。
デフォルトの「users」テーブルが作成されていたらOK

# 11.参考
・[さくらレンタルサーバーにLaravelを入れてとりあえず動くようにした話 - Qiita](https://qiita.com/tosite0345/items/aa3ba6fa4387c4c649a8)
・[【レンタルサーバ】データベースの作成・追加・削除 - さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206053952)

とりあえずインストールはできたので良かったです！嬉しい！！！